| This article is a stub. You can help us improve thinBasic Wiki Complete by expanding it. |
thinBasic is modern interpreted language based on the BASIC syntax.
It comes with its own IDE, and it is capable of creating standalone EXE files.
About
The core of the language itself is developed using PowerBASIC compiler, by Eros Olmi and Roberto Bianchi.
Apart from the core, thinBASIC contains modules to add specific functionality, some of them were developed by community members:
User interface
- UI - user interface functions - dialogs, buttons, message pump
Console programming
- Console - console input and output
File handling
Communications
- CGI - Common Gateway Interface
- COMM - serial port communications
- FTP - File Transport Protocol
- INET - Internet communications
- LAN - provides functions to handle shared resources over a NT domain or Active directory forest
- SMTP - Simple Mail Transfer Protocol handling
- TCPUDP - functions to handle TCP and UDP protocols
Advanced data handling
- COM - Component Objects Model handling
- Crypto - cryptography related functions
- LL - linked lists
- Tokenizer - string tokenizing
- VBRegExp - casting regular expressions via MS VBS layer
- ZLIB - provides ZIP and UNZIP algorithms
- Dictionary - for managing hash tables / hash maps
Calculations
- Eval - run time expression evaluation
- Math - advanced mathematic functions
- STAT - Powerful statistics module
Date and time
- DT - date and time
Special
System administration
- OS - operating system functions like retrieving system directories
- PC - handling of recycle bin, restarts, …
- Registry - reading and writing informations to Windows registry
- SAPI - interface to speech API by MS
- WMI - provides functions to handle Windows Management Instrumentation technology ( serves to retrieve info about PC )
Multimedia
- TBASS - 2D/3D sound, based on BASS library
- TBEM - event manager, very useful for game programming
- TBGL - hardware accelerated 2D/3D graphics
- TBDI - handling of gaming devices - joystics, gamepads, wheels. ForceFeedback programming
Printing
- XPRINT - commands for printing text and graphics
Extending the language
Thanks to thinBASIC modular structure, language can be extended using creating compiled modules in wide variety of languages:
- PowerBASIC
- FreeBASIC
- IBASIC
- Borland C Compiler
- GCC
- MS C++
- MASM
You can also use any 3rd party industry standatd DLLs from within thinBASIC, using DECLARE statement.
Advantages of being interpreted
thinBASIC, as an interpreter, offers features which are hardly achieveable in compiled languages.
Here are few of them:
- immediate script start, no need to wait for compilation to try the program
- executing functions by name from string
- querying variable existence by name from string
- evaluate expressions on the fly
- …
Speed
Interpreting sometimes means also some speed penalty comparing to compiled language.
Speed of thinBASIC is very high, and it is continuously improved with almost each new release.
It is fast enough for wide range of applications, from console programs to GUI dialogs and even 3D games.
If you reach some performance limitation, you can still:
- ask developers for optimization
- write compiled module for it
- use machine code and assembler in thinBASIC
The last option is very interesting, you can store machine code or assembly as string and execute them anytime during the script run.
This is very flexible and can be used even to something like partial JIT compilation - you can determine processor the script is running on during initialization stage, and the execute the appropriate optimized assembly from string dynamically.
For most tasks you won't need such a tweaking, but it is good to know even speed problems can have solution.
Related Pages
Backlinks
These pages link back to this page. You may find them interesting.
Ask a Question
Ask a question about thinBasic.