FreeBASIC
FreeBASIC is een gratis en open source BASIC compiler. De syntaxis van FreeBASIC lijkt zo veel mogelijk op andere vormen van BASIC maar is vooral gebaseerd op d…

FreeBASIC is een gratis en open source BASIC compiler. De syntaxis van FreeBASIC lijkt zo veel mogelijk op andere vormen van BASIC maar is vooral gebaseerd op de syntaxis van QBasic. Op het moment kan FreeBASIC programma's compileren voor DOS, Xbox, Windows en Linux. Men is momenteel bezig om FreeBASIC naar nog meer platformen over te zetten. Voorlopig bestaat de compiler uit bijna 90.000 regels code, helemaal geschreven in FreeBASIC zelf.
Compiler eigenschappen
Het back-end van de FreeBASIC compiler maakt gebruik van de GNU Binutils om bron-code om te zetten in console en GUI applicaties. Het is mogelijk om zowel statisch en/of dynamisch gelinkte C (programmeertaal) bibliotheken te creëren en te linken. FreeBASIC geeft in beperkte mate ook ondersteuning tot het linken van C++ bibliotheken. De compiler is beschikbaar in zowel een 32 bit als een 64 bit uitvoering.
De code die gegenereerd wordt door FreeBASIC kan daardoor in veel andere programmeeromgevingen ingezet worden. Verder ondersteunt FreeBASIC een pre-processor in C (programmeertaal) stijl met ondersteuning voor inline macro’s, conditioneel compileren en het includeren van bestanden.
Door enkele compilervlaggen te gebruiken is het mogelijk om verschillende back-end compilers in te zetten. Er is een mogelijkheid om een Assembleertaal, GNU Compiler Collection C compiler en LLVM back-end te kiezen. De gehele FreeBASIC standaard bibliotheek is op alle back-end opties beschikbaar, echter de uiteindelijke code prestaties en het formaat van het gegenereerde uitvoerbare bestand kunnen hierdoor verschillen.
Assembleertaal ondersteuning is in FreeBASIC beschikbaar wanneer men een statement-blok opent met een ASM statement.
Function add_five(Byval number As Integer) As Integer
Asm
mov EAX, [number]
add EAX, 5
mov [FUNCTION], EAX
End Asm
End Function
Ongeacht de gekozen backendcompiler dient de assembleertaal in de Intelsyntaxis geschreven te worden. FreeBASIC zal deze omzetten naar de juiste assembleertaal voor de betreffende backend.
Syntaxis
In eerste instantie was FreeBASIC opgezet als direct syntaxisequivalent aan QuickBasic (QBasic [een interpreter] in DOS5), echter in de loop der tijd is de compiler uitgebreid met verscheidene moderne functies. Enkele van deze functies zijn:
- objects (veel object georiënteerde elementen zijn geïmplementeerd)
- methods
- constructors
- dynamic memory allocation
- properties
- operator overloading
- function overloading
- namespaces
- pointers
Verder mogen er net als in QuickBasic meerdere statements op een lijn geschreven worden mits ze gescheiden worden met een dubbelepunt. Do : a += 1 : If a > 10 Then : a = -10 : Loop
FreeBASIC Dialecten
Om toch een zekere compatibiliteit te behouden met de originele QuickBasic- en vroege FreeBASICdialecten is er een optie ingebouwd om te schakelen tussen 3 dialecten. De moderne compiler uitbreidingen die toen nog niet beschikbaar waren zijn in veel gevallen wel gewoon te gebruiken, maar dan intermixt met een oudere syntaxis.
- Standaard dialect: (moderne dialect met alle moderne functies beschikbaar, verouderde syntaxiselementen zijn hier niet toegestaan)
- FB-lite dialect: (bijna alle moderne objectgeoriënteerde opties zijn beschikbaar, echter zijn in dit dialect verouderde BASIC statements zoals
GOSUB/RETURNondersteund en genummerde lijnlabels) - QB dialect: (probeert zo goed mogelijk de volledige Q(uick)Basicfunctionaliteit na te bootsen in een moderne omgeving. oude MS-DOS QuickBasic bron-code zal vaak zonder aanpassingen compileren)
Grafische bibliotheek
FreeBASIC heeft een ingebouwde grafische bibliotheek genaamd FBgfx. FBgfx heeft alle functies die ook aanwezig waren in QuickBasic, echter uitgebreid met kleurdiepte-ondersteuning tot 32-bit (24-, 16-, 8-Bit zijn ook beschikbaar).
De bibliotheek heeft ook een aantal moderne functies om beter met de hogere kleurdiepte, page-flipping, window management en andere randapparatuur (keyboard, joystick en muis) om te gaan. Back-end van de bibliotheek kan communiceren met zowel GDI, OpenGL (Linux) en Microsoft DirectX. De bibliotheek is niet hardware versneld.
Externe links
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.