FreeBASIC

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
FreeBASIC
software
Siglă
Exemplu de captură de ecran
Tip Compilator
Dezvoltator Andre Victor și alții
Data primei versiuni 2004
Ultima versiune 1.04.0 (01.01.2015)
Sistem de operare DOS
Microsoft Windows
Linux
FreeBSD
Limba DE BAZĂ
Licență GNU GPL
( licență gratuită )
Site-ul web www.freebasic.net/

FreeBASIC este un compilator BASIC cross-platform gratuit și open source (distribuit sub licența GPL ) pentru sistemele Microsoft Windows , DOS (în modul protejat ), Linux și FreeBSD .

FreeBASIC are o sintaxă foarte similară cu QuickBASIC, dar cu o serie de caracteristici suplimentare. Compatibilitatea este atât de bună încât mai multe programe scrise pentru QuickBASIC pot fi compilate și rulate fără modificări de cod.

Caracteristici

FreeBASIC este un compilator de auto-compilare (adică capabil să compileze propriul cod sursă) format din aproximativ 120.000 de linii de cod (cu excepția bibliotecilor). Folosește binutils , instrumente GNU pentru manipularea codului obiectului , ca backend . Cu FreeBASIC este posibil să dezvoltați aplicații de la terminal sau cu interfață grafică ( GUI ). Suportă pe deplin utilizarea bibliotecilor C și parțial pe cele ale C ++ : datorită acestui lucru este posibil să utilizați și să creați biblioteci pentru C și multe alte limbi.

FreeBASIC implementează un preprocesator capabil să gestioneze macrocomenzi cu mai multe linii , compilarea condiționată și includerea fișierelor. Trebuie menționat, totuși, că preprocesorul FreeBASIC nu este un preprocesor real, deoarece este executat în același timp cu analizarea codului: aceasta înseamnă că poate accesa informațiile simbolurilor și, de asemenea, poate seta dialectul (care , însă, repornește analiza sursei).

FreeBASIC este foarte rapid, cu o performanță similară cu cea a instrumentelor precum GCC [1] .

Sintaxă

Deși sintaxa a fost păstrată foarte asemănătoare cu cea a BASIC în general și a QuickBASIC în special pentru a favoriza compatibilitatea cu acești ilustri predecesori, FreeBASIC reflectă cele mai moderne standarde și modele: polimorfism , supraîncărcare a operatorului, programare orientată obiect , spațiu de nume etc.

Liniile de cod din FreeBASIC care se termină cu două puncte : FreeBASIC acceptă, de asemenea, mai multe instrucțiuni scrise pe o singură linie: doar separați-le cu două puncte.

FreeBASIC acceptă comentarii : pot fi inserate fie la sfârșitul unei linii de cod cu apostroful ' fie ca blocuri multi-linie începând cu /' și terminând cu '/ .

Compatibilitate

Au fost făcute modificări în timpul dezvoltării pentru a face FreeBASIC compatibil cu funcțiile avansate ale limbajelor moderne și compatibile GCC, dar FreeBASIC continuă să fie compatibil cu vechea sintaxă QuickBASIC. Pentru a realiza acest lucru, a fost introdusă opțiunea de linie de comandă -lang pentru a fi utilizată pentru a seta nivelul de compatibilitate al FreeBASIC:

  • -lang fb : începând cu parametrul „fb”, FreeBASIC oferă programatorului toate funcțiile noi, în timp ce toate caracteristicile QuickBASIC sunt dezactivate pentru a menține compatibilitatea cu cele mai moderne paradigme de programare;
  • -lang fblite : parametrul „fblite” vă permite să accesați noile caracteristici FreeBASIC care nu privesc programarea orientată obiect și, în același timp, vă permite să scrieți cod adoptând regulile de stil și sintaxă ale vechilor versiuni BASIC, cum ar fi ca variabile implicite, sufixe, GOSUB /RETURN , numerotarea liniilor etc;
  • -lang qb : folosind parametrul "qb" setează FreeBASIC la compatibilitate maximă cu vechiul cod QuickBASIC. Acest mod este util atunci când codul QuickBASIC nu rulează în modul "fblite".

Exemple de cod

La fel ca în QuickBASIC, o singură instrucțiune poate fi utilizată pentru a afișa un mesaj simplu pe ecran:

 imprimare "Salut Lume!"

Cu toate acestea, FreeBASIC adaugă multe caracteristici ale programării orientate pe obiecte, cum ar fi metode , constructori , alocare dinamică a memoriei , proprietăți și alocare temporară.

 / „O clasă pentru mișcare vectorială” /
Tip Vector
	W la fel de Întreg
	H. la fel de Întreg
	Declara Constructor ( nW la fel de integer, nH la fel de Întreg )
