Altro FreeBASIC

Stato
Discussione chiusa ad ulteriori risposte.

Mugetsu

Utente Gold
27 Maggio 2011
744
66
141
347
l FreeBASIC è un compilatore BASIC a 32 bit libero e open source (rilasciato con licenza GPL) per i sistemi Microsoft Windows, DOS (in modalità protetta), Linux e FreeBSD. Il FreeBASIC ha una sintassi molto simile a quella del QuickBASIC ma con un certo numero di caratteristiche aggiuntive. La compatibilità è buona tanto che diversi programmi scritti per il QuickBASIC possono essere compilati ed eseguiti senza nessuna modifica al codice.

Caratteristiche

Il FreeBASIC è un compilatore autocompilante (capace cioè di compilare il suo stesso codice sorgente) composto da circa 120.000 linee di codice (escluse le librerie). Utilizza le binutils, strumenti GNU per la manipolazione del codice oggetto, come back-end. Con il FreeBASIC è possibile sviluppare applicazioni da terminale o con interfaccia grafica (GUI). Supporta pienamente l'utilizzo delle librerie del C e parzialmente quelle del C++: grazie a ciò è possibile utilizzare e creare librerie per il C e per molti altri linguaggi.
Il FreeBASIC implementa un preprocessore capace di gestire macro multilinea, compilazione condizionale ed inclusione di file. Va precisato però che quello del FreeBASIC non è un vero preprocessore dato che viene eseguito nello stesso momento in cui viene analizzato il codice: questo significa che può accedere alle informazioni dei simboli, ed eventualmente impostare anche il dialetto (cosa che riavvia però l'analisi del sorgente).
Il FreeBASIC è molto veloce, con prestazioni simili a quelle di strumenti quali il GCC
Sintassi

Nonostante la sintassi sia stata mantenuta molto simile a quella del BASIC in generale e del QuickBASIC in particolare per favorire la compatibilità con questi illustri predecessori, il FreeBASIC rispecchia gli standard ed i modelli più moderni: polimorfismo, overloading degli operatori, programmazione orientata agli oggetti, namespace, ecc.
Le linee di codice terminano nel FreeBASIC con il segno dei due punti :)) oppure con i caratteri di fine linea: grazie a ciò non è necessario specificare, come nel C, un particolare carattere di fine linea. Il FreeBASIC accetta anche istruzioni multiple scritte su un'unica linea: basta separarle con il segno dei due punti.
Il FreeBASIC supporta i commenti: questi possono essere inseriti sia alla fine di una riga di codice con l'apostrofo ' sia come blocchi di più righe partendo con /' e terminando con '/.

Compatibilità

Sono stati apportati dei cambiamenti durante lo sviluppo per rendere il FreeBASIC compatibile con le caratteristiche avanzate dei moderni linguaggi e conforme al GCC ma il FreeBASIC continua ad essere compatibile con la vecchia sintassi del QuickBASIC. Per ottenere questo risultato è stata introdotta l'opzione da riga di comando -lang da usare per impostare il livello di compatibilità del FreeBASIC:

  • -lang fb: avviandolo con il paramentro "fb", il FreeBASIC offre al programmatore tutte le nuove funzionalità mentre tutte le caratteristiche proprie del QuickBASIC vengono disattivate per mantenere la compatibilità con i paradigmi di programmazione più moderni;
  • -lang fblite: il paramentro "fblite" permette di accedere alle nuove funzionalità del FreeBASIC che non riguardano la programmazione ad oggetti e, contemporaneamente, permette di redigere del codice adottando delle regole di stile e sintassi proprie delle vecchie versioni del BASIC quali le variabili implicite, i suffissi, il GOSUB/RETURN, la numerazione delle linee, ecc.;
  • -lang qb: utilizzando il parametro "qb" si imposta il FreeBASIC verso la massima compatibilità con il vecchio codice QuickBASIC. Questa modalità è utile quando il codice QuickBASIC non gira in modalità "fblite".
Esempi di codice

