FreeBASIC - FreeBASIC
Paradigme | Prosessmessig , objektorientert |
---|---|
Designet av | Andre Victor |
Utvikler | FreeBASIC Development Team |
Første gang dukket opp | 2004 |
Stabil utgivelse | 1.08.1 / 9. juli 2021
|
Skrive disiplin | Statisk |
OS | MS-DOS , FreeBSD , Linux , Microsoft Windows |
Tillatelse | GNU GPLv2+ , standardbiblioteker lisensiert under GNU LGPLv2+ |
Nettsted | www |
Påvirket av | |
QuickBASIC , C |
FreeBASIC er et BASIC programmeringsspråk og kompilator for multiplattform, gratis / åpen kildekode ( GPL ) for Microsoft Windows , MS-DOS ( DOS extender ) i beskyttet modus , Linux , FreeBSD og Xbox . Xbox -versjonen vedlikeholdes ikke lenger.
I følge det offisielle nettstedet gir FreeBASIC syntakskompatibilitet med programmer som opprinnelig ble skrevet i Microsoft QuickBASIC (QB). I motsetning til QuickBASIC er FreeBASIC imidlertid bare en kommandolinje -kompilator , med mindre brukere manuelt installerer et eksternt integrert utviklingsmiljø (IDE) etter eget valg. IDE -er spesielt laget for FreeBASIC inkluderer FBide og FbEdit, mens flere grafiske alternativer inkluderer WinFBE Suite og VisualFBEditor.
Kompilatorfunksjoner
På baksiden bruker FreeBASIC GNU Binutils for å produsere konsoll- og grafiske brukergrensesnittprogrammer . FreeBASIC støtter kobling og opprettelse av C statiske og dynamiske biblioteker og har begrenset støtte for C ++ - biblioteker. Som et resultat kan kode som er kompilert i FreeBASIC, gjenbrukes i de fleste native utviklingsmiljøer.
C stil forbehandling , inkludert flere linjer makroer , betinget kompilering og fil inkludering, støttes. Forprosessoren har også tilgang til symbolinformasjon og kompilatorinnstillinger, for eksempel språkdialekt .
Syntaks
I utgangspunktet emulerte FreeBASIC Microsoft QuickBASIC -syntaks så tett som mulig. Utover det har språket fortsatt sin utvikling. Som et resultat kombinerer FreeBASIC flere språkdialekter for maksimal kompatibilitet med QuickBASIC og full tilgang til moderne funksjoner. Nye funksjoner inkluderer støtte for begreper som gjenstander , operatør overbelastning , funksjon overbelastning , navnerom og andre.
Newline -tegn indikerer avslutningen av programmeringsuttalelser. En programmeringserklæring kan distribueres på flere påfølgende linjer ved å bruke linjefortsetningen (_), mens flere setninger kan skrives på en enkelt linje ved å skille hver setning med et kolon (:).
Blokkere kommentarer , samt end-of-line-kommentarer støttes. Hele linjekommentarer blir laget med en apostrof '
, mens blokker med kommentert kode begynner med /'
og slutter med '/
.
FreeBASIC er ikke store og små bokstaver.
Grafisk bibliotek
FreeBASIC gir innebygd, QuickBASIC-kompatibel grafikkstøtte gjennom FBgfx, som automatisk inkluderes i programmer som ringer til SCREEN
kommandoen. Bakenden som standard er OpenGL på Linux og DirectX på Microsoft Windows . Denne abstraksjonen gjør FBgfx grafikkode på tvers av plattformer kompatibel. FBgfx er imidlertid ikke maskinvareakselerert.
Brukere som er kjent med eksterne grafikkverktøy som OpenGL eller Windows API kan bruke dem uten å forstyrre det innebygde grafikkbiblioteket.
Språkdialekter
Etter hvert som FreeBASIC har utviklet seg, har det blitt gjort endringer som krevde å bryte syntaks i eldre stil. For å fortsette å støtte programmer skrevet med den eldre syntaksen, støtter FreeBASIC nå følgende dialekter:
- Standarddialekten ( -lang fb som kommandolinjeargument ) støtter alle nye kompilatorfunksjoner og tillater ikke arkaisk syntaks.
- FB-lite dialekt ( -lang fblite ) tillater bruk av de fleste nye, ikke-objektorienterte funksjoner i tillegg til programmering i eldre stil. Implisitte variabler, suffikser,
GOSUB
/RETURN
, numeriske etiketter og andre funksjoner er tillatt på denne dialekten. - QB -dialekten ( -lang qb ) prøver å replikere QuickBASIC -oppførsel og er i stand til å kompilere mange QuickBASIC -programmer uten endringer.
Eksempelkode
Standardprogrammer, for eksempel "Hei, verden!" programmet er gjort akkurat som de var i QuickBASIC.
Print "Hello, World!"
sleep:end 'Comment, prevents the program window from closing instantly
FreeBASIC legger til dette med støtte for objektorienterte funksjoner som metoder , konstruktører , dynamisk minnetildeling , egenskaper og midlertidig tildeling.
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
I begge tilfeller er språket godt egnet for læringsformål.
Referanser
Eksterne linker
- IDE -er
- WinFBE - Modern FreeBASIC Editor for Windows
- fbide.freebasic.net - FBIDE Integrated Development Environment for freeBASIC
- FBEdit (nåværende) - FBEdit kildekode -editor for FreeBASIC, versjon 1.0.7.6c
- FBEdit kildekode -editor for freeBASIC (utdatert versjon: 1.0.6.8) på SourceForge
- WinFBE Suite
- VisualFBEditor