Sfârșit Tip

Constructor Vector ( nW la fel de integer, nH la fel de Întreg )
	W = nW
	H. = nH
Sfârșit Constructor

/ „Creați o clasă de obiecte” /
Tip Obiect
	Privat:
		X la fel de Întreg
		Da la fel de Întreg
		Circulaţie la fel de Vector Pointer
	Public:
		/ „Creați metode publice, inclusiv un destructor pentru curățarea automată” /
		Declara Constructor ( nX la fel de integer, nY la fel de Întreg )
		Declara Distrugător ()
		Declara Sub SetMotion ( Mișcare la fel de Vector Indicator )
		Declara Sub Mutare ()
		Declara Proprietate GetX la fel de Întreg
Sfârșit Tip

/ „Setați coordonatele inițiale” /
Constructor Obiect ( nX la fel de integer, nY la fel de Întreg )
	X = nX
	Da = nY
Sfârșit Constructor

/ „Curățați memoria alocată” /
Distrugător Obiect ()
	șterge Circulaţie
Sfârșit Distrugător

/ „Setați vectorul de mișcare” /
Sub Obiect . SetMotion ( Mișcare la fel de Vector Pointer )
	Circulaţie = Mişcare
Sfârșit Sub

/ „Mutați obiectul în funcție de vectorul său de mișcare” /
Sub Obiect . Mutare ()
	X + = Mișcare -> W
	Da + = Mișcare -> H
Sfârșit Sub

/ „Un mod de a citi X, deoarece este privat” /
Proprietate Obiect . GetX la fel de Întreg
	Întoarcere X
Sfârșit Proprietate

	/ „COD PRINCIPAL” /

/ 'Creați o nouă instanță a obiectului cu coordonatele 100.100' /
Dim Jucător la fel de Obiect = Tastați < Obiect > ( 100 , 100 )

/ 'Alocă dinamic un nou obiect Vector
mutându-l la stânga din 10 unitate Și de mai jos din 5 unitate '/
Jucător . SetMotion ( nou Vector ( -10 , 5 ))

/ „Fă ca jucătorul să își actualizeze poziția” /
Jucător . Mutare ()

/ „Vizualizați noul X, 90” /
Imprimare Jucător . GetX

/ 'Deoarece Playerul este o variabilă locală, distructorul său este
numit la Sfârșit din scop în manieră automat '/

Biblioteca grafică

FreeBASIC are o bibliotecă grafică 2D integrată compatibilă cu QuickBASIC, care permite utilizatorului să gestioneze primitive grafice simple (cum ar fi dreptunghiuri, linii și cercuri), blituri și caracteristici suplimentare care nu sunt prezente în biblioteca grafică originală QuickBASIC. Această bibliotecă nu depinde de sistemul de operare, astfel încât codul este portabil de la o platformă la alta.

Deși biblioteca este integrată, este încărcată numai dacă programatorul alege să o folosească: invocați doar screen comandă. FreeBASIC vă permite, de asemenea, să utilizați biblioteci grafice precum OpenGL sau să creați Windows cu API - ul sistemului dvs. pentru a utiliza accelerarea hardware fără a interfera cu biblioteca grafică a limbii.

Evoluții viitoare

FreeBASIC continuă să fie dezvoltat. Unul dintre obiective este de a face din acesta un front-end al GCC [2] , ceea ce ar permite utilizarea multor caracteristici ale C ++ și a altor limbaje de programare orientate pe obiecte; există, de asemenea, intenția de a-l transporta la majoritatea sistemelor moderne și de a utiliza tehnici avansate de optimizare.

Cu versiunea 0.17, programarea orientată pe obiecte a fost introdusă odată cu adoptarea utilizării claselor și cu extinderea tipurilor de date.

În 2007 , FreeBASIC a fost inclus de Sourceforge în lista nominalizaților pentru cel mai bun premiu de asistență pentru utilizatori [3] .

Notă

  1. ^ The Computer Language Benchmarks Game FreeBASIC vs.gcc , la shootout.alioth.debian.org . Adus la 6 aprilie 2010 (arhivat din original la 21 iunie 2011) .
  2. ^ Lista FreeBASIC Todo pe Sourceforge [ link rupt ] , pe fbc.svn.sourceforge.net . Adus la 31 iulie 2007 .
  3. ^ SourceForge.net: 2007 Community Choice Awards , pe sourceforge.net . Adus la 31 decembrie 2008 (arhivat din original la 4 iulie 2009) .

Elemente conexe

Alte proiecte

linkuri externe

Software gratuit Free Software Portal : accesați intrările Wikipedia care se ocupă de software gratuit