Come nel QuickBASIC, per far apparire un semplice messaggio sullo schermo può essere usata una singola istruzione:
PHP:
  print "Ciao, mondo!"
Il FreeBASIC aggiunge, però, numerose caratteristiche proprie della programmazione orientata agli oggetti come i metodi, i costruttori, l'allocazione dinamica della memoria, le proprietà e l'allocazione temporanea.

PHP:
/'Una classe per il movimento vettoriale'/
Type Vector
        W as Integer
        H as Integer
        Declare Constructor (nW as Integer, nH as Integer)
End Type
 
Constructor Vector (nW as Integer, nH as Integer)
        W = nW
        H = nH
End Constructor
 
/'Crea una classe oggetto'/
Type Object
        Private:
                X as Integer
                Y as Integer
                Movement as Vector Pointer
        Public:
                /'Crea i metodi pubblici, compreso un distruttore per la pulizia automatica'/
                Declare Constructor (nX as Integer, nY as Integer)
                Declare Destructor ()
                Declare Sub SetMotion (Motion as Vector Pointer)
                Declare Sub Move ()
                Declare Property GetX as Integer
End Type
 
/'Imposta le coordinate iniziali'/
Constructor Object (nX as Integer, nY as Integer)
        X = nX
        Y = nY
End Constructor
 
/'Pulisce la memoria allocata'/
Destructor Object ()
        delete Movement
End Destructor
 
/'Imposta il vettore di movimento'/
Sub Object.SetMotion (Motion as Vector Pointer)
        Movement = Motion
End Sub
 
/'Muove l'oggetto in base al suo vettore di movimento'/
Sub Object.Move ()
        X += Movement->W
        Y += Movement->H
End Sub
 
/'Un modo per leggere X, dato che è privato'/
Property Object.GetX as Integer
        Return X
End Property
 
        /'CODICE PRINCIPALE'/
 
/'Crea una nuova istanza dell'Oggetto con coordinate 100,100'/
Dim Player as Object = Type<Object>(100, 100)
 
/'Alloca dinamicamente un nuovo oggetto Vettore
muovendolo a sinistra di 10 unità e giù di 5 unità'/
Player.SetMotion(new Vector (-10, 5))
 
/'Fa aggiornare a Player la sua posizione'/
Player.Move()
 
/'Visualizza la nuova X, 90'/
Print Player.GetX
 
/'Siccome Player è una variabile locale, il suo distruttore è
chiamato alla fine dello scopo in maniera automatica'/

Libreria grafica

Il FreeBASIC ha una libreria grafica in 2D integrata compatibile con il QuickBASIC, che permette all'utente di gestire semplici primitive grafiche (come rettangoli, linee e cerchi), il blitting e caratteristiche aggiuntive non presenti nella libreria grafica originale del QuickBASIC. Questa libreria non è dipendente dal sistema operativo per cui il codice è portabile da una piattaforma all'altra.
Nonostante la libreria sia integrata, viene caricata solo se il programmatore sceglie di usarla: basta invocare il comando screen. Il FreeBASIC permette inoltre di utilizzare librerie grafiche quali l'OpenGL o di creare finestre con le API del proprio sistema per usare l'accelerazione hardware senza interferire con la libreria grafica del linguaggio.

Fonte: WikiPedia

Download | FreeBASIC
Documentazione | Qui
 
Mi pare il linguaggio VB.net solo senza form ._.
Diciamo che è un compilatore del linguaggio visual basic.
Pero mi viene una domanda...ma quanti linguaggi basic ci sono?
smallbasic
visualbasic
freebasic
manca solo pincopallino basic ._. e nerd basic
 
