Fortgeschrittene objektorientierte Programmierung
LVA 185.211, VL 2.0, 2011 S
squeak.image, die das gesamte System in einem ausführbaren Zwischencode enthält. Die Datei
squeak.changesenhält alle Änderungen des Smalltalk-Codes und
SqueakV39.sources(wahrscheinlich mit einer anderen einkodierten Versionsnummer) den Source-Code des Grundsystems. Wenn Sie
squeaknicht in dem Verzeichnis aufrufen, in dem diese Dateien zu finden sind, müssen Sie die Dateien beim Aufruf explizit angeben.
Auf dem Übungsrechner ist Squeak vorinstalliert. Wenn Sie damit arbeiten wollen, müssen Sie sich aber die nötigen Dateien in Ihr Arbeitsverzeichnis kopieren:
cp /home/frp/Squeak4.2-10966.image squeak.image
cp /home/frp/Squeak4.2-10966.changes squeak.changes
ln -s /home/frp/SqueakV41.sources .
Squeak unterstützt zwei grundsätzlich verschiedene Subsysteme zur Programmierung grafischer Oberflächen: das klassische MVC
(Model-View-Controller, wie in Smalltalk-80) und das neuere Morphic
.
Sie können eines der beiden Subsysteme wählen.
Vermeiden Sie die gemischte Verwendung, bei der es zu unerwarteten Wechselwirkungen kommen kann.
In Smalltalk schreibt man (anders als in eher statischen Sprachen) in der Regel nicht einfach ein Programm für einen bestimmten Zweck, sondern man adaptiert und erweitert die vorhandene Umgebung. Ein Ziel der Aufgabe ist es, diesen Programmierstil kennenzulernen. Vor allem zur Programmierung der grafischen Oberfläche empfiehlt es sich, ein anderes Programm als Vorlage zu verwenden und dieses abzuändern. Dabei werden Sie lernen, sich im Smalltalksystem zurechtzufinden. Eine Schwierigkeit (vor allem in der GUI Programmierung) besteht darin, dass das API (Application Programming Interface) keine gute statische Dokumentation hat. Smalltalk-Programmierer lernen eher durch das Lesen und die Verwendung bestehenden Smalltalk-Codes als aus der Dokumentation. Aus diesem Grund sind Kommentare besonders wichtig, und jede Klasse und Methode, die Sie selber schreiben, soll durch Kommentare klar spezifiziert sein.
Für Squeak gibt es unter anderem die Zusatzpakete Etoys
und Scratch
, die die Erstellung mancher einfacher Spiele stark vereinfachen.
Zur erfolgreichen Lösung der Aufgabe ist es notwendig, dass Sie im eigentlichen Smalltalk-System Code schreiben bzw. adaptieren, also nicht einfach nur solche Zusatzpakete verwenden, um sich ein Spiel generieren zu lassen.
Die einfache Änderbarkeit des Systems kann sich auch negativ auswirken. Insbesondere wird es dadurch schwieriger, Programme von einem System auf ein anderes zu übertragen. Zur Verringerung dieses Problems wurden Versionsverwaltunssysteme wie z.B. Monticello eingeführt. Verwenden Sie ein solches System, um das von Ihnen entwickelte Spiel portabel zu gestalten.