FreeBASIC - FreeBASIC
Paradygmat | proceduralne , zorientowane obiektowo |
---|---|
Zaprojektowany przez | Andre Victor |
Deweloper | Zespół programistów FreeBASIC |
Po raz pierwszy pojawiły się | 2004 |
Wersja stabilna | 1.08.1 / 9 lipca 2021
|
Dyscyplina pisania | Statyczny |
OS | MS-DOS , FreeBSD , Linux , Microsoft Windows |
Licencja | GNU GPLv2+ , Standardowe biblioteki na licencji GNU LGPLv2+ |
Strona internetowa | www |
Wpływem | |
QuickBASIC , C |
FreeBASIC to wieloplatformowy, darmowy / open source ( GPL ) język programowania BASIC i kompilator dla Microsoft Windows , trybu chronionego MS-DOS ( rozszerzacz DOS ), Linux , FreeBSD i Xbox . Wersja Xbox nie jest już utrzymywana.
Według swojej oficjalnej strony internetowej, FreeBASIC zapewnia kompatybilność składni z programami pierwotnie napisanymi w Microsoft QuickBASIC (QB). Jednak w przeciwieństwie do QuickBASICa, FreeBASIC jest kompilatorem działającym tylko w wierszu poleceń , chyba że użytkownik ręcznie zainstaluje wybrane przez siebie zewnętrzne zintegrowane środowisko programistyczne (IDE). IDE stworzone specjalnie dla FreeBASIC to FBide i FbEdit, podczas gdy więcej opcji graficznych obejmuje WinFBE Suite i VisualFBEditor.
Funkcje kompilatora
Na swoim zapleczu FreeBASIC wykorzystuje GNU Binutils do tworzenia aplikacji konsoli i graficznego interfejsu użytkownika . FreeBASIC wspiera łączenie i tworzenie C statycznych i dynamicznych bibliotek i ma ograniczone wsparcie dla C ++ bibliotek. W rezultacie kod skompilowany w FreeBASIC może być ponownie wykorzystany w większości natywnych środowisk programistycznych.
Obsługiwane jest wstępne przetwarzanie w stylu C , w tym makra wielowierszowe , kompilacja warunkowa i dołączanie plików. Preprocesor ma również dostęp do informacji o symbolach i ustawień kompilatora, takich jak dialekt językowy .
Składnia
Początkowo FreeBASIC emulował składnię Microsoft QuickBASIC tak ściśle, jak to możliwe. Poza tym język kontynuował swoją ewolucję. W rezultacie FreeBASIC łączy kilka dialektów językowych dla maksymalnego poziomu kompatybilności z QuickBASIC i pełnego dostępu do nowoczesnych funkcji. Nowe funkcje obejmują obsługę pojęć, takich jak obiekty , przeciążanie operatorów , funkcji przeciążenia , nazw i innych.
Znaki nowej linii oznaczają zakończenie instrukcji programowania. Instrukcja programistyczna może być dystrybuowana w wielu kolejnych wierszach przy użyciu znaku kontynuacji wiersza podkreślenia (_), podczas gdy wiele instrukcji można napisać w jednym wierszu, oddzielając każdą instrukcję dwukropkiem (:).
Obsługiwane są komentarze blokowe , a także uwagi na końcu wiersza. Pełne komentarze wierszowe są tworzone z apostrofem '
, podczas gdy bloki komentowanego kodu zaczynają się /'
i kończą na '/
.
FreeBASIC nie rozróżnia wielkości liter.
Biblioteka grafik
FreeBASIC zapewnia wbudowaną, zgodną z QuickBASIC obsługę grafiki poprzez FBgfx, która jest automatycznie dołączana do programów wywołujących SCREEN
polecenie. Jego backend domyślnie obsługuje OpenGL w systemie Linux i DirectX w systemie Microsoft Windows . Ta abstrakcja sprawia, że kod graficzny FBgfx jest kompatybilny z wieloma platformami. Jednak FBgfx nie jest akcelerowany sprzętowo.
Użytkownicy zaznajomieni z zewnętrznymi narzędziami graficznymi, takimi jak OpenGL lub Windows API, mogą z nich korzystać bez ingerencji we wbudowaną bibliotekę graficzną.
Dialekty językowe
Wraz z ewolucją FreeBASICa wprowadzono zmiany, które wymagały złamania starszej składni. Aby kontynuować obsługę programów napisanych przy użyciu starszej składni, FreeBASIC obsługuje teraz następujące dialekty:
- Domyślny dialekt ( -lang fb jako argument wiersza poleceń ) obsługuje wszystkie nowe funkcje kompilatora i nie zezwala na archaiczną składnię.
- Dialekt FB-lite ( -lang fblite ) pozwala na korzystanie z większości nowych, niezorientowanych obiektowo funkcji, oprócz programowania w starszym stylu. Niejawne zmienne, przyrostki,
GOSUB
/RETURN
, etykiety numeryczne i inne cechy są dozwolone w tym dialekcie. - Dialekt QB ( -lang qb ) próbuje replikować zachowanie QuickBASICa i jest w stanie skompilować wiele programów QuickBASICa bez modyfikacji.
Przykładowy kod
Standardowe programy, takie jak „Hello, World!” Program jest wykonywany tak samo, jak w QuickBASICu.
Print "Hello, World!"
sleep:end 'Comment, prevents the program window from closing instantly
FreeBASIC dodaje do tego obsługę funkcji obiektowych, takich jak metody , konstruktory , dynamiczna alokacja pamięci , właściwości i alokacja tymczasowa.
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
W obu przypadkach język dobrze nadaje się do celów edukacyjnych.
Bibliografia
Zewnętrzne linki
- IDE
- WinFBE — nowoczesny edytor FreeBASIC dla systemu Windows
- fbide.freebasic.net — Zintegrowane środowisko programistyczne FBIDE dla freeBASIC
- FBEdit (bieżący) — edytor kodu źródłowego FBEdit dla FreeBASIC, wersja 1.0.7.6c
- Edytor kodu źródłowego FBEdit dla freeBASIC (nieaktualna wersja: 1.0.6.8) na SourceForge
- Pakiet WinFBE
- Edytor wizualnyFB