Gambas is a full-featured object language and development environment built on a BASIC interpreter. It is released under the GNU General Public Licence.
Its architecture is largely inspired by Java. So Gambas is made up of:
- A compiler.
- An interpreter.
- An archiver.
- A scripter.
- A development environment.
- Many extension components.
The compiler is a fast little executable written in C:
- It compiles about 128000 non-void lines in a second on my own Athlon 2000. This speed allows a quick code/compile/test incremental development process.
- It does almost no optimization at all at the moment, relying on the interpreter to perform this task at runtime.
- It manages and compiles string translations by using the GNU gettext tools.
The interpreter is a small executable also written in C that is less than 180 Kb:
- It provides all of the native features of the language, by giving indirect access to almost all the POSIX glibc features.
- It loads classes on demand, optimizing the bytecode the first time it is run.
- Linking between classes is done entirely at runtime. This is done as late as possible. So even large executables start quickly.
Finally, the archiver is a program that creates a Gambas executable from a Gambas project directory.