thinBasic - thinBasic
| Fejlesztő | Eros Olmi |
|---|---|
| Stabil kiadás | v.1.9.15.0 / 2015. január 11 .
|
| Előzetes verzió | v1.10.4.0 / 2017. szeptember 29
|
| OS | ablakok |
| Engedély | Ingyenes / szabadalmaztatott |
| Weboldal | www |
| Nyelvjárások | |
| ALAPVETŐ | |
| Befolyásolta | |
| Powerbasic | |
A thinBasic egy BASIC- szerű számítógépes programozási nyelvi tolmács , központi magrendszer-architektúrával, sok speciális modullal körülvéve. Noha eredetileg elsősorban számítógépes automatizálásra tervezték, moduláris felépítésének köszönhetően széleskörű feladatokhoz használható.
tartalom
Főbb jellemzői
Szintaxis
Ahogy a neve is sugallja, ennek a nyelvnek a szintaxisára a legnagyobb hatást gyakorolta a BASIC nyelv. A hagyományos BASIC-kel ellentétben, amint az a 8 bites korszakból ismert, a thinBASIC néhány fontos pontban is különbözik.
Például megköveteli a programozótól, hogy deklarálja a változókat, és nem tartalmazza a hírhedt GOTO és GOSUB utasításokat. A szintaxis egyes aspektusait még a nem BASIC nyelvek is inspirálják, például a C / C ++ . Ennek köszönhetően a thinBASIC opcionálisan lehetővé teszi az implicit vonal folytatódást, az egyszerűsített összeadás, kivonás, szorzás és osztás operátort, rövidített változó deklarációt és inicializálást:
' Traditional syntax allowed in thinBASIC
DIM a AS INTEGER ' a is initialized to 0
a = 1 ' a now contains 1
a = a + 1 ' a now contains 2
' C/C++ inspired syntax allowed in thinBASIC
INTEGER a = 1 ' a is initialized to 1
a += 1 ' a now contains 2
' New syntax introduced in 1.9.10.0 allows defining type from string expression
STRING sType = "INTEGER"
DIM a LIKE sType
Az inspiráció másik forrása a BASIC modern verziói, például a Visual Basic vagy a PowerBASIC .
A ThinBASIC a fő áramlásszabályozó állításokat, például a SELECT CASE, IF ... THEN / ELSEIF / ELSE / END IF, hurkokat ( végtelen , feltételes , FOR , WHILE / WEND, DO / LOOP WHILE ..., DO / LOOP UNTIL ...), és ezenkívül nagyon erőfeszítéseket tesz a beépített funkciók széles skálájának biztosításával a számok összeroppantására és különösen a karakterlánc kezelésére.
Változók és adattípusok
A ThinBASIC számos numerikus és karakterlánc-adattípust támogat.
| Egész szám | Lebegőpont | Húr | Egyéb |
|---|---|---|---|
| BYTE | EGYETLEN | HÚR | VÁLTOZAT |
| SZÓ | KETTŐS | STRING * n | GUID |
| DWORD | VALUTA | ASCIIZ * n | BOOLEAN |
| EGÉSZ SZÁM | EXTEDED, EXT | UDT (felhasználó által meghatározott típus) | |
| HOSSZÚ | SZAKSZERVEZETEK | ||
| QUAD | IDispatch |
A fenti táblázatban említetteken kívül a programozó meghatározhat mutatókat, felhasználó által meghatározott típusokat és uniókat .
A thinBASIC felhasználó által definiált típusokhoz kapcsolódó különleges szolgáltatások:
- a tagok öröklésének lehetősége egy vagy több felhasználó által meghatározott típustól
- statikus tagok (tagok, amelyek értékét megosztják az adott UDT minden változója között)
- dinamikus húrok
A változók meghatározhatók globális, helyi vagy statikus hatókörben. A ThinBASIC legfeljebb három dimenziós tömböket támogat.
modulok
A nyelv alapvető funkcionalitását az úgynevezett Core modul biztosítja, amely alapértelmezés szerint betöltve van, és gondoskodik az elemzésről is.
A Core modul mellett a thinBASIC más modulokat is kínál, amelyek mindegyike egy bizonyos funkciós területet lefed, például:
- GUI létrehozása
- konzol kezelése
- fájlkezelés
- 3D grafika
- hálózatba
- ...
Minden modult egyetlen DLL képvisel, sajátos felépítéssel. Ez lehetővé teszi a modul számára, hogy ne csak a tipikus funkciókat és eljárásokat tartalmazza, hanem például állandókat és a felhasználó által definiált típusdefiníciókat is, amelyek a szkriptek számára azonnal elérhetők, fejlécfájl nélkül. Csak az szükséges, hogy kifejezetten megemlítsék a modul használatát a kódban - a fájlkezeléshez ez így nézne ki:
' This loads the module for use
Uses "File"
' Function File_Load comes from the module, it returns the content of passed file in form of String
String sBuffer = File_Load("C:\text.txt")
Funkciók és eljárások
A kód jobb strukturálása érdekében a thinBASIC biztosítja a funkciókat és az eljárásokat. Van egy speciális kezeléssel működő funkció, az úgynevezett TBMAIN, amelyet garantáltan először hajtanak végre. Ugyanazt a funkciót képviseli, mint a main () függvényt a C programozási nyelven, de használata opcionális.
A programozó meghatározhatja az egyedi funkciókat és eljárásokat (úgynevezett Subs); akár 32 paraméter is lehetnek. Mind a funkciókat, mind az eljárásokat használat előtt nem kell deklarálni. A paraméterek opcionálisként megjelölhetők, és alapértelmezett értékekre is inicializálhatók. Minden paramétert megadhatunk érték (alapértelmezett) vagy referencia alapján átadásra.
Uses "Console"
' Program body starts in TBMain function
Function TBMain()
MyFunction(10) ' This will print 10 20 30, because unused optional parameters #2 and #3 are initialized to 20 and 30
MyFunction(10, 3) ' This will print 10 3 30, because unused optional parameter #3 is initialized to 30
MyFunction(10, 3, 5) ' This will print 10 3 5, because we specify all the parameters, so the defaults are discarded
Console_WaitKey
End Function
' User defined function with optional parameters with default values
Function MyFunction( a As Number, Optional b As Number = 20, c As Number = 30)
Console_PrintL(a, b, c)
End Function
A függvényeket közvetlenül meg lehet hívni, mint ahogy a fenti felsorolásban, vagy úgy, hogy a nevüket futásidőben összeállítják.
Kötelező harmadik fél API-kat
A ThinBASIC támogatja a hívó funkciókat harmadik féltől származó DLL-ekből; A programozónak először be kell jelentenie őket a funkció eléréséhez.
Ennek a mechanizmusnak köszönhetően a thinBASIC lehetővé teszi olyan technológiák használatát, mint az OpenGL , OpenCL , XML , ODE és még sokan mások.
Kódszervezés
A ThinBASIC jelenleg nem támogatja a projekt fájlok formáját, de ösztönzi a kódok felosztását az egységek számára, több fájl kiterjesztés biztosításával, különféle felhasználás céljából:
- .tBasic - fő kód
- .tBasicI - tartalmaz egy fájlt, amely például a harmadik féltől származó DLL-ek funkcióinak deklarációját tartalmazza
- .tBasicU - kiegészítő egységeket tartalmazó kód egység
A fő kód hivatkozhat ezekre a fájlokra a #include irányelv használatával, amely helyettesítő karaktereket használhat:
#include "MyDLLWrapper.tBasicI"
#include "MyRoutines.tBasicU"
#include "dialog_*.tBasicU" ' This would include all files matching the wildcard dialog_*.tBasicU, when present
Function TBMain()
' -- Main code goes here, and can use functionality from #included files
End Function
testreszabás
A nyelv fokozhatjuk modul fejlesztéshez SDK többféle nyelven ( PowerBASIC , freebasic , C , MASM ).
Dokumentáció
A fejlesztői csapat nagy hangsúlyt fektet a nyelv dokumentálására és a tanulási forrásokra. Maga a nyelv dokumentálva van egy széles súgófájlban, és az alapértelmezett telepítés oktatóanyagot és sok példakódot is tartalmaz.
A ThinBasic Journal formájában és a programozási nyelv honlapján is megjelentek különféle cikkek a thinBASIC használatáról (lásd a külső linkeket).
Integrált fejlesztési környezet (IDE)
A ThinBASIC saját IDE-vel érkezik, az úgynevezett thinAir, az alapértelmezett telepítés során. Kínál:
- Testreszabható szintaxis kiemelés
- Kódsablonok
- Több forrásfájl egyszerre nyílik meg a lapokon
- Egy forrás több nézet használatával történő megtekintésének képessége
- Opcionális szkript-összeomlás
- A szkriptből független végrehajtható fájl létrehozása
- Hozzáférés a súgófájlhoz
A thinAir lehetővé teszi a hibakereső használatát is.
Ezt az összetevőt thinDebug-nak hívják, és megnézhető az alább hivatkozott képen.
Kódminták
Konzolprogram, amely megkérdezi a felhasználót a névről, majd üdvözli őt:
' Specifies program will use functions from console module
uses "Console"
' TBMain represents main body of the program
function TBMain()
' Creates variable to hold user name
local UserName as string
' Asks user for the name
Console_Print("What is your name?: ")
' Stores it to variable
UserName = Console_ReadLine
' If length of username is 0 then no name is specified, else program will say hello
if len(UserName) = 0 then
Console_PrintLine("No user name specified...")
else
Console_PrintLine("Hello " + UserName + "!")
end if
' Waits for any key from user before program ends
Console_WaitKey
end function
Érvek és ellenérvek
A ThinBASIC-t a Windows platformon fejlesztették ki , ezért hasznosítja a rendszer által biztosított erőforrásokat, például a nyilvántartást , a felhasználói felületet, a folyamatokkal való munkát, a COM , a DLL fájlokat . Annak ellenére, hogy értelmezzük, a thinBASIC rendszerint gyors végrehajtással rendelkezik. Amikor a nyelv értelmező jellege eléri a korlátokat, optimalizálást végezhet részleges JIT-összeállítás segítségével. A nyelv másik erőssége a különféle érdeklődési területeket lefedő parancsok széles köre, és a BASIC számára hagyományosan - a húrok kezelésére koncentrálva. A nyelv folyamatos fejlesztése és karbantartása alatt áll.
Az a tény, hogy a thinBASIC csak Windows rendszerre lett kifejlesztve, hátrányosnak tekinthető azok számára is, akik platformközi eszközöket keresnek. A végrehajtás sebessége optimalizálás nélkül alacsonyabb a fordító kimenetéhez képest , a nyelvi értelmező jellegének köszönhetően .
Kompatibilitás
A thinBASIC-t a Microsoft Windows XP Professional alatt fejlesztették ki a PowerBASIC használatával , és az Internet Explorer 5.50 vagy újabb verziójára van szükség .
- Nagyon tesztelt: Windows 2000 és Server , XP , Vista , Windows 7 , Server 2003 , Windows 8 , Windows 10
- Részben támogatott: Windows 98 SE , Me
- Nem támogatott: Windows 95
Irodalom
Külső linkek
- Hivatalos honlapján
- Közösségi fórum
- Online segítség
- Töltse le az oldalt
- thinAir, thinBasic hivatalos IDE
- thinDebug, thinBasic Debugger
- Grafikai útmutatók
- thinBASIC Adventure Builder
- PCOPY! 40. szám , 2007. november 16, A ThinBasicról, Eros Olmi.
- PCOPY! 50. szám , 2007. március 15, 3D-s grafika a ThinBASIC-ban, Petr Schreiber.
- ThinBasic Journal # 1 , 2008. július 5., PDF
- ThinBasic Journal # 2 , 2008. november 26, PDF
- MovieFX: Fotó és 3D objektum egyesítése , 2010. szeptember 1
- MovieFX: keverési alapú bokeh , 2011. január 1
- ThinBasic áttekintés az basics.mindteq.com oldalon