FreeBASIC

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
FreeBASIC
programari
Logotip
Captura de pantalla d'exemple
Tipus Compilador
Desenvolupador Andre Victor i altres
Data de la primera versió 2004
Última versió 1.04.0 (01/10/2015)
Sistema operatiu DOS
Microsoft Windows
Linux
FreeBSD
Llenguatge BÀSIC
Llicència GNU GPL
( llicència gratuïta )
Lloc web www.freebasic.net/

FreeBASIC és un compilador BASIC multiplataforma de codi obert i gratuït (distribuït amb llicència GPL ) per a sistemes Microsoft Windows , DOS (en mode protegit ), Linux i FreeBSD .

FreeBASIC té una sintaxi molt similar a QuickBASIC, però amb una sèrie de funcions addicionals. La compatibilitat és tan bona que es poden compilar i executar diversos programes escrits per QuickBASIC sense cap canvi de codi.

Característiques

FreeBASIC és un compilador d’autocompilació (és a dir, capaç de compilar el seu propi codi font) que consta d’unes 120.000 línies de codi (excloent les biblioteques). Utilitza binutils , eines GNU per manipular el codi objecte , com a backend . Amb FreeBASIC és possible desenvolupar aplicacions des de terminal o amb interfície gràfica ( GUI ). És totalment compatible amb l'ús de biblioteques C i parcialment les de C ++ : gràcies a això és possible utilitzar i crear biblioteques per a C i molts altres llenguatges.

FreeBASIC implementa un preprocessador capaç de gestionar macros multilínia, compilació condicional i inclusió de fitxers. Cal tenir en compte, però, que el preprocessador FreeBASIC no és un preprocessador real ja que s’executa al mateix temps que s’analitza el codi: això vol dir que pot accedir a la informació dels símbols i, possiblement, també configurar el dialecte (que , però, reinicia l’anàlisi de la font).

FreeBASIC és molt ràpid, amb un rendiment similar al d’eines com el GCC [1] .

Sintaxi

Tot i que la sintaxi s’ha mantingut molt similar a la de BASIC en general i de QuickBASIC en particular per afavorir la compatibilitat amb aquests il·lustres predecessors, FreeBASIC reflecteix els estàndards i models més moderns: polimorfisme , sobrecàrrega de l’ operador, programació orientada a objectes , espai de noms , etc.