Mi pare il linguaggio VB.net solo senza form ._.
Diciamo che è un compilatore del linguaggio visual basic.
Pero mi viene una domanda...ma quanti linguaggi basic ci sono?
smallbasic
visualbasic
freebasic
manca solo pincopallino basic ._. e nerd basic
Il BASIC è un vecchio linguaggio di programmazione che un tempo era considerato molto potente. Tutti i linguaggi di programmazione hanno poi uno o più IDE (Integrated Development Environment, Ambiente di Sviluppo Integrato) che sono del programmi che possiedono svariati tool utili al programmatore. Ogni IDE possiede per forza un compilatore. Esistono 2 diversi tipi di compilatori: quelli che traducono il codice in linguaggio macchina e quelli che traducono il codice in linguaggio che poi dovrà essere interpretato da un'altra entità.
SmallBasic e FreeBasic non sono dei linguaggi di programmazione, ma degli IDE per il linguaggio BASIC. I compilatori per il BASIC traducono il linguaggio BASIC in linguaggio macchina, quindi direttamente eseguibile dalla CPU.
Successivamente Microsoft, ha sviluppato un nuovo linguaggio di programmazione basato sulla sintassi del linguaggio BASIC, dove la caratteristica più importante era la facilità con cui potevano essere create le GUI (Graphical User Interface, Interfaccia Grafica Utente). Questo linguaggio prese il nome di Visual Basic e arrivò fino alla versione 6. Anche il Visual Basic è linguaggio compilato in linguaggio macchina, quindi direttamente eseguibile dalla CPU.
Dopo la versione 6 del Visual Basic, Microsoft decise di implementare a pieno nel linguaggio il paradigma di programmazione Object Oriented e decise anche di utilizzare un Framework su cui far girare questi programmi. Questo Framework venne chiamato Framework .NET e il linguaggio Visual Basic venne chiamato Visual Basic .NET. Per far girare le applicazioni sul Framework .NET era necessario che il linguaggio non venisse più compilato in linguaggio macchina, ma venisse tradotto in un altro linguaggio interpretabile solo dal Framework .NET (e in particolare dal CLR, Common Language Runtime, che è l'entità del Framework .NET che si occupa, appunto, di eseguire i programmi .NET) chiamato MSIL (MicroSoft Intermediate Language) o più semplicemente IL (Intermediate Language).
Il Visual Basic .NET a differenza dei suoi predecessori, supporta pienamente il paradigma di programmazione Object Oriented (Orientato agli Oggetti). Il Visual Basic .NET mantenne il suffisso .NET fino alla versione 2003 del linguaggio. Successivamente abbandonò tale suffisso per iniziare a chiamarsi semplicemente Visual Basic 2005/2008/2010. Anche se ha abbandonato il suffisso .NET però si basa ancora sul Framework .NET, e i programmatori, per distinguerlo dal vecchio Visual Basic arrivato fino alla versione 6, continuano a chiamarlo Visual Basic .NET.

Ecco. Questi sono i linguaggi che hanno BASIC nel nome :)
 
Mi pare il linguaggio VB.net solo senza form ._.
Diciamo che è un compilatore del linguaggio visual basic.
Pero mi viene una domanda...ma quanti linguaggi basic ci sono?
smallbasic
visualbasic
freebasic
manca solo pincopallino basic ._. e nerd basic


Si, in effetti ci sono molti linguaggi basic, ma questo vi ricordo che è un Cmpilatore del linguaggio basic, nel quale ci sono state aggiunte molte funzioni, come anche l'opp etc... si possono creare form, giochi etc... è compatibile con moltissime librerie soprattutto con le librerie del C, anche con quelle del C++, ma la compatibilità per adesso non è ottimale. A me questo compilatore piace molto, per la sua semplicità e potenzialità, si ne ha di potenzialità, i giochi scritti con questo linguaggio sono fluidi come quelli scritti in C. Esitono anche degli editor\ide o come li volete chiamare li chiamate, che vi aiutano nella scrittura dell'applicazione con tanto di debugger e compilazione (quindi non dovete usare il cmd).

Qui -> freebasic.net :: View Forum - Game Dev <- potete trovare alcuni giochi e\o progetti scritti con tale linguaggio.

L'unica pecca, se la vogliamo mettere cosi, è la documentazione... ce ne solo in lingua inglese.
 
Stato
Discussione chiusa ad ulteriori risposte.