GratisBASIC - FreeBASIC
| Paradigma | Procedureel , objectgericht |
|---|---|
| Ontworpen door | André Victor |
| Ontwikkelaar | Het FreeBASIC-ontwikkelteam |
| Verscheen voor het eerst | 2004 |
| Stabiele vrijlating | 1.08.1 / 9 juli 2021
|
| Typediscipline | Statisch |
| OS | MS-DOS , FreeBSD , Linux , Microsoft Windows |
| Vergunning | GNU GPLv2+ , Standaardbibliotheken gelicentieerd onder de GNU LGPLv2+ |
| Website | www |
| 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
- WinFBE - Moderne FreeBASIC Editor voor Windows
- fbide.freebasic.net — FBIDE Integrated Development Environment for freeBASIC
- FBEdit (huidig) — FBEdit broncode-editor voor FreeBASIC, versie 1.0.7.6c
- FBEdit broncode-editor voor freeBASIC (verouderde versie: 1.0.6.8) op SourceForge
- WinFBE-suite
- VisualFBEditor