FreeBASIC
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 7. října 2017; kontroly vyžadují
29 úprav .
FreeBASIC |
---|
|
Jazyková třída |
multiparadigma : imperativní , procedurální , strukturální , objektově orientované |
Typ provedení |
sestaven |
Objevil se v |
2004 |
Autor |
Vývojový tým FreeBASIC |
Vývojář |
Vývojový tým FreeBASIC |
Přípona souboru |
.basnebo.bi |
Uvolnění |
1.09.0 [1]
(1. ledna 2022 ) ( 2022-01-01 ) |
Typový systém |
přísný, statický |
Dialekty |
fb |
Byl ovlivněn |
QuickBASIC , C |
Licence |
GNU GPLv2+ , standardní knihovny licencované pod GNU LGPLv2+ |
webová stránka |
freebasic.net |
Plošina |
x86 , x86_64 , ARMv7 [d] a ARMv8 |
OS |
Linux , Windows , DOS , FreeBSD , MacOS (ne plně) |
Mediální soubory na Wikimedia Commons |
FreeBASIC je vysokoúrovňový programovací jazyk, který je syntaxí nejblíže QuickBASIC , stejně jako jeho kompilátor (FreeBASIC Compiler). Zpočátku byl kompilátor vyvinut jako bezplatná alternativa k Microsoft QuickBasic, ale brzy získal nové funkce a stal se výkonným vývojovým nástrojem. Přestože byly první verze kompilátoru napsány ve Visual Basicu , nyní se dokáže zkompilovat sám.
Kompilátor
Kompiluje kód QBasic a FreeBASIC do 32 a 64bitových spustitelných modulů
Win32 , DOS ( chráněný režim ) a Linuxu x86.
Sestavení a propojení se provádí pomocí GNU Binutils .
Kompilátor je distribuován za podmínek GNU GPL a standardní knihovna pod GNU LGPL .
Existuje několik vývojových prostředí , jako debugger můžete použít GNU Debugger (podporován je i gprof).
Jazyk
Přestože je kompilátor kompatibilní s QuickBASIC, do jazyka FreeBASIC bylo přidáno mnoho rozšíření a funkcí, které splňují moderní požadavky, standardy a kompatibilitu s knihovnami a API napsanými v C/ C++ . Počínaje verzí 0.17 si uživatel může vybrat tři režimy kompilace (volba -lang): režim kompatibility s QuickBASIC (qb), staré verze FreeBASIC (zastaralé) a standardní režim, který zahrnuje všechny nejnovější změny a funkce.
Nové funkce a rozšíření [2]
- Podpora Unicode .
- Mnoho vestavěných typů proměnných (Byte, UByte, Short, UShort, Integer, UInteger, LongInt, ULongInt, Single, Double, Boolean, String, ZString, WString).
- Uživatelsky definované datové typy (nekonečné vnořování, Union, typ pole (pole, funkce, bitová pole)).
- Jmenné prostory .
- Výčtový typ (Enum).
- Nové funkce při práci s poli (do velikosti 2 GB, Redim Preserve).
- Ukazatele (ukazatele na libovolné datové typy, neomezené nepřímé adresování).
- Přetížení funkcí a operátorů.
- Volitelné argumenty funkce .
- Inline assembler (instrukce assembleru ve zdrojovém kódu programu).
- Preprocesory .
- typedefs.
- Konstruktory a destruktory tříd.
- Vylepšená grafická knihovna.
Podpora knihoven funkcí programování aplikací
- Rozhraní budovy: GTK , FLTK , IUP , WINAPI atd.
- Regulární výrazy: PCRE
- IE a Microsoft Office Automation : Disphelper
- Zvuk: BASS , fbsound, FMOD atd.
- Grafika: Cairo , FreeType , Allegro , DevIL , FreeImage, DISLIN atd.
- Tvorba PDF: CD, LibHaru
- Databáze: mysql , sqlite , postgresql
- Síť: Curl atd.
- Archivy: Zlib , libzip atd.
Příklady programů
Ahoj světe!
Použití vestavěné knihovny FreeBASIC:
Vytisknout "Ahoj světe!"
Použití standardní knihovny C:
# Zahrnout "crt.bi"
klade ( ! "Ahoj světe!\n" )
Použití rozhraní Windows API :
# Zahrnout "windows.bi"
MessageBox ( Null , "Ahoj, světe!" , "Zpráva" , MB_OK )
Objektově orientované programování
' Vektorová třída
Type Vector W As Integer H As Integer Declare Constructor ( nW As Integer , nH As Integer ) End Type Constructor Vector ( nW As Integer , nH As Integer ) W = nW H = nH End Constructor ' Třída pro vytvoření Type AObject Private: X As Integer Y As Integer Movement As Vector Ukazatel Public: ' Externě viditelné metody, včetně konstruktoru a destruktoru Declare Constructor ( nX As Integer , nY As Integer ) Declare Destructor () Declare Sub SetMotion ( Motion As Vector Ukazatel ) Declare Sub Move () Declare Property GetX As Integer End Type ' Nastavit výchozí hodnoty Konstruktor AObject ( nX As Integer , nY As Integer ) X = nX Y = nY End Constructor ' Přidělit paměť Destruktor AObject () Smazat pohyb End Destructor ' Nastavit vektor Sub AObject . SetMotion ( Pohyb jako vektorový ukazatel ) Movement = Motion End Sub ' Přesune objekt podél jeho vektorového Sub AObject . Move () X += Movement -> W Y += Movement -> H End Sub ' Vrátí souřadnici X, která není přístupná zvenčí vlastnosti AObject . GetX As Integer Return X End Property ' Skutečný začátek programu ' Vytvořte instanci třídy na souřadnicích (100, 100) Dim Player As AObject = Type < AObject > ( 100 , 100 ) ' Vytvořte vektor s počátečními hodnotami (-10, 5) a posuňte pozice objektu Player . SetMotion ( Nový vektor ( -10 , 5 )) ' Přesuňte objekt Player . Move () ' Získejte souřadnici X a vytiskněte do konzole Print Player . GetX ' Destruktor objektu "Player" je volán, když objekt překročí rozsah ' Protože "Player" je lokální proměnná, je destruktor volán automaticky
'Čekání na stisknutí libovolné klávesy
Spánek
Poznámky
- ↑ 12 Vydána verze 1.09.0 . Získáno 1. ledna 2022. Archivováno z originálu 1. ledna 2022. (neurčitý)
- ↑ Více o FreeBASIC (anglicky) (downlink) . freebasic.net. - FreeBASIC - ještě užitečnější funkce. Získáno 14. října 2015. Archivováno z originálu 24. října 2015.
Viz také
Zdroje
Odkazy
IDE
- FBIde - IDE pro FreeBASIC
- FbEdit (nedostupný odkaz) - další IDE pro FreeBASIC
- WinFBE - Moderní FreeBASIC IDE pro Windows
Dialekty programovacího jazyka BASIC |
---|
Klasický |
|
---|
přechodný |
|
---|
procesní |
|
---|
Objekt |
|
---|
mobilní, pohybliví |
|
---|
Řídicí panel |
|
---|