Inhaltsverzeichnis
5.0.1 Gambas-Programme – Übersicht
Eine Übersicht zu allen relevanten Programmen von Gambas wie zum Beispiel dem GB-Compiler oder dem GB-Interpreter liefern die folgenden zwei Aufrufe in einer Konsole:
hans@linux:~$ cd /usr/local/bin hans@linux:/usr/local/bin$ ls -l g* lrwxrwxrwx 1 root root 14 Okt 31 15:57 gambas3 -> gambas3.gambas -rwxr-xr-x 1 root root 3720658 Nov 19 19:44 gambas3.gambas -rwxr-xr-x 1 root root 116451 Nov 19 19:44 gba3 -rwxr-xr-x 1 root root 564804 Nov 19 19:44 gbc3 -rwxr-xr-x 1 root root 113171 Nov 19 19:44 gbi3 lrwxrwxrwx 1 root root 4 Nov 19 19:44 gbr3 -> gbx3 lrwxrwxrwx 1 root root 11 Okt 31 19:24 gbs3 -> gbs3.gambas -rwxr-xr-x 1 root root 25204 Nov 19 19:44 gbs3.gambas lrwxrwxrwx 1 root root 11 Okt 31 19:24 gbw3 -> gbs3.gambas -rwxr-xr-x 1 root root 1924420 Nov 19 19:44 gbx3 hans@linux:/usr/local/bin$
5.0.1.1 Programme und symbolische Links
- gbi3 → Gambas-Informer
- gambas3.gambas → Gambas-IDE
- gambas3 → <color red/white>Symbolischer Link auf gambas.gambas</color>
- gbc3 → Gambas-Compiler
- gba3 → Gambas-Archiver
- gbx3 → Gambas-Interpreter
- gbr3 → <color red/white>Symbolischer Link auf gbx3</color>
- gbs3.gambas → Gambas-Scripter
- gbs3 → <color red/white>Symbolischer Link auf gbs3.gambas</color>
- gbw3 → <color red/white>Symbolischer Link auf gbs3.gambas</color>
5.0.1.2 Gambas intern
Das Kapitel 'Gambas intern' widmet sich den Fragen: Wie arbeitet Gambas? oder Wie und in welcher Hierarchie wirken die einzelnen Programme Compiler, Archiver sowie Interpreter für ein Gambas-Projekt zusammen? Die folgende Grafik stellt diese Hierarchie nur statisch dar:
Abbildung 5.0.1.2.1: Gambas-Architektur → Projekt, Compiler, Archiver, Interpreter
Wenn Sie ein Programm in Gambas schreiben, dann erzeugen Sie in einem Projekt-Ordner
- eine oder mehrere Dateien *.form. Eine Formular-Datei enthält die Beschreibung der gewünschten Programmoberfläche des Formulars.
- eine oder mehrere Dateien *.class. Eine Klassen-Datei enthält den Programm-Code, den Sie selbst geschrieben haben. Existieren mehrere Dateien, dann hat eine den Status 'Startklasse'.
- eine (Projekt-)Datei .project, die Informationen zu Ihrem Projekt enthält.
So arbeitet Gambas intern:
- Zuerst werden die oben aufgeführten Dateien durch den Compiler 'gbc3' zu binärem P-Code übersetzt. Der P-Code wird im versteckten Ordner .gambas im Projekt-Verzeichnis in Datei abgespeichert (Dateinamen in Großbuchstaben). Es werden jede Klasse und jedes Modul in eine separate Datei kompiliert. In Anlehnung an http://de.wikipedia.org/wiki/P-Code versteht man unter P-Code den Befehlssatz einer Pseudo-Maschine (oder P-Maschine), also einer virtuellen CPU, die P-Code als Maschinensprache ausführt. Der P-Code war ein Computer- bzw. CPU-unabhängiger Code und war Teil der Entwicklungsumgebung UCSD-Pascal. Die Umsetzung in die Maschinensprache der CPU erfolgt durch den Interpreter der P-Maschine.
- Danach generiert das Programm Archiver (gba3) aus dem Inhalt der Datei .project und dem P-Code das ausführbare Programm, das in der Datei projektname.gambas gespeichert wird.
- Die .form-Dateien werden vom Compiler ebenfalls in P-Code übersetzt. Für die graphischen Komponenten besteht kein Unterschied, ob man eine .form-Datei in der IDE erstellt oder die Formulare über den Quelltext generiert.
In der IDE von Gambas gilt für ein Gambas-Projekt:
- Die Taste F7 startet den Compiler 'gbc3'
- Die Taste F5 startet nacheinander den Compiler, nach erfolgreichem Kompilieren den Archiver 'gba3' und anschließend den Interpreter 'gbx3'. Das Programm wird gestartet.
- Die Tastenkombination CTRL+ALT+M („make executable“) startet den Compiler und dann den Archiver und generiert eine ausführbare Datei projektname.gambas.
Für eine Konsole kommen Sie so zum erfolgreichen Programm-Start:
hans@linux:~$ gbc3 -ag pfad_zum_projekt_ordner OK hans@linux:~$ gba3 pfad_zum_projekt_ordner hans@linux:~$ gbx3 pfad_zum_projekt_ordner
Ein kompiliertes Gambas-Archiv kann nur mit dem Programm 'gbr3' ausgeführt werden, denn 'gbr3' ist zwar eine symbolische Verknüpfung auf gbx3, verhält sich jedoch anders, wenn es als 'gbx3' aufgerufen wird.

