GratisBASIC - FreeBASIC

GratisBASIC
Fblogo.gif
FreeBasic help.png
Paradigma Procedureel , objectgericht
Ontworpen door André Victor
Ontwikkelaar Het FreeBASIC-ontwikkelteam
Verscheen voor het eerst 2004 ; 17 jaar geleden ( 2004 )
Stabiele vrijlating
1.08.1 / 9 juli 2021 ; 3 maanden geleden ( 2021-07-09 )
Typediscipline Statisch
OS MS-DOS , FreeBSD , Linux , Microsoft Windows
Vergunning GNU GPLv2+ , Standaardbibliotheken gelicentieerd onder de GNU LGPLv2+
Website www .freebasic .net
Beïnvloed door
QuickBASIC , C

FreeBASIC is een multiplatform, gratis / open source ( GPL ) BASIC programmeertaal en compiler voor Microsoft Windows , protected-mode MS-DOS ( DOS extender ), Linux , FreeBSD en Xbox . De Xbox-versie wordt niet meer onderhouden.

Volgens de officiële website biedt FreeBASIC syntaxiscompatibiliteit met programma's die oorspronkelijk zijn geschreven in Microsoft QuickBASIC (QB). In tegenstelling tot QuickBASIC is FreeBASIC echter alleen een compiler voor de opdrachtregel , tenzij gebruikers handmatig een externe geïntegreerde ontwikkelomgeving (IDE) naar keuze installeren . IDE's die speciaal voor FreeBASIC zijn gemaakt, zijn onder meer FBide en FbEdit, terwijl meer grafische opties WinFBE Suite en VisualFBEditor zijn.

Compilerfuncties

Aan de achterkant maakt FreeBASIC gebruik van GNU Binutils om console- en grafische gebruikersinterfacetoepassingen te produceren . FreeBASIC ondersteunt het koppelen en maken van statische en dynamische C- bibliotheken en heeft beperkte ondersteuning voor C++- bibliotheken. Als gevolg hiervan kan code die is gecompileerd in FreeBASIC opnieuw worden gebruikt in de meeste native ontwikkelomgevingen.

Voorbewerking in C-stijl , inclusief macro's met meerdere regels, voorwaardelijke compilatie en bestandsopname, wordt ondersteund. De preprocessor heeft ook toegang tot symboolinformatie en compilerinstellingen, zoals het taaldialect .

Syntaxis

Aanvankelijk emuleerde FreeBASIC de Microsoft QuickBASIC-syntaxis zo goed mogelijk. Buiten dat, heeft de taal zijn evolutie voortgezet. Als resultaat combineert FreeBASIC verschillende taaldialecten voor maximale compatibiliteit met QuickBASIC en volledige toegang tot moderne functies. Nieuwe functies zijn ondersteuning voor concepten zoals voorwerpen , operator overbelasting , functie overbelasting , namespaces en anderen.

Newline- tekens geven de beëindiging van programmeerinstructies aan. Een programmeerinstructie kan op meerdere opeenvolgende regels worden verdeeld door het onderstrepingsteken te gebruiken voor het vervolg van de regel (_), terwijl meerdere instructies op een enkele regel kunnen worden geschreven door elke instructie met een dubbele punt (:) te scheiden .

Opmerkingen blokkeren , evenals opmerkingen aan het einde van de regel worden ondersteund. Volledige opmerkingen worden gemaakt met een apostrof ' , terwijl blokken met becommentarieerde code beginnen met /'en eindigen met '/.

FreeBASIC is niet hoofdlettergevoelig.

Grafische bibliotheek

FreeBASIC biedt ingebouwde, QuickBASIC-compatibele grafische ondersteuning via FBgfx, dat automatisch wordt opgenomen in programma's die het SCREENcommando aanroepen . De backend is standaard ingesteld op OpenGL op Linux en DirectX op Microsoft Windows . Deze abstractie maakt FBgfx grafische code platformonafhankelijk. FBgfx is echter niet hardware-versneld.

Gebruikers die bekend zijn met externe grafische hulpprogramma's zoals OpenGL of de Windows API kunnen ze gebruiken zonder de ingebouwde grafische bibliotheek te verstoren.

Taaldialecten

Naarmate FreeBASIC is geëvolueerd, zijn er wijzigingen aangebracht die het breken van de oudere syntaxis vereisten. Om programma's die zijn geschreven met de oudere syntaxis te blijven ondersteunen, ondersteunt FreeBASIC nu de volgende dialecten:

  • Het standaarddialect ( -lang fb als een opdrachtregelargument ) ondersteunt alle nieuwe compilerfuncties en staat archaïsche syntaxis niet toe.
  • Het FB-lite-dialect ( -lang fblite ) maakt het gebruik van de meeste nieuwe, niet-objectgeoriënteerde functies mogelijk, naast het programmeren in oudere stijl. Impliciete variabelen, achtervoegsels, GOSUB/ RETURN, numerieke labels en andere kenmerken zijn toegestaan ​​in dit dialect.
  • Het QB-dialect ( -lang qb ) probeert het QuickBASIC-gedrag te repliceren en kan veel QuickBASIC-programma's compileren zonder aanpassingen.

Voorbeeldcode:

Standaardprogramma's, zoals de "Hello, World!" programma worden uitgevoerd zoals ze waren in QuickBASIC.

Print "Hello, World!"

sleep:end 'Comment, prevents the program window from closing instantly

FreeBASIC voegt hieraan toe met ondersteuning voor objectgeoriënteerde functies zoals methoden , constructors , dynamische geheugentoewijzing , eigenschappen en tijdelijke toewijzing.

Type Vector
    Private:
        x As Integer
        y As Integer
    Public:
        Declare Constructor (nX As Integer = 0, nY As Integer = 0)
        Declare Property getX As Integer
        Declare Property getY As Integer
End Type

Constructor Vector (nX As Integer, nY As Integer)
    x = nX
    y = nY
End Constructor

Property Vector.getX As Integer
    Return x
End Property

Property Vector.getY As Integer
    Return y
End Property
Dim As Vector Ptr player = New Vector()

*player = Type<Vector>(100, 100)
Print player->getX
Print player->getY

Delete player

Sleep 'Prevents the program window from closing instantly

In beide gevallen is de taal zeer geschikt voor leerdoeleinden.

Referenties

Externe links

Ides