| |
software:diy:andere:bob [25/07/2011 13:07] – Verweis ebert | software:diy:andere:bob [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 |
---|
{{ :software:diy:andere:kiezsoftlogo.png?200|:kiezsoft.png}} | {{ :software:diy:andere:kiezsoftlogo.png?200|:kiezsoft.png}} |
| |
| |
| |
Ab der Version 1.1d gibt es außerdem die Möglichkeit, ein in Bytecode übersetztes BOB+-Programm mit der Laufzeitumgebung zu einer eigenständig ausführbaren (EXE-) Datei zu binden, was besonders dann interessant ist, wenn man das Programm an Nutzer weitergeben will, die keine BOB+-Umgebung eingerichtet haben.\\ | Ab der Version 1.1d gibt es außerdem die Möglichkeit, ein in Bytecode übersetztes BOB+-Programm mit der Laufzeitumgebung zu einer eigenständig ausführbaren (EXE-) Datei zu binden, was besonders dann interessant ist, wenn man das Programm an Nutzer weitergeben will, die keine BOB+-Umgebung eingerichtet haben.\\ |
Version 1.1e ist ein "kleines" Update, das die Implementierung tieferer Klassenhierarchien in BOB+ vereinfacht.\\ | Version 1.1e ist ein "kleines" Update, das die Implementierung tieferer Klassenhierarchien in BOB+ vereinfacht.\\ |
| **Achtung:** Für die Version 1.1e gibt es nochmals eine Bugfix-Release, die einen Fehler bei der Konvertierung von float-Werten in Zeichenketten behebt. Sie ersetzt ab sofort (25.12.2013) die bisherige Version. Weitere Änderungen gibt es nicht, daher auch keine Änderungen an der Dokumentation. |
\\ | \\ |
Bezugsquelle: http://www.kiezsoft.de/ | Bezugsquelle: http://www.kiezsoft.de/ |
Im Downloadbereich von [[http://www.kiezsoft.de/|KiezSoft]] sind immer die neusten Versionen vom BOB+, samt Dokumentation und Quell-Codes erhältlich. Hier werden die Portfolio-relevanten Dateien der Version 1.1e aufgelistet.\\ | Im Downloadbereich von [[http://www.kiezsoft.de/|KiezSoft]] sind immer die neusten Versionen vom BOB+, samt Dokumentation und Quell-Codes erhältlich. Hier werden die Portfolio-relevanten Dateien der Version 1.1e aufgelistet.\\ |
Diese Version ist [[http://www.kiezsoft.de/download/bobplus/bob_plus_1_1e.zip|hier]] zum direkten Download verfügbar.\\ | Diese Version ist [[http://www.kiezsoft.de/download/bobplus/bob_plus_1_1e.zip|hier]] zum direkten Download verfügbar.\\ |
| |
| |
| |
==== Programme ==== | ==== Programme ==== |
^Name ^Beschreibung ^Größe ^Datum^ | ^Name ^Beschreibung ^Größe ^Datum^ |
|BP.EXE |Source-Code Interpreter/Compiler | 49371 Bytes| 25.07.11| | |BP.EXE |Source-Code Interpreter/Compiler | 49371 Bytes| 24.12.13| |
|BPR.EXE |Byte-Code Interpreter | 40240 Bytes| 25.07.11| | |BPR.EXE |Byte-Code Interpreter | 40240 Bytes| 24.12.13| |
|BPI.EXE |kleinere Nur-Integer-Version von BP.EXE | 35497 Bytes| 25.07.11| | |BPI.EXE |kleinere Nur-Integer-Version von BP.EXE | 35497 Bytes| 24.12.13| |
|BPRI.EXE |kleinere Nur-Integer-Version von BPR.EXE | 26582 Bytes| 25.07.11| | |BPRI.EXE |kleinere Nur-Integer-Version von BPR.EXE | 26582 Bytes| 24.12.13| |
|BPC.EXE |seperater Byte-Code Compiler | 33077 Bytes| 25.07.11| | |BPC.EXE |seperater Byte-Code Compiler | 33077 Bytes| 24.12.13| |
| |
BP.EXE und BPR.EXE sind die "eigentlichen" Programme, BP zum Ausführen und Kompilieren von Quelldateien (*.BP) und BPR zum Ausführen von kompiliertem Byte-Code. BPI und BPRI sind kleinere Varianten für Systeme mit wenig Ressourcen. Sie Verzichten auf die Unterstützung von Fließkomma-Zahlen und benötigen entsprechend weniger Speicherplatz.\\ | BP.EXE und BPR.EXE sind die "eigentlichen" Programme, BP zum Ausführen und Kompilieren von Quelldateien (*.BP) und BPR zum Ausführen von kompiliertem Byte-Code. BPI und BPRI sind kleinere Varianten für Systeme mit wenig Ressourcen. Sie Verzichten auf die Unterstützung von Fließkomma-Zahlen und benötigen entsprechend weniger Speicherplatz.\\ |
| 14 | ''%%() [] x++ x-- ->%%'' | | | 14 | ''%%() [] x++ x-- ->%%'' | |
Tabelle 9 Operatorhierarchie in BOB+ | Tabelle 9 Operatorhierarchie in BOB+ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
Innerhalb eines Programms ist den Schlüsselwörtern eine feste (zentrale) Bedeutung zugeordnet. Deshalb können keine benutzerdefinierten Bezeichner definiert werden die den Schlüsselwörtern entsprechen. | Innerhalb eines Programms ist den Schlüsselwörtern eine feste (zentrale) Bedeutung zugeordnet. Deshalb können keine benutzerdefinierten Bezeichner definiert werden die den Schlüsselwörtern entsprechen. |
| |
Die Schlüsselwörter in BOB/BOB+ sind im wesentlichen eine Teilmenge der aus C/C++ bekannten. Nachfolgende Tabelle gibt eine Übersicht. Die darin mit (*) gekennzeichneten Schlüsselwörter sind nur in BOB+ definiert, die mit (<sup>a</sup>) gekennzeichneten wurden mit BOB+ 1.1a eingeführt. | Die Schlüsselwörter in BOB/BOB+ sind im wesentlichen eine Teilmenge der aus C/C++ bekannten. Nachfolgende Tabelle gibt eine Übersicht. Die darin mit (*) gekennzeichneten Schlüsselwörter sind nur in BOB+ definiert, die mit (a) gekennzeichneten wurden mit BOB+ 1.1a eingeführt. |
| |
^Schlüsselwort ^Kategorie ^Bedeutung^ | ^Schlüsselwort ^Kategorie ^Bedeutung^ |
| new | OOP | Erzeugen einer Objektinstanz | | | new | OOP | Erzeugen einer Objektinstanz | |
| delete (*) | OOP | Zerstören einer Objektinstanz | | | delete (*) | OOP | Zerstören einer Objektinstanz | |
| TRON (<sup>a</sup>) | Debugging | Trace-Modus einschalten | | | TRON (a) | Debugging | Trace-Modus einschalten | |
| TROFF (<sup>a</sup>) | Debugging | Trace-Modus ausschalten | | | TROFF (a) | Debugging | Trace-Modus ausschalten | |
| TRSTEP (<sup>a</sup>) | Debugging | Trace-Einzelschritt-Modus einschalten | | | TRSTEP (a) | Debugging | Trace-Einzelschritt-Modus einschalten | |
Tabelle 10 Schlüsselwörter in BOB+\\ | Tabelle 10 Schlüsselwörter in BOB+\\ |
| |
| |
</code> | </code> |
| |
| |
| |
| |
{ | { |
print(“MyDerivedClass::writeInfo() called\n“); | print(“MyDerivedClass::writeInfo() called\n“); |
BC_writeInfo(); // call inherited writeInfo method | this->BC_writeInfo(); // call inherited writeInfo method |
} | } |
| |
</code> | </code> |
| |
| __Hinweise:__\\ |
| Der Aufruf der geerbten Vorfahrmethode muss über den //this//-Zeiger erfolgen (siehe obiges Beispiel). Andernfalls würde der Compiler einen „gewöhnlichen“ Funktionsaufruf generieren.\\ |
| Der Aufruf mit dem //BC_-//Präfix bezieht sich auf die Basisklasse derjenigen Klasse, von deren Typ das aktuelle Objekt (repräsentiert durch den //this//-Zeiger) ist. Dies kann bis zur Version 1.1d von BOB+ zu unerwünschten Rekursionen führen, falls das Konstrukt in einer mehrstufigen Klassenhierarchie benutzt wird.\\ |
| Ab Version 1.1e erkennt der Bytecode-Interpreter solche Situationen, so dass dieses Problem nicht mehr auftritt. Darüber hinaus wurde zusätzlich das Präfix //**DC_**// (für //defining class//) eingeführt, welches erzwingt, dass die entsprechende Methode genau auf der Klasse aufgerufen wird, in der sie definiert wurde. Es wird analog zum //BC_-//Präfix gebraucht. |
| |
==== 11.5 Partielle Klassen ==== | ==== 11.5 Partielle Klassen ==== |