FreeBASIC

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 7 oktober 2017; kontroller kräver 29 redigeringar .
FreeBASIC
Språkklass multiparadigm : imperativ , procedurell , strukturell , objektorienterad
Utförandetyp sammanställt
Framträdde i 2004
Författare FreeBASIC Development Team
Utvecklaren FreeBASIC Development Team
Filtillägg _ .baseller.bi
Släpp

1.09.0 [1]

(1 januari 2022 ) ( 2022-01-01 )
Typ system strikt, statisk
Dialekter fb
Blivit påverkad QuickBASIC , C
Licens GNU GPLv2+ , standardbibliotek licensierade under GNU LGPLv2+
Hemsida freebasic.net
Plattform x86 , x86_64 , ARMv7 [d] och ARMv8
OS Linux , Windows , DOS , FreeBSD , MacOS (inte helt)
 Mediafiler på Wikimedia Commons
FreeBASIC-kompilator
Sorts kompilator , programmeringsspråk och objektorienterat programmeringsspråk
Utvecklare FreeBASIC Development Team
Skrivet i GRUNDLÄGGANDE
Operativ system Microsoft Windows , Linux , DOS och FreeBSD
Första upplagan 2004
Hårdvaruplattform x86 , x86_64 , ARMv7 [d] och ARMv8
senaste versionen 1.08.1 [1] (9 juli 2021 ) ( 2021-07-09 )
Licens GNU GPL
Hemsida freebasic.net
 Mediafiler på Wikimedia Commons

FreeBASIC  är ett programmeringsspråk på hög nivå som är närmast QuickBASIC i syntax , samt en kompilator för det (FreeBASIC Compiler). Ursprungligen utvecklades kompilatorn som ett gratis alternativ till Microsoft QuickBasic, men fick snart nya funktioner som förvandlades till ett kraftfullt utvecklingsverktyg. Även om de första versionerna av kompilatorn skrevs i Visual Basic , kan den nu kompilera sig själv.

Kompilator

Kompilerar QBasic- och FreeBASIC-kod till 32 och 64 bitars Win32 , DOS ( skyddat läge ) och Linux x86 körbara moduler.

Montering och länkning görs med GNU Binutils .

Kompilatorn distribueras enligt villkoren för  GNU GPL , och standardbiblioteket under GNU LGPL .

Det finns flera utvecklingsmiljöer , du kan använda GNU Debugger som en debugger (gprof stöds också).

Språk

Även om kompilatorn är kompatibel med QuickBASIC, har många tillägg och funktioner lagts till i FreeBASIC-språket för att möta moderna krav, standarder och kompatibilitet med bibliotek och API:er skrivna i C/ C++ . Från och med version 0.17 kan användaren välja tre kompileringslägen (option -lang): kompatibilitetsläge med QuickBASIC (qb), gamla versioner av FreeBASIC (utfasad) och standardläge, som inkluderar alla de senaste ändringarna och funktionerna.

Nya funktioner och tillägg [2]

Stöd för applikationsprogrammeringsfunktionsbibliotek

Programexempel

Hej världen!

Använda det inbyggda FreeBASIC-biblioteket:

Skriv ut "Hello World!"

Använda C-standardbiblioteket:

# Inkludera "crt.bi" sätter ( ! "Hej världen!\n" )

Använda Windows API :

# Inkludera "windows.bi" MessageBox ( Null , "Hello, World!" , "Meddelande" , MB_OK )

Objektorienterad programmering

' Vektorklass Typ Vektor W Som heltal H Som heltal Deklarera konstruktor ( nW som heltal , nH som heltal ) Sluttypskonstruktorvektor ( nW som heltal , nH som heltal ) W = nW H = nH Slutkonstruktor ' Klass för att skapa ett typ AObject Privat: X som heltal Y Som heltalsrörelse som vektorpekare Offentlig: ' Externt synliga metoder, inklusive konstruktor och destruktor Deklarera konstruktor ( nX som heltal , nY som heltal ) Deklarera Destruktor ( ) Deklarera Sub SetMotion ( Motion As Vector Pointer ) Deklarera Sub Move () Deklarera egenskap GetX som heltalsändtyp ' Ställ in standardvärden Konstruktor AObject ( nX Som heltal , nY Som heltal ) X = nX Y = nY Slutkonstruktor ' Avallokera minnesdestruktor AObject ( ) Ta bort Movement End Destructor ' Ställ in vektor Sub AObject . SetMotion ( Motion As Vector Pointer ) Movement = Motion End Sub ' Flyttar objektet längs dess vektor Sub AObject . Flytta () X += Rörelse -> W Y += Rörelse -> H End Sub ' Returnerar X-koordinaten som inte är tillgänglig utanför egenskapen AObject . GetX As Integer Return X End Property ' Faktisk start av programmet ' Skapa en instans av klassen vid koordinater (100, 100) Dim Player As AObject = Typ < AObject > ( 100 , 100 ) ' Skapa en vektor med initiala värden (-10, 5) och flytta positionerna för spelarobjektet . SetMotion ( New Vector ( -10 , 5 )) ' Flytta Player -objektet . Flytta () ' Hämta X-koordinaten och skriv ut till konsolen Print Player . GetX ' Destruktorn för "Player"-objektet anropas när objektet går utanför räckvidden ' Eftersom "Player" är en lokal variabel, anropas destructorn automatiskt 'Väntar på att någon knapp ska tryckas ned Sleep

Anteckningar

  1. 12 version 1.09.0 släppt . Hämtad 1 januari 2022. Arkiverad från originalet 1 januari 2022.
  2. Mer om FreeBASIC  (engelska)  (nedlänk) . freebasic.net. - FreeBASIC - ännu mer användbara funktioner. Hämtad 14 oktober 2015. Arkiverad från originalet 24 oktober 2015.

Se även

Källor

Länkar

ID
  • FBIde  - IDE för FreeBASIC
  • FbEdit  (inte tillgänglig länk)  - en annan IDE för FreeBASIC
  • WinFBE - Modern FreeBASIC IDE för Windows