» Projekt
Ein Projekt ist ein Set von Dateien, die in einem Verzeichnis untergebracht sind.
Ein Projekt kann Quelldateien (Formulare, Klassen, Module, Web-Pages oder andere Daten-Dateien beliebigen Typs beinhalten):
- Die Projekt-Konfiguration ist in einer Datei ".project" gespeichert.
- Die Quelltexte befinden sich in einem Unterzeichnis ".src".
- Die Daten-Dateien sind im Projektverzeichnis oder in sichtbaren Unterverzeichnissen gespeichert.
|
» Compiler
Der Compiler ist ein Programm.
Der Programm-Name ist gbc3.
Der Compiler transformiert
- die Formulare,
- die Klassen und
- die Module
eines Projektes in binär-kompilierte Dateien, die vom Interpreter ver-standen und ausgeführt werden können.
|
» Archiver
Der Archiver ist ein Programm.
Der Programm-Name ist gba3.
Der Archiver transformiert ein Projekt - kompilierte Dateien eingeschlossen - in eine einzelne ausführbare Datei.
Hinweise:
Der Compiler erstellt Byte-Code-Dateien im Verzeichnis ".gambas" im Projektordner → Ausführbare Datei
|
» Kompilierte Dateien
Eine kompilierte Datei ist die binäre Repräsentation einer Klasse. Sie enthält alle für den Interpreter nützlichen Informationen: Funktionen im Byte-Code, Variablendefinitionen, Debugging-Informationen, Konstanten und weitere.
|
» Ausführbare Datei
Ein Gambas-Programm, Gambas executable oder ausführbare Gambas-Datei ist ein unkomprimiertes Archiv eines Projektes - kompilierte Dateien eingeschlossen.
Das Archiv ist als Skript markiert und enthält die Magic Line
#! /usr/bin/env gbr3,
so dass Linux das Skript ausführt, in dem es den angegebenen Interpreter im Hintergrund aufruft.
|
» Systemaufruf mmap
Wenn ein Projekt in ein Archiv kompiliert wurde, dann bildet der Interpreter die Datei in den Speicher ab, statt sie einzulesen.
Hinweise:
Der mmap-Syscall oder mmap-Systemaufruf wird benutzt, um eine Datei in den virtuellen Adressraum eines Prozesses einzubinden. So kann man auf Teile der Datei zugreifen, ohne sie komplett laden zu müssen. Das Betriebssystem kümmert sich um die Abbildung der virtuellen, linearen Adresse auf die Daten der Datei und lädt so nur das Nötigste.
|
» Klassen-Lader
Der Klassen-Lader lädt kompilierte Formulare, Klassen und Module in den Interpreter.
|
» Ausführungseinheit
Die Ausführungseinheit ist das Herz des Interpreters. Sie fertigt die einzelnen, vom Compiler generierten Byte-Code-Instruktionen ab und führt sie aus.
Hinweise:
Das bedeutet, dass alle nötigen Informationen für diese Instruktion, wie Operanden, Funktionssignaturen o.ä. aus dem Speicher und anderen Strukturen zu lesen.
Der Debugger ist ein Kommandozeilen-Programm, das im Interpreter liegt. Der Debugger gestattet der Ent-wicklungsumgebung, ein Gambas-Programm zu debuggen, in dem es Schritt für Schritt ausgeführt wird, der Stack beobachtet wird oder ein beliebiger Ausdruck des aktuellen Ausführungskontextes ausgewertet werden kann.
|
» Subroutinen
Die Subroutinen sind Interpreter-Funktionen, die mit Gambas-Funktionen wie zum Beispiel sin(), left() oder shl() oder mit Operatoren wie +, -, * oder & assoziiert sind.
|
» Komponenten-Schnittstelle
Die Komponenten-Schnittstelle ist ein Set von Routinen und Diensten, die von Komponenten genutzt werden, um mit dem Interpreter zu kommunizieren. Die Interna des Interpreters werden dadurch versteckt.
|
» Komponenten-Lader
Der Komponenten-Lader ist der Teil des Interpreters, der die Komponenten als dynamische Bibliotheken (.so oder .gambas) lädt, ihnen Zugriff auf die Komponenten-Schnittstelle gibt und ihre Schnittstelle den anderen Komponenten gegenüber offenbart.
|
» Interpreter
Der Interpreter ist ein Programm.>
Der Programm-Name ist gbx3.
Der Interpreter führt den Byte-Code vom Compiler generierter, kompilierter Dateien aus.
|
» Komponenten
Komponenten sind dynamische Bibliotheken, die zur Laufzeit vom Interpreter geladen werden. Sie können neue Klassen und Hook-Routinen wie eine Eventschleife, Shell-Argument-Parser o.ä. enthalten.
|
» Native Klassen
Die nativen Klassen sind Klassen, die benutzt werden können, ohne eine Komponente zu laden.
Sie sind im Interpreter integriert und können als Teil der Sprache Gambas angesehen werden.