Les línies de codi en FreeBASIC que acaben amb dos punts ( : o el caràcter de final de línia: a causa del que no és necessari, com en C, un caràcter de final de línia particular. FreeBASIC també accepta múltiples instruccions escrites en una sola línia: només cal separar-les amb dos punts.

FreeBASIC admet comentaris : es poden inserir al final d'una línia de codi amb l'apòstrof ' o com a blocs de diverses línies que comencen per /' i acaben per '/ .

Compatibilitat

Es van fer canvis durant el desenvolupament per fer compatible FreeBASIC amb les funcions avançades dels llenguatges moderns i compatibles amb GCC, però FreeBASIC continua sent compatible amb l'antiga sintaxi QuickBASIC. Per aconseguir-ho, es va introduir l'opció de línia d'ordres -lang per utilitzar-la per definir el nivell de compatibilitat del FreeBASIC:

  • -lang fb : començant amb el paràmetre "fb", FreeBASIC ofereix al programador totes les funcions noves, mentre que totes les funcions de QuickBASIC estan desactivades per mantenir la compatibilitat amb els paradigmes de programació més moderns;
  • -lang fblite : el paràmetre "fblite" us permet accedir a les noves funcions de FreeBASIC que no es refereixen a la programació orientada a objectes i, alhora, us permet escriure codi adoptant les regles d'estil i sintaxi de les versions BASIC antigues, com ara com a variables implícites, sufixos, GOSUB /RETURN , numeració de línies, etc;
  • -lang qb : l'ús del paràmetre "qb" estableix el FreeBASIC a la màxima compatibilitat amb l'antic codi QuickBASIC. Aquest mode és útil quan el codi QuickBASIC no s'executa en mode "fblite".

Exemples de codi

Com a QuickBASIC, es pot utilitzar una sola instrucció per mostrar un missatge senzill a la pantalla:

 imprimir "Hola món!"

No obstant això, FreeBASIC afegeix moltes característiques de la programació orientada a objectes com ara mètodes , constructors , assignació de memòria dinàmica , propietats i assignació temporal.

 / "Una classe per al moviment vectorial" /
Tipus Vector
	W com Enter
	H. com Enter
	Declarar Constructor ( nW com Sencer , nH com Enter )
Final Tipus

Constructor Vector ( nW com Sencer , nH com Enter )
	W = nW
	H. = nH
Final Constructor

/ "Crea una classe d'objectes" /
Tipus Objecte
	Privat:
		X com Enter
		Y com Enter
		Moviment com Vector Punter
	Públic:
		/ "Crear mètodes públics, inclòs un destructor per a la neteja automàtica" /
		Declarar Constructor ( nX com Sencer , nY com Enter )
		Declarar Destructor ()
		Declarar Sub SetMotion ( Moviment com Vector Punter )
		Declarar Sub Mou ()
		Declarar Propietat GetX com Enter
Final Tipus

/ "Establir coordenades inicials" /
Constructor Objecte ( nX com Sencer , nY com Enter )
	X = nX
	Y = nY
Final Constructor

/ 'Neteja la memòria assignada' /
Destructor Objecte ()
	esborrar Moviment
Final Destructor

/ "Establir vector de moviment" /
Sub Objecte . SetMotion ( Moviment com Vector Punter )
	Moviment = Moviment
Final Sub

/ 'Mou l'objecte segons el seu vector de moviment' /
Sub Objecte . Mou ()
	X + = Moviment -> O
	Y + = Moviment -> H
Final Sub

/ "Una manera de llegir X, ja que és privada" /
Propietat Objecte . GetX com Enter
	Torna X
Final Propietat

	/ "CODI PRINCIPAL" /

/ 'Crea una nova instància de l'objecte amb les coordenades 100.100' /
Dim Jugador com Objecte = Escriviu < Objecte > ( 100 , 100 )

/ 'Assigna dinàmicament un nou objecte Vector
movent-lo a a l'esquerra des de 10 unitat I baix des de 5 unitat '/
Jugador . SetMotion ( nou Vector ( -10 , 5 ))

/ "Feu que el jugador actualitzi la seva posició" /
Jugador . Move ()

/ "Veure el nou X, 90" /
Imprimir Jugador . GetX

/ 'Com que el jugador és una variable local, el seu destructor és
va trucar al final del abast dins manera automàtic '/

Biblioteca de gràfics

FreeBASIC té una biblioteca de gràfics 2D integrada compatible amb QuickBASIC, que permet a l’usuari gestionar primitives gràfiques simples (com ara rectangles, línies i cercles), funcions blit i addicionals que no es troben a la biblioteca de gràfics QuickBASIC original. Aquesta biblioteca no depèn del sistema operatiu, de manera que el codi és portàtil d'una plataforma a una altra.

Tot i que la biblioteca està integrada, només es carrega si el programador tria utilitzar-la: només cal que invoqueu la screen ordres. FreeBASIC també us permet utilitzar biblioteques de gràfics com OpenGL o crear Windows amb l' API del vostre sistema per utilitzar l'acceleració de maquinari sense interferir amb la biblioteca de gràfics de l'idioma.

Desenvolupaments futurs

FreeBASIC continua desenvolupant-se. Un dels objectius és convertir-lo en un front-end del GCC [2] , que permetria utilitzar moltes funcions de C ++ i altres llenguatges de programació orientats a objectes; també hi ha la intenció de portar-lo a la majoria de sistemes moderns i d'utilitzar tècniques avançades d'optimització.

Amb la versió 0.17 es va introduir la programació orientada a objectes amb l'adopció de l'ús de classes i amb l'extensió de tipus de dades.

En 2007 , va ser inclòs per FreeBASIC Sourceforge a la llista de nominats per al premi de millor suport a l'usuari [3] .

Nota

  1. ^ The Computer Language Benchmarks Game FreeBASIC vs.gcc , a shootout.alioth.debian.org . Consultat el 6 d'abril de 2010 (arxivat de l' original el 21 de juny de 2011) .
  2. ^ Llista de tot FreeBASIC a Sourceforge [ enllaç trencat ] , a fbc.svn.sourceforge.net . Recuperat el 31 de juliol de 2007 .
  3. ^ SourceForge.net: 2007 Community Choice Awards , a sourceforge.net . Consultat el 31 de desembre de 2008 (arxivat de l' original el 4 de juliol de 2009) .

Articles relacionats

Altres projectes

Enllaços externs

Programari lliure Portal de programari lliure : accediu a les entrades de Viquipèdia relacionades amb programari lliure