FreeBASIC - FreeBASIC

FreeBASIC
Fblogo.gif
FreeBasic help.png
Paradygmat proceduralne , zorientowane obiektowo
Zaprojektowany przez Andre Victor
Deweloper Zespół programistów FreeBASIC
Po raz pierwszy pojawiły się 2004 ; 17 lat temu ( 2004 )
Wersja stabilna
1.08.1 / 9 lipca 2021 ; 3 miesiące temu ( 2021-07-09 )
Dyscyplina pisania Statyczny
OS MS-DOS , FreeBSD , Linux , Microsoft Windows
Licencja GNU GPLv2+ , Standardowe biblioteki na licencji GNU LGPLv2+
Strona internetowa www .freebasic .net
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 SCREENpolecenie. 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