PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:andere:bob

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

software:diy:andere:bob [25/07/2011 13:07] ebertsoftware:diy:andere:bob [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
 {{  :software:diy:andere:kiezsoftlogo.png?200|:kiezsoft.png}} {{  :software:diy:andere:kiezsoftlogo.png?200|:kiezsoft.png}}
 +
  
  
Zeile 14: Zeile 15:
 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/ 
Zeile 26: Zeile 28:
 ===== Lieferumfang ===== ===== Lieferumfang =====
  
-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.1.e 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.\\
 +
  
  
Zeile 41: Zeile 44:
 ==== Programme ==== ==== Programme ====
 ^Name ^Beschreibung ^Größe ^Datum^ ^Name ^Beschreibung ^Größe ^Datum^
-|BP.EXE |Source-Code Interpreter/Compiler |  49259 Bytes|  06.07.10+|BP.EXE |Source-Code Interpreter/Compiler |  49371 Bytes|  24.12.13
-|BPR.EXE  |Byte-Code Interpreter  |   40195 Bytes|   06.07.10+|BPR.EXE  |Byte-Code Interpreter  |   40240 Bytes|   24.12.13
-|BPI.EXE  |kleinere Nur-Integer-Version von BP.EXE  |   35466 Bytes|  06.07.10+|BPI.EXE  |kleinere Nur-Integer-Version von BP.EXE  |   35497 Bytes|  24.12.13
-|BPRI.EXE  |kleinere Nur-Integer-Version von BPR.EXE  |   26492 Bytes|   06.07.10+|BPRI.EXE  |kleinere Nur-Integer-Version von BPR.EXE  |   26582 Bytes|   24.12.13
-|BPC.EXE  |seperater Byte-Code Compiler  |   33068 Bytes|   06.07.10|+|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.\\
Zeile 123: Zeile 126:
 ==== Speichermedien ==== ==== Speichermedien ====
  
-Eine minimale Programmierumgebung mit BP.EXE und BPR.EXE benötigt 88024 Bytes, es ist also mindestens eine 128KB-Speicherkarte nötig. Mit ein paar DOS-Utilities und zusätzlichen Byte-Code-Dateien ist diese dann auch schon bald voll. Hat man kein größeres Speichermedium, muss Laufwerk C: oder gar ein zusätzliches Laufwerk B: zur Hilfe genommen werden.\\+Eine minimale Programmierumgebung (nur mit BP.EXEbenötigt etwa 50 KBytes, es ist also mindestens eine 64KB-Speicherkarte notwendig, 128KB zweckmäßig. Mit ein paar DOS-Utilities und zusätzlichen Byte-Code-Dateien ist diese dann auch schon bald voll. Hat man kein größeres Speichermedium, muss Laufwerk C: oder u.U. ein zusätzliches Laufwerk B: zur Hilfe genommen werden.\\
  
-Für fertige Programmpakete (anwenderspeziefische Software), bestehend aus nur BPR.EXE (41230 Bytes) und Byte-Code-Dateien, reicht schon eine 64KB-Karte.\\+Für fertige Programmpakete (anwenderspeziefische Software), bestehend aus nur BPR.EXE (ca. 40 KB) und Byte-Code-Dateien, reicht schon eine 64KB-Karte, ein mit BPRI zur EXE gebundenes Programm passt mit etwas Glück auch auf eine mit 32KB.\\
  
  
Zeile 142: Zeile 145:
  
 ===== BOB+ Handbuch  ===== ===== BOB+ Handbuch  =====
-© 2010 Ralf-Erik Ebert, Berlin\\+© 2011 Ralf-Erik Ebert, Berlin\\
  
 Die in diesem Text verwendeten Bezeichnungen von Hard- und Software-Produkten sowie Firmennamen sind in der Die in diesem Text verwendeten Bezeichnungen von Hard- und Software-Produkten sowie Firmennamen sind in der
Zeile 158: Zeile 161:
 BOB+ ist FREEWARE und wird als Open Source zur Verfügung gestellt.\\  BOB+ ist FREEWARE und wird als Open Source zur Verfügung gestellt.\\ 
 Die Software darf frei kopiert und weitergegeben sowie – direkt oder in modifizierter Form – in beliebigen kommerziellen oder nicht-kommerziellen Umgebungen eingesetzt werden, sofern die Urheberschaft an geeigneter Stelle erwähnt wird.  Die Software darf frei kopiert und weitergegeben sowie – direkt oder in modifizierter Form – in beliebigen kommerziellen oder nicht-kommerziellen Umgebungen eingesetzt werden, sofern die Urheberschaft an geeigneter Stelle erwähnt wird. 
 +
  
  
Zeile 191: Zeile 195:
  
 Mit Version 1.1d besteht die Möglichkeit, übersetzte Bytecode-Module an die Laufzeitumgebung zu binden und so eigenständig lauffähige Programme zu erzeugen – siehe Abschnitte [[software:diy:andere:bob#laufzeitumgebung_und_compiler|3.3]] und [[software:diy:andere:bob#erzeugen_ausführbarer_dateien|3.4]]. Mit Version 1.1d besteht die Möglichkeit, übersetzte Bytecode-Module an die Laufzeitumgebung zu binden und so eigenständig lauffähige Programme zu erzeugen – siehe Abschnitte [[software:diy:andere:bob#laufzeitumgebung_und_compiler|3.3]] und [[software:diy:andere:bob#erzeugen_ausführbarer_dateien|3.4]].
 +
 +Version 1.1e behebt ein Problem beim Aufruf geerbter virtueller Methoden in tiefen 
 +Klassenhierarchien (siehe Abschnitt [[software:diy:andere:bob#virtuelle_methoden|11.4]]).
  
 ===== 2. Vorwort zur Version 1.0 ===== ===== 2. Vorwort zur Version 1.0 =====
Zeile 1124: Zeile 1131:
 |  14  |  ''%%() [] x++ x-- ->%%''  | |  14  |  ''%%() [] x++ x-- ->%%''  |
 Tabelle 9 Operatorhierarchie in BOB+ Tabelle 9 Operatorhierarchie in BOB+
 +
 +
 +
 +
 +
 +
 +
  
  
Zeile 1132: Zeile 1146:
 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^
Zeile 1149: Zeile 1163:
 |  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+\\
  
Zeile 1726: Zeile 1740:
  
 </code> </code>
 +
 +
  
  
Zeile 1769: Zeile 1785:
  
    print(“MyDerivedClass::writeInfo() called\n“);    print(“MyDerivedClass::writeInfo() called\n“);
-   BC_writeInfo();    // call inherited writeInfo method+   this->BC_writeInfo();    // call inherited writeInfo method
 } }
  
Zeile 1782: Zeile 1798:
 </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 ====
software/diy/andere/bob.1311593652.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)