FreeBASIC - FreeBASIC

FreeBASIC
Fblogo.gif
FreeBasic help.png
Paradigme Prosessmessig , objektorientert
Designet av Andre Victor
Utvikler FreeBASIC Development Team
Første gang dukket opp 2004 ; 17 år siden ( 2004 )
Stabil utgivelse
1.08.1 / 9. juli 2021 ; 3 måneder siden ( 2021-07-09 )
Skrive disiplin Statisk
OS MS-DOS , FreeBSD , Linux , Microsoft Windows
Tillatelse GNU GPLv2+ , standardbiblioteker lisensiert under GNU LGPLv2+
Nettsted www .freebasic .net
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

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 SCREENkommandoen. Bakenden som standard er OpenGLLinux og DirectXMicrosoft 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