Home
1.2 Der Hamster-Simulator
Contents
1. Die Konstante bezeichnet dabei eine leere Liste Als Funktor bei einem Listen Term wird das Zeichen verwendet Zu einer besseren Lesbarkeit und Handhabung gibt es in PROLOG f r die Liste eine besondere Schreibweise Die vorherige Liste kann dabei wie folgt geschrieben werden a b c Die Elemente der Liste werden voneinander mit Komma getrennt und in eckige Klammern eingeschlossen Nachfolgend werden einige Beispiele zur Definition von Listen angegeben Mit dem vordefinierten Operator op 3 ist es aber auch m glich alternative Notationen wie zweistellige Infix oder einstellige Pr fix Postfix Operatoren zu definieren In diesem Fall k nnen die Klammern auch weggelassen werden 71 L1 a b c d e f oder L1 a b c d l e E L2 hamster liebt koerner koerner sind braun L3 eine mauer ist vorne hinten rechts links 8 2 1 2 Aufbau des Programms Ein PROLOG Programm besteht aus einer Menge von Fakten Regeln und Abfragen Jedes dieser Elemente kann durch eine spezielle Form einer PROLOG Klausel ausgedr ckt werden Die allgemeine Form einer PROLOG Klausel hat die folgende Struktur Klauselkopf Klauselk rper Eine PROLOG Klausel in genau dieser Form mit sowohl einem Klauselkopf als auch einem Klauselk rper wird als Regel bezeichnet Bei einer Klausel ohne Klauselk rper handelt es sich um ein Fakt Sollte hingegen der Klauselkopf fehlen so handelt es sich bei einer sol
2. Button vierter Button von rechts den Zustand des Territoriums wieder herstellen der vor Ausf hren des Programms bestand Der Schieberegler ganz rechts in der Men leiste dient zur Steuerung der Geschwindigkeit der Programmausf hrung Je weiter Sie den Knopf nach links verschieben umso langsamer erledigt der Hamster seine Arbeit Je weiter Sie ihn nach rechts verschieben umso schneller flitzt der Hamster durchs Territorium 22 Die Bedienelemente zum Steuern der Programmausf hrung Ausf hren Button Pause Button Stopp Button und Geschwindigkeitsregler finden Sie brigens auch im Editor Fenster sowie im Debugger Men des Editor Fensters Welche Sie nutzen ist Ihnen berlassen 3 5 Debuggen eines Hamster Programms Debuggen eines Programms eines Programms bedeutet dass Sie bei der Ausf hrung eines Programms zus tzliche M glichkeiten zur Steuerung besitzen und sich den Zustand des Programms welche Zeile des Sourcecodes wird gerade ausgef hrt welche Werte besitzen aktuell die Variablen in bestimmten Situationen anzeigen lassen k nnen Den Debugger k nnen Sie im Editor Fenster mit dem Debugger aktivieren Button dritter Button der Men leiste von rechts aktivieren und wieder deaktivieren Wenn er aktiviert ist erscheint der Button etwas dunkler Wenn der Debugger aktiviert ist und Sie ber den Ausf hren Button ein Hamster Programm starten ffnen sich oberhalb des Eingabebereichs im
3. ffnet sich das Consolen Fenster und die Zeichenkette hallo wird in das Fenster geschrieben Im Standard Modus runlocally false ndert sich nichts Ausgabeanweisungen werden weiterhin in die Dateien sysout txt bzw syserr txt geschrieben 5 1 6 language ber die Property language kann die Sprache des Hamster Simulators eingestellt werden Befindet sich in der Datei hamster properties eine Zeile mit dem Text language de ist als Sprache Deutsch eingestellt Das ist der Standard Befindet sich in der Datei hamster properties eine Zeile mit dem Text language en ist als Sprache Englisch eingestellt Weitere Infos zu englischen Hamster Programmen siehe auch in Abschnitt 6 5 1 7 indent ber die Property indent kann eingestellt werden ob im Editor beim Zeilenumbruch die Cursorposition in der neuen Zeile anhand der ersten beschriebenen Spalte der vorhergehenden Zeile ausgerichtet wird Befindet sich in der Datei hamster properties eine Zeile mit dem Text indent true ist die Spaltenausrichtung eingeschaltet Das ist der Standard Befindet sich in der Datei hamster properties eine Zeile mit dem Text indent false ist die Spaltenausrichtung ausgeschaltet ber das Menu Extras kann der indent Modus auch w hrend der Programmausf hrung noch ge ndert werden 53 5 1 8 color ber die Property color kann die Farbe des Standard Hamsters ge ndert werden Voreingestellt ist BLAU M glich
4. 3 Nachdem Sie den Hamster Simulator gestartet haben ffnen sich auf dem Bildschirm zwei neue Fenster das Editor Fenster siehe auch Abbildung 1 und das Simulation Fenster siehe auch Abbildung 2 Sie erkennen die beiden Fenster an ihren Titeln Editor bzw Simulation Im Gro en und Ganzen kann man sagen Im Editor Fenster entwickeln Sie Hamster Programme und im Simulation Fenster f hren Sie Hamster Programme aus Ihr erstes Hamster Programm Editor Datei Bearbeiten Compiler Debugger Fenster Extras Hilfe Se sg gt 4 D BK C Programme gt C beispielprogramm meinErstesProgramm void main gt meinErstesProgra o CH prolog D PrologBeispiele B SammelHamster while vornFrei vorl gt sammeln rechtsUm gt C scheme SchemeBeispiele oO A Oh Gm BUNE void kehrt linksUn linksUn w 10 SEI 12 13 void rechtsim 14 kehrt 15 linksUn I6 17 Spalte Abbildung 1 Editor Fenster B Simulation am Ra A e EX aa uk vornFrei true vor vornFrei true vor vornFrei true vor vornFrei false linksUm linksUm linksUm 22M Sek TI Abbildung 2 Simulation Fenster 17 Im Folgenden wird im Detail beschrieben was Sie machen m ssen um Ihr erstes Hamster Programm zu schreiben und auszuf hren Insgesamt m ssen k nnen f nf Stationen
5. 3 4 Ausf hren eines Hamster Programms Nach dem erfolgreichen Kompilieren ist es endlich soweit Wir k nnen den Hamster bei der Arbeit beobachten Macht er wirklich das was wir ihm durch unser Programm beigebracht haben Zum Ausf hren eines Programms begeben wir uns wieder in das Simulation Fenster Zum Steuern der Programmausf hrung dienen dort die drei rechten Buttons rechts in der Toolbar Durch Anklicken des Ausf hren Buttons dritter Button von rechts starten wir das Programm Ausgef hrt wird brigens automatisch das Programm das sich im Editor Fenster gerade im Eingabebereich befindet Wenn Sie bis hierhin alles richtig gemacht haben sollte der Hamster loslaufen und wie im Programm beschrieben zwei K rner einsammeln Herzlichen Gl ckwunsch zu Ihrem ersten Hamster Programm Wollen Sie die Programmausf hrung anhalten k nnen Sie dies durch Anklicken des Pause Buttons zweiter Button von rechts erreichen Der Hamster stoppt so lange bis Sie wieder den Ausf hren Button anklicken Dann f hrt der Hamster mit seiner Arbeit fort Das Programm vorzeitig komplett abbrechen k nnen Sie mit Hilfe des Stopp Buttons erster Button von rechts Rechts neben dem Hamster Territorium werden brigens w hrend der Programmausf hrung jeweils die Hamster Befehle angezeigt die der Hamster gerade ausf hrt Wenn Sie ein Programm mehrmals hintereinander im gleichen Territorium ausf hren k nnen Sie mit dem R cksetzen
6. 5 Properties ber so genannte Properties k nnen sie bestimmte Voreinstellungen des Simulators berlagern 5 1 Vorhandene Properties Die Properties werden in einer Datei namens hamster properties definiert die sich in dem Ordner befinden muss wo sich auch die Dateien hamstersimulator jar bzw namstersimulator bat befinden Momentan sind folgende Properties m glich 5 1 1 security Befindet sich in der Datei hamster properties eine Zeile mit dem folgenden Text security false wird der so genannte Security Manager ausgeschaltet Das bedeutet Hamster Programme d rfen auf die Festplatte zugreifen und d rfen Dateien lesen und in Dateien schreiben Aber Vorsicht sollten sie diese Option gesetzt haben empfehle ich Ihnen dringend keine fremden Hamster Programme auszuf hren Sind diese bspw b swillig geschrieben k nnten sie Ihnen prinzipiell die gesamte Festplatte l schen Standardm ig steht in der Property Datei security true Durch Setzen der security Property auf false ist es bspw m glich aus Hamster Programmen heraus Sounds abzuspielen Im folgenden Hamster Programm wird ein Sound aus der angegebenen Datei abgespielt w hrend der Hamster zur Mauer l uft void main try java io File f new java io File C fanfare wav java applet AudioClip audioClip java applet Applet newAudioClip f toURL audioClip play catch Exception exc while vornFrei vor 5 1 2 work
7. Grundfunktionen A eier een 26 4 1 1 EEN 26 SE tee rel 27 GA Et E 27 1 14 MONU eee tee 27 E e te 28 RR ele e EE EE 28 2 1 7 Eingabeleld ren Brennen 29 2 1 8 VER elle E 29 4 1 9 Dateiauswahl Dial60960 ee e EE AEN EES 30 471 10 REEL EE 31 4 2 Verwalten und Editieren von Hamster Programmen 31 4 2 1 Schreiben eines neuen Hamster Programmes nn 33 4 2 2 ndern eines existierenden Hamster Programmes s s ssiseseieeieieiereereerereern 34 4 2 3 L schen eines existierenden Hamster ProgrammsS 4 gt 35 4 2 4 Umbenennen eines existierenden Hamster ProgrammsS gt 35 4 2 5 Verschieben eines existierenden Hamster Programms in einen anderen Ordner 35 4 2 6 Kopieren eines existierenden Hamster Programms in einen anderen Ordner 35 4 2 7 Drucken eines Hamster Programme 36 4 2 8 Schlie en eines ge ffneten Hamster Programmes 44 36 4 2 9 WEditier ele nn EE 36 4 2 10 Verwaltung von Orden 37 4 3 Compilieren von Hamster Programmen 37 43t eege UE BEE 38 4 3 2 Beseiliden von Fehlern ein 38 4 3 3 Setzen des MR EE 39 AA Verwalten und Gestalten von Hamsier Tertorten nennen 39 4 4 1 Ver ndern der Gr e des Hamster TerritoriUms nsseeeeeeesseneeerneeeeeeenne 40 4 4 2 Platzieren des Standard Hamsters im Hamster Territorium 40 4 4 3 Setzen der Blickrichtung des Groandard Hamsters 40 4 4 4 Abfragen und Festlegen der K rneranzahl im Maul des Standard Hamsters 40 4 4 5 Platzieren v
8. Modellierung der Basisbefehle des Java Hansters EK d d d i d i d Modellierung des Hamsterterritoriuns d d territorium lt anzahlReihen gt lt anzahlSpalten gt dynamic territorium _ _ ao Modellierung eines Korns im Hamsterterritorium ao ao korn lt reihe gt lt spalte gt lt anzahl gt dynamic korn _ _ _ Modellierung der Mauern im Hamsterterritorium mauer lt reihe gt lt spalte gt dynamic mauer _ _ EK Modellierung des Hamsters selbst d d hamster lt reihe gt lt spalte gt lt blickrichtung gt lt anzahlKoernerImMaul gt dynamic hamster _ _ _ _ d i d d d i d i d un tandard Aktionen des Hamsters d d E vor territorium TReihen TSpalten hamster Reihe Spalte Blickrichtung AnzahlKoerner nextPos Reihe Spalte Blickrichtung ReiheNeu SpalteNeu ReiheNeu gt 0 ReiheNeu lt TReihen SpalteNeu gt 0 SpalteNeu lt TSpalten not mauer ReiheNeu SpalteNeu Aktualisiere die Prolog Datenbank retract hamster Reihe Spalte Blickrichtung AnzahlKoerner assert hamster ReiheNeu SpalteNeu Blickrichtung AnzahlKoerner Rufe vor beim Hamster auf und warte solange dies ausgef hrt wird write prologhamster vor ttyflush read Return call Return vor Rufe vor beim Hamster auf und warte solange dies ausgef hrt wird write
9. die Datei music md gegen eine andere MIDI Datei aus Die weiteren Elemente der Toolbar kennen Sie bereits aus dem 2D Simulationsfenster Sie dienen zum Starten Pausieren und Stoppen der Ausf hrung eines Hamster Programms sowie zum Einstellen der Ausf hrungsgeschwindigkeit 49 4 7 2 Steuerung mittels der Maus Alternativ zur Benutzung der Toolbar Buttons kann die 3D Ansicht auch auf intuitive Weise mit der Maus manipuliert werden So kann das Zoomen ber das Mausrad vorgenommen werden Bei gedr ckter linker Maustaste kann die Hamsterwelt mit der Maus verschoben werden Bei gedr ckter rechter Maustaste wird die Welt mit Seitw rtsbewegungen rotiert und mit Aufw rtsbewegungen geneigt 4 8 Dateiverwaltung auf Betriebssystemebene Die von Ihnen entwickelten Hamster Programme sowie die Hamster Territorien werden auf Betriebssystemebene in Dateien abgespeichert Diese Dateien finden Sie im so genannten Workspace Ordner Dies ist standardm ig ein Ordner namens Programme in demselben Ordner in dem auch die Dateien zum Starten des Hamster Simulators hamstersimulator jar bzw hamstersimulator bat liegen Uber ein entsprechendes Property kann auch ein anderer Workspace Ordner als der Ordner Programme verwendet werden siehe Abschnitt 5 Funktionen zum Verwalten dieser Dateien Umbenennen Kopieren Verschieben neuer Ordner k nnen Sie auch auf Betriebssystemebene durchf hren Sie sollten dies jedoch nicht tun wenn der
10. http de wikipedia org wiki Scheme e http www htdp org How to design programs e http www ccs neu edu home dorai t y schemel t y scheme Z H 1 html Teach Yourself Scheme in Fixnum Days e http www cs hut fi Studies T 93 210 schemetutorial schemetutorial html ausf hrliches Scheme Tutorial e http cs wwc edu KU PR Scheme html kurzes Scheme Tutorial e http www scheme com tspl2d index html The Scheme Programming Language e http www pu informatik uni tuebingen de pfg 200 1 scheme schintro v14 schin tro_toc html An Introduction to Scheme and its Implementation 7 3 GchemeHamster Programme Um Gcheme Hamster Programme zu entwickeln und zu testen m ssen Sie die Property scheme auf true gesetzt haben siehe Abschnitt 60 5 Dies ist standardm ig der Fall Anschlie end m ssen Sie eine neue Datei ffnen Men Datei Item Neu und in der Auswahl Scheme Programm ausw hlen Es erscheint eine neue Datei mit folgendem Grundger st define start Territorium Die zweite Zeile ersetzen Sie dabei durch entsprechende Scheme Anweisungen Bspw l sst das folgende Scheme Programm den Hamster zwei Schritte vorlaufen define start Territorium vor vor Territorium Anschlie end m ssen Sie die neue Datei abspeichern Nach dem Speichern k nnen Sie Ihr Scheme Programm durch Dr cken des Start Buttons ausf hren Kompilieren ist nicht notwendig Scheme Programme werden int
11. pfen aller verf gbarer Backtracking Punkte schl gt die Bearbeitung der Abfrage fehl und das PROLOG System liefert ein false zur ck W hrend der Bearbeitung eines PROLOG Programms f hrt das System bei der Suche nach einer L sung eine Reihe von Unifizierungs und Backtrackingschritten durch 8 2 2 3 Backtracking Das Prinzip des Backtracking Verfahrens ist wie bereits umrissen relativ einfach W hrend der Abarbeitung der einzelnen Schritte im Resolutionsalgorithmus werden einzelne Punkte mit alternativen L sungen gemerkt Beim n chsten Vorkommen eines Fehlers bei der Unifikation kehrt das Programm zum letzten gew hlten Auswahl Punkt zur ck Die alten Variablenbelegungen werden wieder aufgehoben und die n chste L sung falls vorhanden gew hlt 74 Beispiel tier hamster tier tiger tier fuchs tier antilope tier maus jagt tiger antilope jagt fuchs maus jagt fuchs hamster raeuber X tier X jagt X _ Die obere Definition eines R ubers ist sehr allgemein gehalten Jedes Tier das jagen kann ist ein R uber Bei der Anfrage an das PROLOG System raeuber Tier w rde das System wie folgt vorgehen Zur Erf llung des Pr dikats raeuber X ist es notwendig die Pr dikate tier X und jagt X s do5 zu erf llen Das erste im Programm vorkommende tier Pr dikat ist das tier hamster Daher wird nachfolgend gepr ft ob das Pr dikat jagt hamster _ unifizierbar ist Da dieses offen
12. prologhanster vor read Return call Return false 82 nextPos Reihe Spalte NORD ReiheNeu Spalte ReiheNeu is Reihe 1 nextPos Reihe Spalte WEST Reihe SpalteNeu SpalteNeu is Spalte 1 nextPos Reihe Spalte SUED ReiheNeu Spalte ReiheNeu is Reihe 1 nextPos Reihe Spalte OST Reihe SpalteNeu SpalteNeu is Spalte 1 vornFrei hamster Reihe Spalte Blickrichtung _ territorium TReihen TSpalten nextPos Reihe Spalte Blickrichtung ReiheNeu SpalteNeu ReiheNeu gt 0 ReiheNeu lt TReihen SpalteNeu gt 0 SpalteNeu lt TSpalten not mauer ReiheNeu SpalteNeu write prologhamster vornFrei ttyflush read Return call Return linksUm hamster Reihe Spalte Blickrichtung AnzahlKoerner dreheHanster Blickrichtung BlickrichtungNeu Aktualisiere die Datenbank retract hamster Reihe Spalte Blickrichtung AnzahlKoerner assert hamster Reihe Spalte BlickrichtungNeu AnzahlKoerner Rufe linksUm beim Hamster auf write prologhamster linksUm tty flush read Return call Return L dreheHamster NORD WEST dreheHamster WEST SUED dreheHamster SUED OST dreheHamster OST NORD rechtsUm linksUm linksUm linksUm nimm hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaul korn Reihe Spalte AnzahlKoerner An
13. AllroundHamster 7 DJ beispielprogramm TA aA gt MeinErstesHamstt 0 E paul For gt SammelHamster nt SammelndeHams Teehtsuni vor vori nimm voit rechtsUm linksUn linksUn linksUn Zeile 11 Spalte 17 m Problem Zeie Datei expected voit rechtsUm 11 MeinErstesHam invalid method declaration r linksUm 13 MeinErstesHam invalid method declaration r linksUm 14 MeinErstesHam lass or interface expected 16 MeinErstesHamn _ class or interface exnected 6 Mein esHam Abbildung 16 Fehlermeldungen 38 Achtung Die Interpretation von Fehlermeldungen die der Compiler ausgibt ist nicht trivial Die Meldungen sind nicht immer besonders pr zise und oft auch irref hrend H ufig gibt der Compiler mehrere Fehlermeldungen aus obwohl es sich nur um einen einzelnen Fehler handelt Deshalb beherzigen Sie gerade am Anfang folgende Hinweise Arbeiten Sie die Fehlermeldungen immer von oben nach unten ab Wenn der Compiler eine gro e Menge von Fehlermeldungen liefert korrigieren Sie zun chst nur eine Teilmenge und speichern und kompilieren Sie danach erneut Bauen Sie gerade als Programmieranf nger auch mal absichtlich Fehler in Ihre Programme ein und schauen Sie sich dann die Fehlermeldungen des Compilers an 4 3 3 Setzen des CLASSPATH Als zweites Men item enth lt das Kompilieren Men ein Men item mit der Bezeichnung CLASSPATH s
14. Betriebssystemebene nennen 50 8 2 EE 51 5 1 Vorhandene len aan 51 GE Is We Mie EE 51 e EE ele 51 3 13 elle 52 9 141 EE 52 9 13 ie EE 53 5 16 language EE 53 SL 116 1 SAISEBENSERNENENSTHNENENBRENEREDETENENENEREUENEERERNEHENELENESESEHEEHENEERNENENSTHUCHEERLENENENSTANENENGER 53 ENEE 54 ae E EE 54 SVO NEGO ran 55 Sokid REENEN ee ee eet 55 KEE 10 EE 55 9 2 Oe Ee in e LE 55 6 Englischspr achiger Hamster niise me nur 57 Z SSCHEME un aa a a a Ee 59 7 1 Funktionale Programmiersprachen 59 7 2 Die Programmiersprache Gcheme n 60 7 3 e Ee Eu Gd lgl EE 60 7 4 Gr ndlagen und Eiere 61 9 7 4 1 Territoriumsliste nennen 61 7 4 3 Gcheme Hamster Programme AE 63 7 9 Beispiele ra see ee 64 7 6 Scheme K nsble nen tee een 65 7 7 Implementierungshinweise EEN 66 elle EE 67 E En e EE 67 8 1 Logikbasierte Programmierumng nnn 67 8 2 Die Programmiersprache Prolog nn nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 68 8 2 1 SO IMARVONIPFOO ee ee 69 8 2 2 Operationale Semantik Zinsen ee 73 LR WEE 75 E De eu 79 823 Kontrollfluss treien teens 80 8 2 6 Informationen zu Prolog im WWW 81 8 3 Prol g Hamster Modellea sa 22H ren area 82 8 4 Prolog Hamster Programme nnn 85 E Gelee Een une 85 8 6 Eet EE EES 86 Neck le E Fe ee E A E T E EE A E E EA E A 88 1 Einleitung Programmieranf nger haben h ufig Schwierigkeiten damit dass sie beim Programmieren ihre normale Gedankenwelt verlassen und in eher technisch orientierten Kategorien den
15. Bildschirm das Benutzungshandbuch des Hamster Simulators Im Prinzip ist dieser sehr einfach zu bedienen Wenn Sie bereits etwas Erfahrung mit Computern haben sollte Ihnen seine Handhabung keine Probleme bereiten Trotzdem gibt es sicher Situationen in denen Sie nicht weiterkommen oder in denen Ihnen nicht bewusst ist welche M glichkeiten Sie berhaupt haben F r genau diese F lle ist dieses Benutzungshandbuch konzipiert Nach dieser Einleitung wird im zweiten Abschnitt erl utert wie Sie den Simulator auf ihrem Rechner installieren und starten Im dritten Abschnitt wird kurz und knapp erkl rt was Sie tun m ssen um Ihr erstes Hamster Programm zu schreiben und ausf hren zu lassen Abschnitt 4 behandelt dann im Detail die einzelnen Funktionen des Simulators ber Properties k nnen Sie bestimmte Eigenschaften des Hamster Simulators beeinflussen Au erdem k nnen Sie ber Properties die Eigenschaft der Mehrbenutzer F higkeit des Hamster Simulators steuern Mehr dazu in Abschnitt 5 Seit Version 2 4 ist der Hamster Simulator auch in die englisch sprachige Welt integriert worden Das betrifft nicht nur die Benutzungsoberfl che sondern auch das Modell selbst Werfen Sie dazu einen Blick in Abschnitt 6 Standardm ig werden Sie mit dem Hamster Simulator Java Programme entwickeln Seit Version 2 3 ist es jedoch auch m glich Programme in der funktionalen Programmiersprache Scheme zu entwickeln und zu testen Wie Sie dies tun k nnen erf
16. Editor Fenster zwei neue Bereiche Im linken Bereich wird angezeigt in welcher Funktion sich der Programmablauf gerade befindet Im rechten Bereich werden die Variablen und ihre aktuellen Werte dargestellt Au erdem wird im Eingabebereich durch einen blauen Balken gekennzeichnet welche Zeile des Programms ausgef hrt wird Bei aktiviertem Debugger haben Sie die M glichkeit das Programm schrittweise d h Anweisung f r Anweisung auszuf hren Das k nnen Sie mit Hilfe der beiden rechten Buttons in der Men leiste des Editor Fensters Der linke Button hei t Schritt hinein Button der rechte Schritt ber Button Normalerweise bewirken die beiden Button das gleiche die n chste Anweisung und nur die wird ausgef hrt Wenn die n chste auszuf hrende Anweisung jedoch der Aufruf einer von Ihnen definierten Prozedur oder Funktion ist bewirkt der Schritt Ober Button die Ausf hrung der kompletten Prozedur ohne zwischendurch anzuhalten w hrend durch das Anklicken des Schritt hinein Buttons zur ersten Anweisung des entsprechenden Funktionsrumpfs verzweigt wird und Sie dadurch die M glichkeit haben auch die Ausf hrung der Funktion schrittweise zu t tigen Sie k nnen bei aktiviertem Debugger zun chst auch einfach das Programm durch Anklicken des Ausf hren Buttons starten und beobachten Wenn Sie dann den Pause Button dr cken haben Sie anschlie end ebenfalls die M glichkeit der schritt weisen Ausf hrung
17. Hamster Simulator gestartet ist da es ansonsten zu Inkonsistenzen kommen kann Dateien mit Sourcecode von Hamster Programmen haben die Endung ham Dateien mit Hamster Territorien haben die Endung ter Ansonsten gibt es noch Dateien mit der Endung java und class Diese werden beim Kompilieren generiert und enthalten Java Sourcecode java bzw ausf hrbaren Java Bytecode class Sie k nnen Hamster Programme auch mit anderen Editoren entwickeln Dabei gilt es allerdings folgendes zu beachten e Objektorientierten Hamster Programmen muss folgender Kommentar unmittelbar vorangestellt werden object oriented program e Separaten Klassen und Interfaces muss der Kommentar class unmittelbar vorangestellt werden e Imperativen Hamster Programmen sollte muss aber nicht folgender Kommentar unmittelbar vorangestellt werden imperative program Die Kommentare kennzeichnen den Typ der Programme Sie werden vom Editor des Hamster Simulators automatisch generiert Weiterhin k nnen Sie in Hamster Programmen auch die Java Anweisungen System out println und System err println benutzen Die Ausgaben erfolgen bei Aus f hrung des Programms in Dateien namens sysout txt bzw syserr txt in dem Ordner in dem auch die Datei hamstersimulator jar liegt Im Workspace Ordner befindet sich eine Datei namens settings properties in der der aktuelle CLASSPATH siehe Abschnitt 4 3 3 gespeichert wird 50
18. Setzen Funktion Sie erkennen dies daran dass der Hintergrund des Buttons nun dunkler erscheint Solange die Funktion aktiviert ist k nnen Sie nun durch Anklicken einer Kachel auf dieser Kachel eine Mauer platzieren Dabei gilt Es nicht nicht m glich auf einer Kachel auf der sich aktuell ein Hamster befindet eine Mauer zu platzieren Liegen auf einer angeklickten Kachel K rner werden diese gel scht Es ist auch m glich auf mehreren Kacheln gleichzeitig Mauern zu platzieren Klicken Sie dazu die Maus auf einer der Kacheln und ziehen Sie den Mauscursor bei gedr ckter Maustaste ber die anderen Kacheln Auf allen Kacheln werden unmittelbar Mauern gesetzt Eine Deaktivierung der Mauer Setzen Funktion ist durch Anklicken des Hamster versetzen K rner setzen oder Kachel l schen Buttons und der damit verbundenen Aktivierung der entsprechenden Funktion m glich 4 4 7 L schen von Kacheln des Hamster Territorium Um einzelne Kacheln des Hamster Territoriums zu l schen d h gegebenenfalls vorhandene K rner bzw Mauern zu entfernen m ssen Sie zun chst im Simulation Fenster in der Toolbar den Kachel l schen Button neunter Toolbar Button von links anklicken Dadurch aktivieren Sie die Kachel L schen Funktion Sie erkennen dies daran dass der Hintergrund des Buttons nun dunkler erscheint Solange die Funktion aktiviert ist k nnen Sie nun durch Anklicken einer Kachel diese Kachel l schen 41 Es ist
19. ab der aktuellen Position Den Pause Zustand mit der M glichkeit der schrittweisen Ausf hrung eines Programms k nnen Sie jederzeit wieder durch Anklicken des Ausf hren Buttons beenden Das Programm l uft dann selbstst ndig wieder weiter 23 3 6 Zusammenfassung Herzlichen Gl ckwunsch Wenn Sie bis hierhin gekommen sind haben Sie Ihr erstes Hamster Programm erstellt und ausgef hrt Sie sehen die Bedienung des Hamster Simulators ist gar nicht so kompliziert Der Hamster Simulator bietet jedoch noch weitere M glichkeiten Diese k nnen Sie nun durch einfaches Ausprobieren selbst erkunden oder im n chsten Abschnitt nachlesen 24 4 Bedienung des Hamster Simulators Im letzten Abschnitt haben Sie eine kurze Einf hrung in die Funktionalit t des Hamster Simulators erhalten In diesem Abschnitt werden die einzelnen Funktionen des Simulators nun im Detail vorgestellt Dabei wird sich nat rlich einiges auch wiederholen Wenn Sie den Hamster Simulator starten ffnen sich zwei Fenster Das eine hei t Editor Fenster das andere Simulation Fenster Sie erkennen die beiden Fenster an ihren Titeln Editor bzw Simulation Abbildung 3 skizziert die einzelnen Komponenten des Editor Fensters Abbildung 4 die des Simulation Fensters Men leiste Toolbar Editor TEAR Datei Bearbeiten Compiler Debugger Fenster Extras Hilfe Baal alla pg ac Bt Ci Programme d meinErstesProgramm o CH beispielprogramm gt meinEr
20. auch wenn diese vorhanden sind angenommen Die Variablenbelegungen vor dem Cut k nnen nicht mehr aufgehoben werden Das in dem oberen Abschnitt aufgef hrte Beispiel kann mit dem Cut Pr dikat wie folgt erg nzt werden if_then_else P O R P S Cl 80 if_then_else P O R R 7 C2 Diese Implementierung ist deutlich effizienter Beim Fehlschlagen des Pr dikats Q analog wie im oberen Beispiel findet in diesem Fall kein Backtracking mehr statt Die Antwort auf die Abfrage w rde dabei false sein Im zweiten Fall wenn das Pr dikat P in der Klausel C1 fehlschl gt wird direkt mit der Bearbeitung von R in der Klausel C2 fortgesetzt Bei dieser Implementierung finden also keine zus tzlichen Berechnungen statt Bei der Verwendung von Cuts unterscheidet man zwischen den gr nen und roten Cuts Die gr nen Cuts sind optional und k nnen auch weggelassen werden ohne dass die Bedeutung des Programms in irgendeiner Weise ver ndert wird Die gr nen Cuts beschleunigen die Abarbeitung des Programms in dem bestimmte Teile des Suchbaums die keine L sungen enthalten abgeschnitten werden Die roten Cuts sind ein essentieller Bestandteil der Programmlogik und k nnen daher nicht weggelassen werden Bei den roten Cuts werden auch solche Teile des Suchbaums beschnitten die potentielle L sungen enthalten Bei der Programmierung in PROLOG gilt es daher die Verwendung der roten Cuts zu vermeiden 8 2 5 2 Negation Das Systempr dikat not 1
21. bietet dem Anwender die M glichkeit zum Auszudr cken der Negationen von Aussagen Das not Pr dikat darf aber dabei keineswegs als logische Verneinung einer Aussage aufgefasst werden Die einzig korrekte Interpretation der Aussage not X ist die folgende not X ist erf llt wenn X fehlschl gt In PROLOG geht man von der Annahme einer geschlossenen Welt Das hei t alles was sich nicht aus dem Programm herleiten l sst ist automatisch nicht wahr Doch in der realen Welt trifft diese Annahme nicht immer zu Bei der bertragung der Probleme der realen Welt in PROLOG hat man also darauf zu achten dass bei der Programmentwicklung keine logischen Denkfehler einschleichen und die Benutzung des not Pr dikats im Sinne der Aufgabenstellung stets zum korrekten Ergebnis f hrt 8 2 6 Informationen zu Prolog im WWW Learn Prolog now http www learnprolognow org Prolog Programming A first course http computing unn ac uk staff cgpb4 prologbook Prolog Beispielsammlung http www csupomona edu irfisher www prolog_tutorial contents html Prolog Tutorial http www ifi uzh ch reg courses logische_programmierung ws03 documents Prolog Tut orial pdf 81 8 3 Prolog Hamster Modell Der Zustand und die Befehle der Hamster Welt werden im Prolog Hamster Modell durch entsprechende Fakten und Regeln in einer vordefinierten und automatisch zur Verf gung stehenden Datenbasis repr sentiert Diese hat folgende Gestalt d i o ao
22. der 3D Ansicht und Steuerbefehle f r den Ablauf der Simulation Alternativ zur Nutzung dieser Buttons kann auch die Maus zur Manipulation der 3D Ansicht verwendet werden 4 7 1 Steuerung mittels der Toolbar Mit den ersten beiden Buttons k nnen Sie in das Territorium hein und hinauszoomen Die n chsten beiden Buttons erlauben das Drehen der Hamsterwelt Gedreht wird dabei immer um den Punkt auf den die Kamera schaut Der Neigungswinkel der Kamera l sst sich mit dem n chsten Buttonpaar einstellen Hier ist keine v llig freie Bewegung m glich so l sst sich die Welt von einem recht flachen Winkel bis hin zur Vogelperspektive betrachten ber 90 Grad l sst sich die Kamera nicht neigen die Szene kann also nicht auf dem Kopf stehen Mit dem siebten Button der Toolbar kann die Ansicht in eine Ich Perspektive umgeschaltet werden In dieser Ansicht wird die Welt aus der Ansicht des Standard Hamsters gezeigt und man folgt diesem auf seinem Weg durch das Territorium Durch wiederholtes Dr cken des Buttons wird die Ansicht wieder gewechselt ber den achten Button k nnen die Gitterlinien entfernt bzw eingeblendet werden Mit dem neunten Button kann ein Sound aktiviert bzw deaktiviert werden der ert nt wenn der Hamster l uft Auch der zehnte Button dient dem Aktivieren bzw Deaktivieren von Sound der fortw hrend in einer Schleife abgespielt wird Wenn Sie einen anderen Sound w nschen wechseln Sie einfach im Unterverzeichnis data
23. die Benutzung der angebotenen Steuerungsbuttons oder auch durch das direkte Eintippen der Befehle die Suche der Alternativ L sungen initiiert werden Die prim re Aufgabe der PrologKonsole liegt aber an der F higkeit den Programmierer beim Debugging Prozess der PROLOG Programme zu unterst tzen und diesen Prozess zu visualisieren Sie k nnen die Prolog Konsole ber den entsprechenden Men lItem im Men Fenster ffnen 85 8 6 Beispiele Das folgende Prolog Hamster Beispielprogramm zeigt eine L sung f r das Problem dass der Hamster ein mauerloses Territorium komplett leeren sprich alle K rner fressen soll Weitere Beispielprogramme finden Sie in den Beispielprogrammen des Hamster Simulators je Eintrittspunkt des Programms main leereTerritorium zus tzliche n tzliche Befehle kehrt linksUm linksUm rechtsUm kehrt linksUm laufeZurWand vornFrei vor laufeZurWand i laufeZurWand laufelnEcke laufezurWand linksUm laufezurWand linksUm SS zus tzliche Testbefehl ohne Seiteneffekte linksFrei linksUm vornFrei rechtsUm l linksFrei rechtsUm fail rechtsFrei rechtsUm vornFrei 86 linksUm l rechtsFrei linksUm fail K rner sammeln nimmAlle kornDa nimm nimmAlle l nimmAlle SS laufen und sammeln graseReiheAb nimmAlle vornFrei vor graseReiheAb l gr
24. durchlaufen werden e Gestaltung eines Hamster Territoriums e Eingeben eines Hamster Programms e Compilieren eines Hamster Programms e Ausf hren eines Hamster Programms e Debuggen eines Hamster Programms 3 1 Gestaltung eines Hamster Territoriums Als erstes wollen wir ein Hamster Territorium aufbauen in dem unser Programm ablaufen soll Das geschieht im Simulation Fenster siehe auch Abbildung 2 In der Mitte sehen wir das Hamster Territorium dar ber eine so genannte Toolbar mit graphischen Buttons Fahren Sie einfach mal mit der Maus ber die einzelnen Buttons der Toolbar dann erscheint jeweils ein Tooltipp der beschreibt wozu dieser Button dient Zun chst werden wir die Gr e des Territoriums anpassen Klicken Sie dazu auf den Button Neues Territorium erster Button von links Es erscheint eine Dialogbox in der Sie die gew nschte Anzahl an Reihen und Spalten eingeben k nnen Um die dort erscheinenden Werte jeweils 10 ndern zu k nnen klicken Sie mit der Maus auf das entsprechende Eingabefeld Anschlie end k nnen Sie den Wert mit der Tastatur eingeben Nach der Eingabe der Werte klicken Sie bitte auf den OK Button Die Dialogbox schliesst sich und das Territorium erscheint in der angegebenen Gr e Achtung Wenn Sie die Gr e des Territoriums ndern wird das Territorium automatisch komplett geleert Nun werden wir den Hamster der immer im Territorium sitzt im objektorientierten Hamster Modell wird er S
25. f r Programmieranf nger entworfen wurde BlueJ richtet sich also an dieselbe Zielgruppe wie das Java Hamster Modell Mit der Entwicklungsumgebung einher geht eine didaktische Methode zur Einf hrung in die objektorientierte Programmierung Ihr zugrunde liegt ein iteratives Vorgehen bei der Einf hrung der Konzepte der objektorientierten Programmierung das unter dem Motto 10 Objekte zuerst steht Eine der gro en St rken von BlueJ ist die M glichkeit des interaktiven Erzeugens von Objekten und des interaktiven Umgangs mit diesen Eine weitere St rke ist die Visualisierung der Programmstruktur durch Diagramme Dagegen liegt die besondere St rke des Java Hamster Modells insbesondere in Verbindung mit dem Hamster Simulator in der Visualisierung der Ausf hrung eines Programms Der Programmierer sieht von Anfang an in einer ansprechenden Umgebung was seine Programme bewirken Was ab Version 2 2 des Hamster Simulators nun m glich ist ist seine Integration in BlueJ Hamster Programme k nnen mit den Werkzeugen und M glichkeiten die BlueJ bietet entwickelt und im Hamster Simulator ausgef hrt werden Konkret bedeutet das an Vorteilen f r Programmieranf nger BlueJ visualisiert die Programmstruktur und erlaubt insbesondere die interaktive Erzeugung von Hamstern und den interaktiven Aufruf von Hamster Befehlen und der Hamster Simulator visualisiert die Programmausf hrung d h der Programmierer sieht unmittelbar in einer graphischen Umgeb
26. lassen wird nur der letzte tats chlich ausgef hrt Sowohl der Eingabe als auch der Ausgabebereich der Konsole unterst tzen Copy und Paste und zwar ber die Tastatureingaben Strg c bzw Strg v Bei Ausf hrung der Scheme Funktion read in der Scheme Konsole erscheint eine Dialogbox in der Sie die Eingabe t tigen m ssen Wenn Sie ber die Konsole Funktionsdefinitionen ausf hren geben Sie diese dem kompletten System bekannt D h Sie k nnen die entsprechenden Funktionen danach auch in Scheme Programmen nutzen ohne sie erneut definieren zu m ssen Umgekehrt gilt dies genauso Bei Beendigung des Hamster Simulators gehen jedoch alle entsprechenden Definitionen verloren 7 7 Implementierungshinweise F r die Implementierung des Scheme Hamster Modells wurde JScheme benutzt siehe http jscheme sourceforge net jscheme mainwebpage html 66 8 Prolog Ab der Version 2 6 deckt der Hamster Simulator nach der imperativen objektorientierten und parallelen Programmierung mit Java und der funktionalen Programmierung mit Scheme mit der logikbasierten Programmierung mit Prolog alle wichtigen Programmierparadigmen ab Herzlichen Dank an Andreas Sch fer der im Rahmen einer Studienarbeit die Integration von Prolog in den Hamster Simulator vorgenommen hat 8 0 Voraussetzungen F r den Einsatz von PROLOG innerhalb des Hamster Simulators muss auf dem Zielsystem ein SW IProlog Interpreter installiert werden Die daf
27. syntaktische Zusammensetzung der PROLOG Programme Im ersten Teil erfolgt die Vorstellung der grundlegenden Datentypen der Sprache Im zweiten Part wird der generelle Aufbau eines PROLOG Programms beschrieben 8 2 1 1 Datentypen von Prolog Wie auch jede andere Programmiersprache hat auch PROLOG zur Beschreibung und Charakterisierung von Informationen primitive Datentypen Im Vergleich zu Java gibt es aber in PROLOG nur schwache Typisierung Der endg ltige Datentyp zu einem Ausdruck wird in PROLOG erst zur Laufzeit dynamisch ermittelt und zugewiesen Nachfolgend werden die wichtigsten Datentypen von PROLOG beschrieben Term Ein Term ist der grundlegende syntaktische Baustein eines PROLOG Programms Bei den Termen unterscheidet man zwischen einfachen und komplexen Termen Einfache Terme k nnen entweder konstant Atome und Zahlen oder auch variabel Variablen sein Komplexe Terme im Weiteren auch Strukturen genannt entstehen durch Zusammensetzung mehrerer einfacher Terme und haben einen besonderen Aufbau 69 Einfache Terme Zu den einfachen Termen geh ren Atome Zahlen und Variablen Die Atome sind beliebige Zeichenfolgen die mit einem Kleinbuchstaben anfangen Diese setzten sich dabei zusammen aus Kleinbuchstaben Ziffern oder dem Uhnterstreichungszeichen Weiterhin k nnen auch Atome gebildet werden indem beliebige in Anf hrungszeichen eingeschlossene Zeichenfolgen angegeben werden In diesem Fall k nnen auch Sonderzeichen und G
28. von links anklicken wird das Programm das gerade im Eingabebereich des Editor Fensters sichtbar ist kompiliert Wenn Sie zuvor Anderungen am Sourcecode vorgenommen und noch nicht abgespeichert haben werden Sie durch eine Dialogbox gefragt ob das Programm vor dem Kompilieren gespeichert werden soll oder nicht Wenn Ihr Programm korrekt ist erscheint nach ein paar Sekunden eine Dialogbox mit einer entsprechenden Meldung Es wurde ein neues ausf hrbares Programm erzeugt 4 3 2 Beseitigen von Fehlern Wenn Ihr Programm Fehler enth lt ffnet sich unterhalb des Eingabebereichs ein neuer Bereich der die Fehlermeldungen des Compilers anzeigt siehe Abbildung 16 Es wurde kein neues ausf hrbares Programm erzeugt Jede Fehlermeldung erscheint in einer eigenen Zeile Jede Zeile enth lt den wahrscheinlichen Fehler die Anweisung die den Fehler enth lt die Zeile der Anweisung im Programm und den Dateinamen Wenn Sie eine Fehlermeldung anklicken wird die entsprechende Anweisung im Eingabebereich blau markiert und der Mauscursor an die entsprechende Stelle gesetzt Sie m ssen nun die einzelnen Fehler beseitigen und dann erneut speichern und kompilieren bis Ihr Programm keine Fehler mehr enth lt Der Fehlermeldungsbereich schlie t sich dann automatisch wieder Datei Bearbeiten Kompilieren Debugger Info Slaag Klala ale DIr EI Programme MeinErstesHamsterProgramm 2
29. wird versucht alle Teilziele einer Klausel nacheinander von links nach rechts abzuarbeiten und zu erf llen F r jedes der Teilziele wird versucht dieses mit den in dem Programm befindlichen Klauseln zu unifizieren Die Programm Datenbank wird dabei in einer festen Reihenfolge von oben nach unten durchlaufen Die Reihenfolge der einzelnen Klauseln im Programm spielt dabei also eine wichtige Rolle Beim erfolgreichen Uhnifizieren eines Teilziels der Zielklausel mit einem Faktum wird nachfolgend mit der Bearbeitung des n chsten Teilziels fortgesetzt Bei der Unifizierung eines Teilziels mit einer Regel Klausel wird der gesamte Inhalt des Regelk rpers der Regel an die Stelle des Teilziels geschrieben Dabei f hrt PROLOG mit der Bearbeitung des ersten Teilziels der gerade ausgew hlten Regel fort Im Falle eines Fehlers sofern kein einziger passender Eintrag in der PROLOG Datenbank f r das aktuelle Ziel gefunden werden konnte legt das PROLOG System ein Backtracking Schritt ein Beim Backtracking geht das Programm zum letzten bekannten Abzweigungspunkt an dem weitere Auswahlm glichkeiten bei der Unifikation der Klauseln bestanden Dabei werden die alten Variablenbelegungen aufgehoben und die n chste Alternativ L sung gew hlt Ist es m glich alle Teilziele der Zielklausel auf diese Weise zu erf llen so liefert das PROLOG System die ermittelten Variablenbelegungen zur ck und beantwortet die Anfrage mit einem true Andernfalls nach dem Ersch
30. 43 Nach dem Starten eines Hamster Programms werden die Hamster im Hamster Territorium aktiv und tun das was das Programm ihnen befiehlt W hrend des Ausf hrens eines Hamster Programms wird der Eingabebereich im Editor Fenster ausgegraut d h es k nnen w hrend der Ausf hrung eines Programms keine Anderungen am Sourcecode durchgef hrt werden Wenn Sie vor dem Anklicken des Ausf hren Buttons die Datei im Eingabebereich ge ndert aber noch nicht gespeichert und oder kompiliert haben werden Sie ber entsprechende Dialogboxen gefragt ob das Abspeichern und Kompilieren noch vor dem Ausf hren erledigt werden soll oder nicht 4 5 2 Stoppen eines Hamster Programms Die Ausf hrung eines Hamster Programms kann durch Anklicken des Stopp Buttons erster Toolbar Button des Simulation Fensters von rechts jederzeit abgebrochen werden 4 5 3 Pausieren eines Hamster Programms M chten Sie ein in Ausf hrung befindliches Programm anhalten k nnen Sie dies durch Anklicken des Pause Buttons zweiter Toolbar Button des Simulation Fensters von rechts tun Wenn Sie anschlie end auf den Ausf hren Button klicken wird das Programm fortgef hrt 4 5 4 W hrend der Ausf hrung eines Hamster Programms Der Standard Hamster wird immer in blau dargestellt Wenn Sie in objektorientierten Programmen weitere Hamster erzeugen erhalten diese zur Unterscheidung andere Farben Der erste erzeugte Hamster ist rot der zweite gr n der dr
31. 6 3 Schrittweise Programmausf hrung Mit den beiden Buttons Schritt hinein zweiter Toolbar Button von rechts und Schritt ber erster Toolbar Button von rechts ist es m glich ein Programm schrittweise d h Anweisung f r Anweisung auszuf hren Immer wenn Sie einen der beiden Buttons anklicken wird die n chste Anweisung und nur die ausgef hrt Die beiden Buttons unterscheiden sich genau dann wenn die n chste Anweisung ein Prozedur Funktions oder Methodenaufruf ist Das Anklicken des Schritt hinein Buttons bewirkt in diesem Fall dass in den entsprechenden Rumpf der Prozedur Funktion oder Methode verzweigt wird so dass man die dortigen Anweisungen ebenfalls Schritt f r Schritt weiter ausf hren kann Beim Anklicken des Schritt Ober Buttons wird die komplette Prozedur Funktion oder Methode in einem Schritt ausgef hrt Beachten Sie bitte dass man die Ausf hrung eines Programms auch mit dem Schritt hinein Button starten kann Ist der Debugger aktiviert f hrt ein Anklicken des Schritt hinein Buttons dazu dass in die main Funktion gesprungen wird Von hieraus k nnen Sie dann ein komplettes Programm schrittweise ausf hren Sie k nnen die Schritt hinein und Schritt ber Buttons auch nutzen wenn der Debugger aktiv ist und die Programmausf hrung durch Anklicken des Pause Buttons angehalten wurde Wenn Sie also die Programmausf hrung erst ab einer bestimmten Stelle beob
32. Dietrich Boles Daniel Jasper Hamster Simulator Version 2 6 2 Benutzungshandbuch 26 11 2009 Inhaltsverzeichnis 1 N 4 lat Di E E E TE A E 6 1 1 Das Hamster Modell ne 6 1 2 Der Hamsier SiMklaler ussummnnak LE 7 1 3 nderungen in Version 2 6 gegen ber 25 7 1 4 nderungen in Version 2 5 gegen ber 24 8 1 5 nderungen in Version 2 4 gegen ber 33 8 1 6 nderungen in Version 2 3 gegen ber 33 9 1 7 nderungen in Version 2 2 gegen ber 371 9 1 7 1 Erstellen von Hamster Programmen unabh ngig vom Editor des Simulators 10 1 7 2 Hamstern Bi DT EE 10 1 8 nderungen in Version 2 1 gegen ber 20 11 1 9 Anmerkungen zur alten Version 1 des Hamster Simulators snsssnsnnneeeeen0aee 12 Installation und Starten des Hamster Simulators ssssssssnenneeeeeeeenernrnreeseerrrrnnn 14 2 1 Laden und Installation einer Java Laufzeitumgebung 44444 gt 14 2 2 Laden und Installation des Hamster Simulators 444 15 2 3 Hamster Simulator unter JDK IA 15 2 4 Starten des Hamster Gumulators nn nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 15 Ihr erstes Hamster Programm uu s u 2222c ea 17 3 1 Gestaltung eines Hamster Tertortums nennen 18 3 2 Eingeben eines Hamster Programme 20 3 3 Compilieren eines Hamster Programme 21 3 4 Ausf hren eines Hamster Programme ssssssseneeessseernrrrrrresserrrrrrrnrrnsserrrrrrnnn 22 3 5 Debuggen eines Hamster Programmes 23 3 6 IESSEN 24 Bedienung des Hamster Simulators AEN 25 4 1
33. Hamster nach der Ausf hrung des Programms auf der selben Kachel befindet auf der er sich vor Start des Programms befand allerdings mit einer anderen Blickrichtung Grund hierf r ist der folgende Im Hamster Simulator geschieht nach dem Ausf hren eines der vier Hamster Grundbefehle in Scheme folgendes Das von der entsprechenden Funktion gelieferte Territorium wird im Simulation Fenster angezeigt Es wird nicht wie im imperativen Hamster Modell der Befehl auf dem aktuell sichtbaren Territorium ausgef hrt Ein Hinweis f r erfahrenere Scheme Programmierer Ausgaben bzw Eingaben ber die Scheme Funktionen display bzw read erfolgen ber Standard Out bzw Standard In d h Sie sollten den Hamster Simulator entsprechend ber den Befehl java jar hamstersimulator jar und nicht via Doppelklick auf die Datei hamstersimulator jar starten damit Sie eine Konsole haben 7 5 Beispiele Es folgen ein paar Beispiele f r n tzliche Scheme Hamster Funktionen define kehrt T linksUm linksUm T define rechtsUm T kehrt linksUm T define nimmAlle T if kornDa T nimmAlle nimm T T define gibAlle T if not maulLeer T gibAlle gib T T define vorwaerts n T if and vornFrei T gt n 0 vorwaerts n 1 vor T T 64 define zurMauer T if vornFrei T zurMauer vor T T define hinUndZurueck T if vornFrei T vor hinUndZurueck vor T keh
34. Nach der Auswahl des Programmtyps dr cken Sie bitte den OK Button Die Dialogbox schlie t sich und oben im Eingabebereich des Editor Fenster erscheint ein Karteireiter mit der Bezeichnung NeuerHamster sowie einem Diskettensymbol Das Diskettensymbol im Karteireiter deutet an dass es sich um eine Datei handelt in der Anderungen durchgef hrt wurden die noch nicht abgespeichert worden sind Im Eingabebereich erscheint ein voreingestellter Programmrahmen Im Eingabebereich k nnen Sie nun wie in anderen Editoren auch mit Hilfe der Tastatur Zeichen also Sourcecode eingeben Der Editor unterst tzt brigens Syntax Highlighting d h normaler Sourcecode wird schwarz Java Schl sselw rter werden violett Kommentare gr n und Stringliterale blau dargestellt 33 Es ist im Eingabebereich m glich mehrere Dateien gleichzeitig zu bearbeiten F r jede ge ffnete Datei existiert ein Karteireiter siehe auch Abbildung 15 Welche Datei sich aktuell im Eingabebereich in Bearbeitung befindet erkennen Sie an dem etwas helleren Karteireiter Durch Anklicken eines Karteireiters k nnen Sie den entsprechenden Sourcecode in den Eingabebereich laden Bei einem derartigen Wechsel der Datei wird nicht automatisch gespeichert Kompilieren Debugger Info Jole sie ae olli AllroundHamster MeinErstesHamsterProgramm SammelndeHamster void maint ster amm mst Abbildung 15 Karteireiter Zum Abspeichern des von Ihn
35. Sie die aktuell im Eingabebereich ge ffnete Datei schlie en d h den Sourcecode inklusive Karteireiter aus dem Eingabebereich entfernen Wenn Sie den Button anklicken und die aktuelle Datei noch nicht gespeicherte Anderungen enth lt wird ber eine Dialogbox nachgefragt ob diese Anderungen gespeichert werden sollen oder nicht 4 2 9 Editier Funktionen Im Eingabereich k nnen Sie wie bei anderen Editoren auch ber die Tastatur Zeichen eingeben bzw wieder l schen Dar ber hinaus stellt der Editor ein paar weitere Funktionalit ten zur Verf gung die ber das Bearbeiten Men bzw die entsprechenden Buttons in der Toolbar des Editor Fensters aktiviert werden k nnen e Ausschneiden Button siebter Toolbar Button von links Hiermit k nnen Sie komplette Passagen des Eingabebereichs in einem Schritt l schen Markieren Sie die zu l schende Passage mit der Maus und klicken Sie dann den Button an Der markierte Text verschwindet e Kopieren Button achter Toolbar Button von links Hiermit k nnen Sie komplette Passagen des Eingabebereichs in einen Zwischenpuffer kopieren Markieren Sie die zu kopierende Passage mit der Maus und klicken Sie dann den Button an e Einf gen Button neunter Toolbar Button von links Hiermit k nnen Sie den Inhalt des Zwischenpuffers an die aktuelle Cursorposition einf gen W hlen Sie zun chst die entsprechende Position aus und klicken Sie dann den Button an Der Text des
36. Territorium wird wieder hergestellt 19 3 2 Eingeben eines Hamster Programms Nachdem wir unser erstes Hamster Territorium im Simulation Fenster gestaltet haben begeben wir uns nun in das Editor Fenster Dort werden wir unser erstes Hamster Programm schreiben Im Editor Fenster befindet sich ganz oben eine Men leiste und darunter eine Toolbar mit graphischen Buttons Links sehen wir den Dateibaum und das gro e Feld rechts ist der Eingabebereich f r den Sourcecode Bevor wir ein Hamster Programm eintippen m ssen wir zun chst einen neuen Programmrahmen erzeugen Dazu klicken wir auf den Neu Button erster Button von links in der Toolbar Es erscheint eine Dialogbox in der wir uns f r den Typ des Programms imperatives Programm objektorientiertes Programm Klasse oder Scheme Programm entscheiden m ssen Unser erstes Programm soll ein imperatives Hamster Programm gem Band 1 der zwei Hamster B cher werden Daher w hlen wir dies aus und klicken den OK Button Der Eingabebereich wird heller und es erscheint ein Programmrahmen f r imperative Hamster Programme void main Unser erstes Programm soll bewirken dass der Hamster in dem gerade von uns gestalteten Territorium zwei K rner frisst Wir klicken in die zweite Reihe des Eingabebereiches und tippen dort wie in einem normalen Editor bzw Textverarbeitungsprogramm wie Microsoft Word die entsprechenden Harmster Befehle ein so dass letztlich folgendes im Eingabe
37. Zwischenpuffers wird eingef gt e R ckg ngig Button zehnter Toolbar Button von links Wenn Sie durchgef hrte Anderungen des Sourcecode aus welchem Grund auch immer wieder r ckg ngig machen wollen k nnen Sie dies durch Anklicken des 36 Wiederherstellen Button elfter Toolbar Button von links R ckg ngig gemachte Anderungen k nnen Sie mit Hilfe dieses Buttons wieder herstellen Die Funktionalit ten Kopieren und Einf gen funktionieren brigens auch ber einzelne Programme hinaus Es ist sogar m glich mit Hilfe der Betriebssystem Kopieren Funktion Text aus anderen Programmen bspw Microsoft Word zu kopieren und hier einzuf gen 4 2 10 Verwaltung von Ordnern Um Funktionen auf einem Ordner durchzuf hren klicken Sie zun chst den entsprechenden Ordner im Dateibaum an Der Name des Ordners wird dadurch durch ein blaues Rechteck hinterlegt Klicken Sie anschlie end die rechte Maustaste so dass sich das Popup Menu des Ordners ffnet Im Popup Men haben Sie nun folgende Funktionalit ten zur Verwaltung von Ordern zur Verf gung e Men item Neuer Ordner Durch Anklicken dieses Items k nnen Sie einen neuen Uhnterordner anlegen Es ffnet sich eine Dialogbox in der sie den Namen des Unterordners angeben m ssen e Men item L schen Durch Anklicken dieses Items k nnen Sie den entsprechenden Ordner l schen Achtung Es werden automatisch auch alle Dateien und Unterordner
38. achten m chten k nnen Sie das Programm zun chst einfach starten dann anhalten den Debugger aktivieren und dann schrittweise weiter ausf hren Wenn Sie irgendwann ein Programm nicht weiter schrittweise ausf hren m chten k nnen Sie durch Anklicken des Ausf hren Buttons die automatische Programmausf hrung wieder aktivieren 4 7 3D Simulationsfenster und Sound Seit der Version 2 5 des Hamster Simulators ist es m glich sich die Aktivit ten der Hamster zus tzlich in einem 3 dimensionalen Territorium anzuschauen Herzlichen Dank an Christoph Meyer der die 3D Simulation im Rahmen einer Studienarbeit implementiert hat ffnen Sie dazu im Editor Fenster in der Men leiste das Men Fenster und aktivieren Sie den Eintrag 3D Simulation Wenn sich der Eintrag nicht aktivieren l sst ist eine 3D Ansicht auf Ihrem Rechner leider nicht m glich Aktuell funktioniert die 3D Ansicht leider nur unter Windows Nach ein paar Sekunden Wartezeit ffnet sich das in Abbildung 21 gezeigte Fenster 48 3D Simulation galoo AE Abbildung 21 3D Simulationsfenster Das 3D Simulationsfenster enth lt keine Buttons zur Gestaltung eines Territoriums Die Territoriumsgestaltung findet ausschlie lich im 2D Simulationsfenster statt Das 3D Simulationsfenster wird aber immer automatisch entsprechend aktualisiert Am oberen Rand des 3D Simulationsfenster befindet sich eine Toolbar Diese enth lt Buttons zur Manipulation
39. ahren Sie in Abschnitt 7 1 3 nderungen in Version 2 6 gegen ber 2 5 Wiederum wurden ein paar kleine Fehler korrigiert Wichtige nderungen sind e Farbliche Umgestaltung des Simulators e Im Modus runlocally true siehe Abschnitt 5 gibt es nun eine Console die Ein und Ausgaben ber System in bzw System out und System err verarbeitet Konkret bedeutet das Enth lt ein Hamster Programm bspw den Befehl System out printin hallo und wird das Programm ausgef hrt ffnet sich das Consolen Fenster und die Zeichenkette hallo wird in das Fenster geschrieben Im Standard Modus runlocally false ndert sich nichts Ausgabeanweisungen werden weiterhin in die Dateien sysout txt bzw syserr txt geschrieben e Es gibt ein neues Men Extras ber das unter anderem die Fontgr e ge ndert werden kann Die gr te nderung war die Integration der logikbasierten Programmiersprache Prolog in den Hamster Simulator siehe Abschnitt 8 1 4 nderungen in Version 2 5 gegen ber 2 4 Neben der Korrektur einiger kleiner Fehler sind folgende wesentliche Erweiterungen am Hamster Simulator vorgenommen worden Hamster Programme k nnen zus tzlich in einer 3D Welt ausgef hrt werden siehe Abschnitt 4 7 Die 3D Ansicht funktioniert momentan aber leider nur unter Windows Es gibt ein Property namens color ber das die Farbe des Standard Hamsters angegeben werden kann Auch die Farbgestaltung neu erzeugter Hamster kann man
40. aseReiheAb leereTerritorium laufelInEcke graseAlleReihenAb leereTerritoriunm graseAlleReihenAb graseReiheAb kehrt laufezurWand kehrt linksFrei begibDichInNaechsteReihe l graseAlleReihenAb begibDichInNaechsteReih linksUm vor rechtsUm 87 9 Noch Fragen Eigentlich m sste dieses Benutzungshandbuch alle Fragen im Zusammenhang mit dem Hamster Simulator kl ren Wenn Sie trotzdem noch weitere Fragen oder Probleme haben schauen Sie doch einfach mal im WWW auf der Website www java hamster modell de ins Diskussionsforum Hier k nnen Sie Ihre Fragen stellen und mit anderen Hamster Programmierern und den Autoren des Hamster Buches bzw dem Entwickler des Hamster Simulators in Kontakt treten 88
41. auch m glich mehrere Kacheln gleichzeitig zu l schen Klicken Sie dazu die Maus auf einer der Kacheln und ziehen Sie den Mauscursor bei gedr ckter Maustaste ber die anderen Kacheln Alle Kacheln die nach Loslassen der Maustaste gel scht werden werden durch ein rotes X gekennzeichnet Eine Deaktivierung der Kachel L schen Funktion ist durch Anklicken des Hamster versetzen K rner setzen oder Mauer setzen Buttons und der damit verbundenen Aktivierung der entsprechenden Funktion m glich 4 4 8 Abspeichern eines Hamster Territoriums Sie k nnen einmal gestaltete Hamster Territorien in einer Datei abspeichern und sp ter wieder laden Zum Abspeichern des aktuellen Territoriums dr cken Sie bitte den Territorium speichern Button dritter Toolbar Button von links Es ffnet sich eine Dateiauswahl Dialogbox Hierin k nnen Sie den Ordner ausw hlen und den Namen einer Datei eingeben in die das aktuelle Territorium gespeichert werden soll Namen von Dateien mit Hamster Territorien bekommen brigens automatisch die Endung ter 4 4 9 Wiederherstellen eines abgespeicherten Hamster Territoriums Abgespeicherte Hamster Territorien k nnen mit dem Territorium ffnen Button zweiter Toolbar Button von links wieder geladen werden Klicken Sie hierzu den Button Es erscheint eine Dateiauswahl Dialogbox in der Sie die zu ladende Datei ausw hlen k nnen Nach dem Anklicken des OK Buttons schlie t sich die Dial
42. baum auf der linken Seite Wenn Sie ein Programm in einer anderen Datei abspeichern m chten nutzen Sie den Speichern Als Button vierter Button von links Mit dem Schlie en Button f nfter Button von links k nnen Sie eine Datei wieder schlie en Das entsprechende Programm verschwindet dann aus dem Eingabebreich Zu guter Letzt gibt es noch den Drucken Button sechster Button von links zum Ausdrucken eines Hamster Programms Alle gerade erl uterten Funktionen zum Verwalten von Dateien mit Hamster Programmen finden Sie auch im Men Datei 3 3 Compilieren eines Hamster Programms Nachdem wir unser Hamster Programm geschrieben und in einer Datei abgespeichert haben m ssen wir es kompilieren Der Compiler berpr ft den Sourcecode auf syntaktische Korrektheit und transformiert ihn wenn er korrekt ist in ein ausf hrbares Programm Zum Kompilieren dr cken Sie einfach auf den Kompilieren Button zw lfter Button von links oder Kompilieren Men Kompiliert wird dann das Programm das gerade im Eingabebereich sichtbar ist Wenn das Programm korrekt ist erscheint eine Dialogbox mit der Nachricht Kompilierung erfolgreich Zur Best tigung m ssen Sie anschlie end noch den OK Button dr cken Das Programm kann nun ausgef hrt werden Merken Sie sich bitte Immer wenn Sie nderungen am Sourcecode Ihres Programms vorgenommen haben m ssen Sie es zun chst abspeichern und dann neu kompilie
43. ber Einf gen Q PUU CGA Pro amme 5i inErstesHam As Bl IroundHamger rein m Se Kompilieren ffnen A p Schritt hinein Speichem Als R ckg ngig Stopp Geschwindigkeit Abbildung 14 Toolbar des Editor Fensters 4 2 1 Schreiben eines neuen Hamster Programms Wenn Sie ein neues Hamster Programm schreiben m chten klicken Sie bitte den Neu Button an erster Toolbar Button von links Es ffnet sich eine Dialogbox In dieser Dialogbox m ssen Sie ausw hlen welchen Typ von Programm Sie schreiben m chten Es existieren drei Alternativen e Imperatives Programm Imperative Programme sind Programme wie sie in Band 1 des Java Hamster Buches Programmieren spielend gelernt eingef hrt werden Sie bestehen aus einer main Funktion sowie weiteren Funktionen e Objektorientiertes Programm Objektorientierte Programme sind Programme wie sie in Band 2 des Java Hamster Buches Objektorientierte Programmierung spielend gelernt eingef hrt werden Sie bestehen aus einer main Funktion sowie Funktionen und Klassen e Klasse Wollen Sie eine separate Klasse ohne main Funktion schreiben bspw eine erweiterte Hamster Klasse m ssen Sie diesen Typ von Programm aus w hlen W hlen Sie den Programmtyp Klasse auch wenn Sie separate Interfaces definieren m chten e Scheme Programm hierzu siehe Abschnitt 7 Achtung Es ist nicht m glich den Typ eines Programms nachtr glich zu ndern
44. bereich steht void main vor vor nimm rechtsUm vor vor nimm void rechtsUm linksUm linksUm linksUm 20 Das ist unser erstes Hamster Programm Wir m ssen es als n chstes in einer Datei abspeichern Dazu klicken wir den Speichern Button dritter Button von links Es erscheint eine Dateiauswahl Dialogbox Hier geben wir den gew nschten Dateinamen ein Dies muss ein g ltiger Java Bezeichner sein zum Beispiel MeinErstesHamster Programm Der Dateiname erh lt brigens automatisch die Endung ham Anschlie end klicken wir den OK Button Damit ist unser Programm in der entsprechenden Datei abgespeichert Ihnen sicher von anderen Editoren bzw Textverarbeitungsprogrammen bekannte Funktionen wie Ausschneiden Kopieren Einf gen R ckg ngig und Wiederherstellen k nnen Sie ber das Bearbeiten Men bzw die entsprechenden Buttons in der Toolbar ausf hren siebter bis elfter Button von links Weiterhin gibt es einen ffnen Button zum ffnen von Dateien die irgendwann einmal abgespeichert worden sind zweiter Button von links Es erscheint eine Dateiauswahl Dialogbox in der Sie die entsprechende Datei durch Mausklick ausw hlen Nach dem Anklicken des OK Buttons erscheint das Programm das die Datei enth lt im Eingabebereich Eine Alternative zum Offnen Button ist das Anklicken des entsprechenden Dateinamens im Datei
45. ch empfehle dringend die Nutzung der Version 6 Der Hamster Simulator sollte jedoch auch noch in der Java Version 5 laufen Neben der ben tigten Java Laufzeitumgebung beinhaltet ein JDK noch weitere Werkzeuge zur Entwicklung von Java Programmen wie bspw einen Compiler Sie sollten also ein JDK installieren wenn Sie au er Hamster Programmen noch richtige Java Programme entwickeln m chten Problem beim JDK ist Es ist sehr gro ca 70 MByte Es kann ber den folgenden URL kostenlos aus dem WWW geladen werden http java sun com javase downloads index js Die zweite Variante ist die Installation eines Java SE Runtime Environment JRE Dieses stellt genau die ben tigte Laufzeitumgebung dar JREs sind in JDKs enthalten existieren also in denselben Versionen Die Vorteile von JREs sind Sie sind weit weniger gro ca 20 MBytes Auch JREs k nnen ber den folgenden URL kostenlos aus dem WWW geladen werden http java sun com javase downloads index jsp Sowohl das JDK als auch das JRE werden standardm ig von der Firma SUN f r die Betriebssysteme Windows Linux und Solaris zur Verf gung gestellt leider nicht f r Ma cintosh Betriebssysteme Nachdem Sie entweder ein JDK oder ein JRE auf Ihren Rechner geladen haben m ssen Sie es installieren Das geschieht normalerweise durch Ausf hren der geladenen Datei in Windows Doppelklick auf die exe Datei Sie werden dann durch die weitere Installation gef hrt 2 2 Lade
46. ch zus tzliche Funktionalit ten bereit Durch Doppelklick auf einen Ordner kann man in den entsprechenden Ordner wechseln Es werden dann anschlie end die Dateien und Unterordner dieses Ordners im mittleren Bereich angezeigt Um zu einem bergeordneten Ordner zur ck zu gelangen bedient man sich des Men s Suchen in in dem man den entsprechenden Ordner ausw hlen kann Neben dem Suchen in Men sind noch f nf Graphik Buttons angeordnet Durch Anklicken des linken Buttons kommt man im Ordnerbaum eine Ebene h her Durch Anklicken des zweiten Buttons von links gelangt man zur Wurzel des Ordnerbaumes Mit dem mittleren Button kann man im aktuellen Ordner einen neuen Unterordner anlegen Mit den beiden rechten Buttons kann man die Darstellung im mittleren Bereich ver ndern 30 M chte man einen Ordner oder eine Datei umbenennen muss man im mittleren Bereich der Dateiauswahl Dialogbox zweimal mit Pause zwischendurch auf den Namen des Ordners oder der Datei klicken Die textuelle Darstellung des Namens wird dann zu einem Eingabefeld in der man ber die Tastatur den Namen ver ndern kann 4 1 10 Dateibaum Ein Dateibaum repr sentiert die Ordner und Dateien des Dateisystems siehe Abbildung 12 E e HE Frogramme AllroundHamster o EJ beispielprogramm CH bandi e C band MeinErstesHamst Gr C paul gt SammelHamster gt SammelndeHams Abbildung 12 Dateibaum Ordner und Dateien werden dabei durch
47. chen Definition um eine Anfrage an das PROLOG System Die Abfrage Klausel wird dabei auch Zielklausel genannt Sehen wir uns mal als N chstes die Zusammensetzung einer Klausel am Beispiel einer abstrakten Regel Klausel an Eine Regel Klausel kann in PROLOG wie folgt geschrieben werden Der Kopf einer Regel definiert ein einzelnes Pr dikat welches im Nachfolgenden mittels dieser Regel abgeleitet werden kann Der Regelk rper umfasst eine Liste von Pr dikaten die f r die Erf llung dieser Regel ebenfalls erf llt werden m ssen Das Symbol fungiert dabei als ein umgekehrtes Implikationszeichen lt Dies bedeutet dass zur Erf llung von A alle Pr dikate von B bis B erf llt werden m ssen Deklarative und prozedurale Sicht auf das Programm Bei der Interpretation der oben dargestellten Regel k nnen in PROLOG zwei unterschiedliche Sichtweisen eingesetzt werden Die deklarative Sichtweise besagt dass das Pr dikat A nur dann erf llt ist wenn alle Zielpr cikate B bis D erf llt werden k nnen Hierbei ist die Reihenfolge der Erf llung der B Pr dikate nicht von Bedeutung Die deklarative Sicht hat einen rein informellen Charakter Aus der anderen der prozeduralen Sichtweise kann das Pr dikat A nur dann erf llt werden wenn zun chst B dann B und dann schlie lich die B Klausel erf llt werden k nnen Sollte also eines der B Pr dikate nicht zu erf llen sein so braucht der Rest der B Pr dikate gar nicht me
48. chtige Grundfunktionalit ten graphischer Benutzungsoberfl chen beschrieben Der Abschnitt ist f r diejenigen unter Ihnen gedacht die bisher kaum Erfahrungen mit Computern haben Diejenigen von Ihnen die schon l ngere Zeit einen Computer haben und ihn regelm ig benutzen k nnen diesen Abschnitt ruhig berspringen 4 1 1 Anklicken Wenn im Folgenden von Anklicken eines Objektes oder Anklicken eines Objektes mit der Maus gesprochen wird bedeutet das dass Sie den Mauscursor auf dem Bildschirm 26 durch Verschieben der Maus auf dem Tisch ber das Objekt platzieren und dann die im Allgemeinen linke Maustaste dr cken 4 1 2 Tooltipps Als Tooltipps werden kleine Rechtecke bezeichnet die automatisch auf dem Bildschirm erscheinen wenn man den Mauscursor auf entsprechende Objekte platziert siehe Abbildung 5 In den Tooltipps werden bestimmte Informationen ausgegeben EAE Abbildung 5 Tooltipp 4 1 3 Button Buttons sind Objekte der Benutzungsoberfl che die man anklicken kann und die daraufhin eine bestimmte Aktion ausl sen siehe Abbildung 6 Buttons besitzen eine textuelle Beschreibung z B OK oder eine Graphik die etwas ber die Aktion aussagen Sie erkennen Buttons an der etwas hervorgehobenen Darstellung Graphik Buttons sind in der Regel Tooltipps zugeordnet die die zugeordnete Aktion beschreiben xD Abbildung 6 Buttons 4 1 4 Men Men s befinden sich ganz oben in einem F
49. des Ordners unwiderruflich gel scht e Men item Einf gen Wenn Sie zuvor eine Datei mit dessen Popup Men item Kopieren kopiert haben k nnen Sie durch Anklicken dieses Items die entsprechende Datei in den aktuellen Ordner einf gen d h die Datei wurde kopiert e Men item Umbenennen Mit Hilfe dieses Items k nnen Sie den Namen des Ordners ndern Es ffnet sich eine Dialogbox in der Sie den gew nschten Namen eingeben k nnen M chten Sie einen Ordner samt aller seiner Unterordner und Dateien in einen anderen Ordner verschieben klicken Sie den entsprechenden Ordner im Dateibaum an und verschieben Sie den Mauscursor bei gedr ckter Maustaste ber den Namen des Ordners in den der Ordner verschoben werden soll Der Name verschwindet aus dem vorherigen Ordner und erscheint im neuen Ordner falls dieser ge ffnet ist F hren Sie die Funktion bei gedr ckter Strg Taste durch wird der Ordner samt Inhalt kopiert anstelle von verschoben 4 3 Compilieren von Hamster Programmen Beim Kompilieren werden Programme genauer gesagt der Sourcecode auf ihre syntaktische Korrektheit berpr ft und im Erfolgsfall ausf hrbare Programme erzeugt Zum Kompilieren von Programmen dient im Editor Fenster das Kompilieren Men 37 4 3 1 Compilieren Wenn Sie das Kompilieren Men item im Kompilieren Men oder in der Toolbar des Editor Fensters den Kompilieren Button zw lfter Toolbar Button
50. diese Property kann der Ordner gew hlt werden in dem die beiden Dateien sysout txt und syserr txt erzeugt werden sollen In diese Dateien werden Ausgaben auf Standard Output System out und Standard Error System err umgelenkt nur im Modus runlocally false Befindet sich in der Datei eine Zeile die mit dem Text logfolder beginnt wird der dahinter angegebene Ordner als Logfolder Ordner gesetzt bspw logfolder C Dokumente und Einstellungen karl oder logfolder C Dokumente und Einstellungen heidi Eigene Dateien oder logfolder test Der angegebene Ordner muss existieren und er muss lesbar und beschreibbar sein Achten Sie bitte darauf dass in dem Ordner Namen keine Sonderzeichen vorkommen bspw ein Ausrufezeichen da die einige Java Versionen nicht damit zurecht kommen F r Windows Nutzer ist es wichtig zu wissen dass die Zeichen in den Ordner Namen durch ein Zeichen ersetzt werden m ssen Standardm ig steht in der Property Datei logfolder 5 1 4 scheme ber die Property scheme kann die F higkeit des Hamster Simulators Scheme Programme zu entwickeln bzw auszuf hren ein bzw ausgeschaltet werden siehe Abschnitt 7 Befindet sich in der Datei hamster properties eine Zeile mit dem Text scheme false ist der Scheme Modus ausgeschaltet Befindet sich in der Datei hamster properties eine Zeile mit dem Text scheme true ist der Scheme Modus eingeschaltet Standardm ig ist der Scheme Modus au
51. ehle ich Ihnen dringend keine fremden Hamster Programme auszuf hren Sind diese bspw b swillig geschrieben k nnten sie Ihnen prinzipiell die gesamte Festplatte l schen Standardm ig steht in der Property Datei security true 11 e workspace Standardm ig erscheint im Dateibaum als oberster Ordner ein Ordner names Programme der so genannte Workspace Ordner Er repr sentiert den Unterordner Programme des Ordners in dem sich die Dateien hamstersimulator jar bzw hamstersimulator bat befinden In diesem Ordner werden alle Hamster Programme und Hamster Territorien abgespeichert Durch Setzen der Property workspace kann ein anderer Ordner als Workspace Ordner festgelegt werden Befindet sich in der Datei eine Zeile die mit dem Text workspace beginnt wird der dahinter angegebene Ordner als Workspace Ordner gesetzt bspw workspace C Dokumente und Einstellungen karl oder workspace C Dokumente und Einstellungen heidi Eigene Dateien Der angegebene Ordner muss existieren und er muss lesbar und beschreibbar sein Achten Sie bitte darauf dass in dem Ordner Namen keine Sonderzeichen vorkommen bspw ein Ausrufezeichen da die aktuelle Java Version 5 0 im Moment nicht damit zurecht kommt F r Windows Nutzer ist es wichtig zu wissen dass die Zeichen in den Ordner Namen durch ein Zeichen ersetzt werden m ssen Alternativ kann auch jedes Zeichen verdoppelt werden Standardm ig steht in der Property Datei workspace Pr
52. ei die Programme der Nutzer in unterschiedlichen Verzeichnissen abgespeichert werden k nnen siehe Abschnitt 5 2 In der oberen Men leiste des Editor Fensters gibt es ein neues Men Fenster ber dieses Men ist es m glich das Simulation Fenster sowie die Scheme Konsole sichtbar bzw unsichtbar zu machen Einige kleine Fehler wurden beseitigt 1 7 nderungen in Version 2 2 gegen ber 2 1 An der generellen Funktionalit t des Hamster Simulators wurde nichts ge ndert Die Anderungen beziehen sich nur auf den internen Programmcode Was jedoch mit dieser neuen Version m glich ist sind zwei Dinge Hamster Programme lassen sich nun auch ohne den Editor des Hamster Si mulators erstellen und ausf hren Der Hamster Simulator wurde so angepasst dass eine Integration in die Entwicklungsumgebung BlueJ m glich ist 1 7 1 Erstellen von Hamster Programmen unabh ngig vom Editor des Simulators Ab dieser Version des Hamster Simulators k nnen Sie Hamster Programme unabh ngig vom Hamster Editor erzeugen und ausf hren Dazu m ssen Sie folgenderma en vorgehen e Erstellen Sie ein Hamster Programm mit einem beliebigen Editor Speichern Sie dies in einer Datei ab bspw test sammler ham Dabei ist folgendes zu beachten Wenn die Datei ein objektorientiertes Hamster Programm enth lt muss sie mit folgendem Kommentar beginnen object oriented program Wenn die Datei eine Hamster Klasse enth lt muss sie mit folgendem Kommenta
53. ei eine ProLoG Klausel Die Box hat mehrere Ein und Ausgabe Ports die vom System w hrend der Bearbeitung der Klausel abh ngig vom aktuellen Zustand und den Eingaben des Nutzers genommen werden k nnen Die Bedeutung der einzelnen Ports wird nachfolgend erl utert CALL Beim Aufruf einer Klausel wird f r diese eine neue Box erstellt und ber den CALL Port betreten Jede erstellte Box bekommt eine fortlaufend vergebene Nummer zugewiesen Besteht die aktuelle Klausel aus mehreren Unterzielen so werden f r diese innerhalb der aktuellen Box weitere Boxen angelegt EXIT Bei der erfolgreichen Bearbeitung der Klausel verl sst das System die Box ber den EXIT Port Ist die aktuelle Klausel nur ein Teil einer gr eren Abfrage so wird anschlie end das n chste Unterziel Klausel der Abfrage ber den CALL Port aufgerufen FAIL Konnte die aktuelle Klausel nicht wahr gemacht werden so verl sst das System ber diesen Ausgang die Box Bei der dar ber liegenden Klausel wird dabei beim Backtracking das REDO Port betreten um eine Neuauswertung der dar ber liegenden Klausel zu initiieren REDOBeim Backtracking kommt das System ber diesen Port zu seinem fr heren Ziel zur ck Dem Programmierer stehen zudem mehrere M glichkeiten zur Verf gung die Bearbeitung der aktuellen Klausel zu beeinflussen bzw zu dirigieren creep Aktion Bei der Wahl dieser Aktion setzt das System die Bearbeitung der Klausel fort bis das n chste Port Ereigni
54. else P O R P if_then_else P O R not P R dp li 2 C C o Diese L sung ist aber nicht sehr effizient da bei der Bearbeitung der Prozedur auch unn tige Berechnungen durchgef hrt werden Nehmen wir an dass w hrend der Bearbeitung die erste Klausel C1 augew hlt und das erste Pr dikat P bereits als wahr ausgewertet wurde Das Pr dikat Q schl gt aber nachfolgend fehl In diesem Fall w rde das PRoLOG System im Rahmen des Backtracking zur ckgehen und eine alternative Herleitung f r das Pr dikat P suchen Dies ist aber unn tig da wir schon wissen dass P bereits bewiesen werden kann Im anderen Fall sollte die erste Berechnung von P fehlschlagen w rde das PROLOG System mit der Bearbeitung der zweiten Klausel der Prozedur if_then_else P Q R C2 forfahren Hier findet aber nochmals die Berechnung von not P statt was ebenfalls berfl ssig ist da P bereits bei der ersten Klausel als falsch ausgewertet wurde Zur Behandlung solcher Probleme gibt es in PROLOG den Cut Pr dikat Dieser wird im nachfolgenden Abschnitt n her beschrieben 8 2 5 1 Cut Pr dikat Der Cut ist ein nullstelliges Pr dikat welches in PROLOG im Programm mit einem Zeichen geschrieben wird Dieses Pr dikat ist immer war und es hat die Eigenschaft das Backtracking im Programm zu verhindern Die Funktionsweise des Pr dikats an sich ist sehr einfach F r alle Ziele vor einem Cut Symbol werden keine Alternativl sungen
55. em 54 Text 3D false ist der 3D Modus ausgeschaltet Befindet sich in der Datei namster properties eine Zeile mit dem Text 3D true ist der 3D Modus eingeschaltet Standardm ig ist der 3D Modus eingeschaltet 5 1 10 lego ber die Property lego kann der Lego Modus ein oder ausgeschaltet werden Befindet sich in der Datei hamster properties eine Zeile mit dem Text lego false ist der Lego Modus ausgeschaltet Befindet sich in der Datei namster properties eine Zeile mit dem Text lego true ist der Lego Modus eingeschaltet Standardm ig ist der Lego Modus ausgeschaltet Die M glichkeit ber den Hamster Simulator einen Lego Mindstorms Roboter zu steuern wird erst in Version 2 7 des Hamster Simulators erl utert 5 1 11 prolog ber die Property prolog kann die F higkeit des Hamster Simulators Prolog Programme zu entwickeln bzw auszuf hren ein bzw ausgeschaltet werden siehe Abschnitt 8 Befindet sich in der Datei namster properties eine Zeile mit dem Text prolog false ist der Prolog Modus ausgeschaltet Befindet sich in der Datei hamster properties eine Zeile mit dem Text prolog true ist der Prolog Modus eingeschaltet Standardm ig ist der Prolog Modus ausgeschaltet 5 1 12 plcon ber die Property plcon kann der Pfad zum SWIProlog Interpreter angegeben werden Standardm ig ist dort der Wert plcon exe angegeben Wurde SWIProlog installiert und die PATH Umgebungsva
56. en item Kopieren anklicken Klicken Sie nun im Dateibaum den Namen des Ordners an in den die Datei kopiert werden soll Klicken Sie danach die rechte Maustaste Es erscheint ein Popup Men in dem Sie das Men item Einf gen anklicken Eine Alternative hierzu sieht folgenderma en aus M chten Sie eine Datei mit einem Hamster Programm oder auch einen kompletten Ordner in einen anderen Ordner 35 kopieren klicken Sie den entsprechenden Namen im Dateibaum an und verschieben Sie den Mauscursor bei gedr ckter Maustaste und gedr ckter Strg Taste Ihrer Tastatur ber den Namen des Ordners in den die Datei bzw der Ordner verschoben werden soll Zumindest unter Windows funktioniert die Alternative brigens auch in Kombination mit dem Betriebssystem d h Sie k nnen Dateien bspw auf den Desktop kopieren und umgekehrt Wenn Sie eine Datei mit einem Hamster Programm in einen anderen Ordner kopiert haben m ssen Sie die neue Datei noch kompilieren 4 2 7 Drucken eines Hamster Programms ber den Drucken Button sechster Toolbar Button von links k nnen Sie die aktuell im Eingabebereich ge ffnete Datei drucken Es ffnet sich eine Dialogbox in der Sie die entsprechenden Druckeinstellungen vornehmen und den Druck starten k nnen Aktuell funktioniert das Drucken nur unter Windows 4 2 8 Schlie en eines ge ffneten Hamster Programms Mit dem Schlie en Button f nfter Toolbar Button von links k nnen
57. en Hamster Programms M chten Sie ein Hamster Programm umbenennen klicken Sie zun chst den entsprechenden Namen im Dateibaum an Er wird durch ein blaues Rechteck hinterlegt Klicken Sie anschlie end die rechte Maustaste Es erscheint ein Popup Men in dem Sie das Men item Umbenennen anklicken Es ffnet sich eine Dialogbox in der Sie den neuen Namen angeben k nnen Wenn Sie eine Datei mit einem Hamster Programm umbenannt haben m ssen Sie sie neu kompilieren 4 2 5 Verschieben eines existierenden Hamster Programms in einen anderen Ordner M chten Sie eine Datei mit einem Hamster Programm oder auch einen kompletten Ordner in einen anderen Ordner verschieben klicken Sie den entsprechenden Namen im Dateibaum an und verschieben Sie den Mauscursor bei gedr ckter Maustaste ber den Namen des Ordners in den die Datei bzw der Ordner verschoben werden soll Der Name verschwindet aus dem vorherigen Ordner und erscheint im neuen Ordner falls dieser ge ffnet ist Wenn Sie eine Datei mit einem Hamster Programm in einen anderen Ordner verschoben haben m ssen Sie sie neu kompilieren 4 2 6 Kopieren eines existierenden Hamster Programms in einen anderen Ordner M chten Sie ein Hamster Programm in einen anderen Ordner kopieren klicken Sie zun chst den entsprechenden Namen im Dateibaum an Er wird durch ein blaues Rechteck hinterlegt Klicken Sie anschlie end die rechte Maustaste Es erscheint ein Popup Men in dem Sie das M
58. en editierten Textes klicken Sie bitte den Speichern Button an dritter Toolbar Button von links Handelt es sich um eine bereits angelegte Datei wird automatisch in diese Datei gespeichert Handelt es sich um eine neu angelegte Datei erscheint eine Dateiauswahl Dialogbox Hier m ssen Sie nun den Namen Ihres Programms angeben Achtung Der Name muss ein g ltiger Java Bezeichner sein ansonsten erscheint eine Fehlermeldung Dateien mit Hamster Programmen haben immer die Endung ham Die k nnen Sie m ssen Sie aber nicht beim Dateinamen eingeben Im letzteren Fall wird die Endung automatisch erg nzt Nachdem Sie ein neues Programm abgespeichert haben erscheint der angegebene Name im Dateibaum des Editorfensters Au erdem zeigt nun der Karteireiter anstelle von NeuerHamster den Namen an Das Diskettensymbol ist verschwunden d h alle nderungen sind gespeichert Wenn an einer Datei keine nderungen vorgenommen wurden ist ein Speichern brigens nicht m glich der Speichern Button ist ausgegraut Eine Alternative zum Speichern Button stellt der Speichern Als Button dar vierter Toolbar Button von links Hiermit k nnen Sie den eingegebenen bzw ge nderten Text in eine andere als die aktuelle Datei speichern Dazu erscheint eine Dateiauswahl Dialog box in der Sie den gew nschten Namen eingeben m ssen Im Dateibaum ist brigens auch der Typ eines Programms ersichtlich Bei imperativen Programmen ist de
59. enster in der so genannten Men leiste siehe Abbildung 7 Sie werden durch einen Text beschrieben Datei Bearbeiten Klickt man die Texte an ffnet sich eine Box mit so genannten Men iterns Diese bestehen wiederum aus Texten die man anklicken kann Durch Anklicken von Men items werden genauso wie bei Buttons Aktionen ausgel st die im Allgemeinen durch die Texte beschrieben werden Speichern Kopieren Nach dem Anklicken eines Men items wird die Aktion gestartet und die Box schlie t sich automatisch wieder Klickt man irgendwo au erhalb der Box ins Fenster schlie t sich die Box ebenfalls und es wird keine Aktion ausgel st H ufig steht hinter den Men items ein weiterer Text wie z B Strg O oder Alt N Diese Texte kennzeichnen Tastenkombinationen Dr ckt man die entsprechenden Tasten wird dieselbe Aktion ausgel st die man auch durch Anklicken des Men items ausl sen w rde 27 Manchmal erscheinen bestimmte Men items etwas heller Man sagt auch sie sind ausgegraut In diesem Fall kann man das Men ltem nicht anklicken und die zugeordnete Aktion nicht ausl sen Das Programm befindet sich in einem Zustand in dem die Aktion keinen Sinn machen w rde Datei Bearbeiten Kompilieren Debugger Info Abbildung 7 Men 4 1 5 Toolbar Direkt unterhalb der Men leiste ist die so genannte Toolbar angeordnet siehe Abbildung 8 Sie besteht aus einer Menge an Graphik Buttons die Alternativen zu den am h uf
60. er bergebenen Territorium auf der Kachel auf der der Hamster steht mindestens ein Korn befindet Bei den Befehlen vor nimm und gib k nnen die bekannten Fehler auftreten Im Hamster Simulatorr geschieht nach dem Ausf hren eines der vier Hamster Grundbefehle folgendes Das von der entsprechenden Funktion gelieferte Territorium wird im Simulation Fenster angezeigt 7 4 3 GchemeHamster Programme Ein Scheme Hamster Programm hat immer folgende Gestalt define start Territorium lt Funktionsaufruf gt start ist die Funktion die beim Ausf hren eines Hamster Programms aufgerufen wird Ihr wird als Parameter die entsprechende Listenrep sentation des aktuell im Simulation Fenster angezeigten Territoriums bergeben Im folgenden Hamster Programm h pft der Hamster eine Kachel nach vorne define start Territorium vor Territorium Im folgenden Hamster Programm h pft der Hamster eine Kachel nach vorne und dreht sich anschlie end nach links define start Territorium linksUm vor Territorium Vergeichen Sie mit diesem Programm bitte das folgende Hamster Programm define start Territorium vor Territorium linksUm Territorium 63 Hier h pft der Hamster zun chst eine Kachel nach vorne Anschlie end wird der Befehl linksUm jedoch auf dem anf nglichen Territorium dem Parameter ausgef hrt und nicht auf dem durch den vor Befehl ge nderten Territorium d h das Ergebnis ist dass sich der
61. er leeren so dass weder eine Mauer noch K rner auf ihnen platziert sind so aktivieren Sie den Kachel l schen Button neunter Button von links Klicken Sie anschlie end auf die Kacheln die geleert werden sollen So jetzt wissen Sie eigentlich alles was notwendig ist um das Hamster Territorium nach Ihren W nschen zu gestalten Bevor Sie weiterlesen erzeugen Sie als n chstes das in Abbildung 2 skizzierte Territorium Sie k nnen ein bestimmtes Territorium auch in einer Datei abspeichern wenn Sie es irgendwann noch einmal benutzen m chten ohne alle Eingaben erneut zu t tigen Dr cken Sie einfach auf den Territorium speichern Button dritter Button von links und geben Sie in der sich ffnenden Dateiauswahl Dialogbox einen Namen an zum Beispiel MeinErstesTerritorium Wenn Sie dann auf den OK Button klicken wird das Territorium in einer Datei mit diesem Namen gespeichert Der Dateiname erh lt brigens automatisch die Endung ter Zum Wiederherstellen eines gespeicherten Territoriums klicken Sie auf den Territorium ffnen Button zweiter Button von links Es erscheint eine Dateiauswahl Dialogbox In der Mitte werden die Namen der existierenden Dateien mit abgespeicherten Territorien angezeigt Klicken Sie mit der Maus auf den Dateinamen in dem das Territorium abgespeichert ist das Sie laden m chten Wenn Sie danach auf den OK Button klicken schlie t sich die Dateiauswahl Dialogbox und das abgespeicherte
62. erl utert Eine umfassendere bersicht ber die Systempr dikate in PROLOG kann beispielsweise in der erweiterten Literatur Fehler Verweisquelle konnte nicht gefunden werden Fehler Verweisquelle konnte nicht gefunden werden Fehler Verweisquelle konnte nicht gefunden werden gewonnen werden Zu der ersten Kategorie geh ren solche Systempr dikate die keine explizite logische Bedeutung besitzen und nur durch ihre Ausf hrung gewisse Seiteneffekte im System hervorrufen Dazu geh ren in erster Linie die Pr dikate zur Steuerung der Ein und Ausgabe in der Konsole Pr dikate zu Erstellung und Verwaltung von Dateien im Betriebssystem sowie einige allgemeinen Funktionen des Interpreters Nachfolgend werden einige davon aufgelistet listing Auflisten aller bekannten Programmklauseln listing P Auflisten aller bekannten Programmklauseln f r die Prozedur P read T Einlesen eines Terms T write T Ausgabe des Terms T auf die Konsole tab N Ausgabe von N Leerzeichen ni N chste Ausgabe erfolgt in einer neuen Zeile see F Umschalten des Eingabestroms auf die Datei F seen Schlie en des aktuellen Eingabestroms Umschalten auf die 76 tell F told trace notrace debug nodebug Konsole Schlie en des Ausgabestroms auf die Datei F Der aktuelle Ausgabestrom wird geschlossen Umschalten auf die Konsole Ein Ausschalten des tracing Mode Ein Ausschalten des debugging Mode Die zweite Kategorie beinhaltet Pr dikate zu
63. erpretiert d h wenn sie Fehler enthalten werden Sie dar ber zur Ausf hrungszeit informiert 7 4 Grundlagen und Befehle 7 4 1 Territoriumsliste Die grundlegende Datenstruktur des Scheme Hamster Modells ist die Territoriumsliste Sie spiegelt das aktuelle Territorium des Simulation Fensters wieder Sie ist folgenderma en aufgebaut in EBNF lt territorium gt lt feld liste gt lt hamster liste gt lt feld liste gt lt reihe liste gt lt reihe liste gt lt kachel gt lt kachel gt u Kachel lt koerner auf kachel gt in Mauer Di lt hamster liste gt s Hamster lt reihe gt lt spalte gt lt koerner im maul gt lt blickrichtung gt W m lt blickrichtung gt Nord Ost 61 Sued West lt koerner auf kachel gt ist positiver int Wert lt reihe gt ist positiver int Wert oder 0 lt spalte gt ist positiver int Wert oder U lt koerner im maul gt ist positiver int Wert Der Ursprung des Territoriums befindet sich in der linken oberen Ecke Die Nummerierung von Spalten und Zeilen beginnt bei 0 Ein Beispiel Das folgende Territorium besteht aus zwei Reihen und drei Spalten In der ersten Spalte liegen auf beiden Kacheln keine K rner In der zweiten Spalte liegen auf beiden Kacheln drei K rner In der dritten Spalte befinden sich ausschlie lich Mauern Der Hamster steht mit Blickrichtung Nord und 3 K rnern im Maul a
64. etzen Was es damit auf sich hat entnehmen Sie bitte Kapitel 14 von Band 2 des Java Hamster Buches Als Anf nger m ssen Sie sich hiermit nicht auseinandersetzen 4 4 Verwalten und Gestalten von Hamster Territorien Das Hamster Territorium befindet sich im Simulation Fenster Es umfasst standardm ig 10 Reihen und 10 Spalten Der Standard Hamster das ist der blaue Hamster steht auf der Kachel ganz oben links also der Kachel mit den Koordinaten 0 0 Er hat 0 K rner im Maul und schaut nach Osten Oberhalb des Hamster Territoriums befindet sich eine Toolbar mit Graphik Buttons siehe auch Abbildung 17 Die ersten drei Buttons von links dienen zum Verwalten von Hamster Territorien Mit den Buttons vier bis neun kann das Hamster Territorium umgestaltet werden Mit dem zehnten und elften Button l sst sich das Erscheinungsbild des Territoriums ver ndern Die restlichen Buttons sowie der Schieberegler haben beim Ausf hren von Hamster Programmen eine Bedeutung Neues Territorium Mauer setzen Territorium speichern Kachel l schen Stopp Hamster versetzen R cksetzen R 1 Biel Wa e EX eo ailku h Territorium ffnen K rner setzen K rner im Maul Verkleinern Pause Geschwindigkeit Hamster drehen Vergr ern Ausf hren Abbildung 17 Toolbar des Simulation Fensters 39 4 4 1 Ver ndern der Gr e des Hamster Territoriums Durch Anklicken des Neues Territorium Buttons e
65. gbox zugeordnete Aktion ausgel st Durch Anklicken des Abbrechen Buttons wird eine Dialogbox geschlossen ohne dass irgendwelche Aktionen ausgel st werden Spalten 10 Zeilen 10 Abbildung 10 Dialogbox mit Eingabefeldern 29 4 1 9 Dateiauswahl Dialogbox Dateiauswahl Dialogboxen sind spezielle Dialogboxen die zum Speichern und ffnen von Dateien benutzt werden siehe Abbildung 11 Sie spiegeln im Prinzip das Dateisystem wider und enthalten Funktionalit ten zum Verwalten von Dateien und Ordnern LG rnen x Suchen in C Programme x rs ei cl BE CC beispielprogramme C paul G AllroundHamster Bi MeinErstesHamsterProgramm G SammelHamster G SammelndeHamster Dateiname MeinErstesHamsterProgramm ham Dateityp Programm ffnen Abbrechen Abbildung 11 Dateiauswahl Dialogbox Im mittleren Bereich einer Dateiauswahl Dialogbox erscheinen alle Dateien und Unterordner des aktuellen Ordners Sie sind durch unterschiedliche Symbole repr sentiert Der eigentliche Zweck von Dateiauswahl Dialogboxen ist wie der Name schon sagt die Auswahl einer Datei Klickt man auf eine Datei erscheint der Name automatisch im Eingabefeld Dateiname Dort kann man auch ber die Tastatur einen Dateinamen eingeben Anschlie end wird nach Dr cken des OK Buttons die entsprechende Datei ge ffnet bzw gespeichert Dateiauswahl Dialogboxen stellen jedoch no
66. gegen ber imperativen Programmiersprachen sind e Programme funktionaler Programmiersprachen werden als mathematische Funktionen betrachtet e Funktionen werden als Daten behandelt e Seiteneffekte von Funktionen werden stark eingeschr nkt e Es gibt keine Variablen e Es gibt keine Schleifen e Rekursion spielt in der funktionalen Programmierung eine entscheidende Rolle e Zentrale Datenstruktur der funktionalen Programmierung ist die Liste 59 Funktionale Programmiersprachen werden insbesondere im Bereich der K nstlichen Intelligenz f r mathematische Beweissysteme und f r Logikanwendungen eingesetzt Weitere Eigenschaften der funktionalen Programmierung finden Sie bspw unter http de wikipedia org wiki Funktionale Programmierung 7 2 Die Programmiersprache Scheme Die erste funktionale Programmiersprache die in den 60er Jahren entwickelt wurde hie LISP Von Lisp wurden viele Dialekte entwickelt Die beiden Dialekte die zum Standard geworden sind hei en Common Lisp und eben Scheme d h Scheme ist ein standardisierter Lisp Dialekt Scheme ist keine rein funktionale Programmiersprache Vielmehr enth lt sie auch Konzepte der imperativen Programmierung Schleifen Variablen Um funktional programmieren zu lernen sollten Sie sich jedoch auf die funktionalen Konzepte beschr nken und die imperativen Konzepte nicht benutzen Im Internet finden sich eine Reihe von Informationen ber und Online Tutorials zu Scheme e
67. heme AA SchemeBeispiele l void main while vornFrei vor rechtsUmn void kehrt linksUn 10 linksUm 13 void rechtsUm LA kehrt 15 linksUm 16 17 Spalte Dateibaum Eingabebereich Abbildung 13 Editorfenster Im linken Bereich sehen Sie den Dateibaum Den Sourcecode von Hamster Programmen m ssen Sie in solchen Dateien abspeichern Dateien sind dabei logische Speicherbeh lter auf der Festplatte Ihres Computers Der Dateibaum zeigt Ihnen an welche Dateien bereits existieren Neben Dateien enth lt der Dateibaum auch Ordner Ordner sind spezielle Ablagebereiche um Dateien strukturiert abspeichern zu k nnen Den Hauptteil des Editor Fensters nimmt der Eingabebereich ein Hier k nnen Sie Programme eintippen Unten werden dabei die aktuelle Zeile und Spalte eingeblendet Ganz oben im Editor Fenster gibt es eine Men leiste F r das Verwalten und Editieren von Programmen sind die beiden Men s Dateien und Bearbeiten wichtig Unterhalb der Men leiste ist eine spezielle Toolbar zu sehen Ober die Sie alle Funktionen der Men s auch schneller erreichen und ausf hren k nnen Schieben Sie einfach mal die Maus ber die Buttons Dann erscheint jeweils ein Tooltipp der die Funktionalit t des Buttons anzeigt siehe auch Abbildung 14 32 Wiederherstellen Debugger aktivieren Speichem Ausschneiden Schlie en Ausf hren Schritt
68. hr 72 betrachtet werden Die Auswertung der Regel w rde in diesem Fall mit einer negativen Antwort false beendet werden Bei der Abarbeitung einer Regel w hrend der Programmausf hrung setzt PROLOG f r die Definition der Regel Klauseln die deklarative Sichtweise voraus 8 2 2 Operationale Semantik Bei der Ausf hrung eines Programms f hrt das PROLOG System f r eine zuvor formulierte Zielklausel mehrere Berechnungsschritte durch Die angegebene Zielklausel wird vorerst nur als These betrachtet die im Nachfolgenden entweder zu beweisen oder zu widerlegen ist Das PROLOG System versucht daraufhin zu pr fen ob die angegebene Zielklausel sich logisch aus den Pr dikaten des vorliegenden Programms ableiten l sst Der erste Schritt beim Abarbeiten einer Abfrage besteht darin die einzelnen Subterme der Zielklausel zur erf llen Daf r kommt in PROLOG der Unifikationsalgoritnmus zum Einsatz Der nachfolgende Abschnitt beschreibt das Wesen und die Funktionsweise der Unifikation 8 2 2 1 Unifikation Die Unifikation bezeichnet ein Vorgehen bei welchem versucht wird zwei Terme durch Auswahl g ltiger Substitutionen zur Deckung zu bringen Zwei Terme t und t sind dabei unifizierbar wenn es eine Substitution s gibt sodass gilt s t s t Das Ziel einer Unifikation liegt in der Suche nach einer solchen Substitution die am wenigsten einschr nkend auf die beiden Terme t und t wirkt Das hei t alle Variablen innerhalb eines Te
69. ht damit folgenderma en aus void main pickAll while frontIsClear move pickAll void pickAll while grainAvailable pickGrain Das folgende Programm skizziert ein objektorientiertes englisches Hamster Programm class MyHamster extends Hamster MyHamster Hamster h super h getRow h getColumn h getDirection h getNumberOfGrains void turnRight cthis turnLeft ctchis turnLeft this turnLefi ne IT IT IT ne void main MyHamster paul new MyHamster Hamster getDefaultHamster try while true paul move catch WallInFrontException exc paul turnRight paul write Number of Hamsters Territory getNumberOfHansters Prinzipiell kann man brigens auch die deutschen und englischen Befehle mischen 58 7 Scheme In Band 1 des Hamster Buches Programmieren spielend gelernt mit dem Java Hamster Modell werden die Programmiersprachen verschiedenen Programmierparadigmen zugeordnet Java wird dabei in die Klasse der imperativen objektorientierten Sprachen eingeordnet Ich versichere Ihnen wenn Sie die imperativen Konzepte von Java verstanden haben Prozeduren Anweisungen Schleifen Variablen werden Sie ohne gro e Probleme auch andere imperative Programmiersprachen wie Pascal oder Modula 2 erlernen k nnen Im Prinzip unterscheiden diese sich nur durch eine andere Syntax von der Prog
70. iable ist Liefert jeweils den Wert der gew hlten arithmetischen Funktion Zu der vierten Kategorie den Steuerungs und Metapr dikaten geh ren Pr dikate zur allgemeinen Programmsteuerung sowie eine Menge von Pr dikaten zur Manipulation der PrRoLOG Datenbank Diese Pr dikate finden in der Regel den h ufigsten Einsatz im Programm Die nachfolgenden Beispiele sind nur ein kleiner Ausschnitt aus der Gesamtheit aller Steuerungs und Metapr dikate Eine vollst ndigere Auflistung kann beispielsweise im Buch von Ivan Bratko Fehler Verweisquelle konnte nicht gefunden werden eingesehen werden consult F reconsult F Die Datei F wird eingelesen und die PROLOG Datenbank um die im Programm befindlichen Klauseln erweitert Analog zur consult Klauseln mit identischer Signatur werden dabei aber berschrieben aktualisiert assert C Die Klausel C wird am Ende des aktuellen Programms Wissensbasis hinzugef gt retract C Das erste Vorkommen der Klausel C im Programm retractall F PRoLoG Datenbank wird gel scht Alle Vorkommen der Klausel C im Programm werden gel scht abolish P N Eine Prozedur P mit der Stelligkeit N wird vollst ndig aus dem Programm gel scht not G Ist wahr wenn das Pr dikat G nicht erf llbar ist true Ein Pr dikat das immer erf llt ist fail Schl gt immer fehl Erzwingt ein Backtracking Schritt Das Cut Pr dikat ist immer erf llt Verhindert sp teres Backtracking P Q Oder Ver
71. icht genau spezifiziert Dabei kann es sich an Stelle von X und Y noch um beliebige auch nicht numerische Terme handeln Der dritte Term definiert eine Beziehung liebt 2 zwischen den Atomen hamster und koerner Die Reihenfolge der Angabe der Atome ist dabei sehr wichtig die ein mehrstelliger PROLOG Term nicht kommutativ ist Die komplexen Terme werden in PROLOG wie bereits angedeutet dazu verwendet Beziehungen zwischen Objekten und deren Eigenschaften herzustellen und den vorliegenden Daten eine bessere Strukturierung zu verleihen In diesem Fall k nnen komplexe Terme auch einfach als Pr dikate bezeichnet Zus tzlich k nnen komplexe Terme aber auch dazu verwendet Anfragen an das PROLOG System zu formulieren Einige Argumente eines komplexen Terms werden dabei als Variablen deklariert mit der Aufgabe an PROLOG entsprechende Belegungen f r diese zu finden Wird ein komplexer Term zur Abfrage an PROLOG verwendet so handelt es sich dabei um einen Prozedur Aufruf Listen Eine der wichtigsten und meist genutzten Datenstrukturen in PROLOG ist die Liste Dabei handelt es sich um eine rekursiv definierte Struktur die zur Darstellung einer beliebig langen geordneten Menge von Termen verwendet wird Prinzipiell sind Listen nur spezielle komplexe Terme und k nnen in PROLOG durch die bliche allgemeine Notation eines Terms ausgedr ckt werden Eine Liste aus drei Elementen a b und c kann wie folgt geschrieben werden a e
72. ie Entwicklung zur Entstehung von sogenannten constraint logischen Programmiersprachen Constraint Logic Programming die als Erweiterung der logischen Programmierung angesehen werden k nnen Diese Sprachen gewinnen heute eine immer gr ere Bedeutung in der Forschung und in der Anwendung Gegen ber den traditionellen prozeduralen Programmiersprachen wie beispielsweise JAVA oder C hat die Programmierung in PROLOG einen ganz anderen Charakter Wie bereits erw hnt orientiert sich PROLOG an den M glichkeiten einer eher abstrakteren Wissensdarstellung mit Hilfe des Pr dikatenkalk ls erster Stufe anstatt sich bei der traditioneller Rechnerarchitektur wie es bei den anderen Sprachen der Fall ist zu Institute for New Generation Computer Technology 68 orientieren Dabei ndert sich der Programmierstil f r PROLOG im Vergleich zu den Letzteren sehr stark Hier wird das eigentliche Problem in den Vordergrund gestellt Anstatt sich beim Entwurf dem algorithmischen Ablauf des Programms zu widmen und dieses danach zu strukturieren beschreiben die PROLOG Programme im Wesentlichen nur was das Ziel eines Programms bzw Programmteils darstellt Dabei wird also nicht unbedingt extra spezifiziert wie dieses Ziel erreicht werden soll Ein PROLOG Programm repr sentiert im Allgemeinen lediglich nur das Wissen das dazu notwendig w re mit Hilfe logischer Schlussfolgerungen an die L sung des Problems bzw der an ProLoc Interpreter ges
73. ie Klassen aus Anhang A von Band 2 des Java Hamster Buches Sie sind pseudom ig implementiert und sollen dazu dienen dass fortgeschrittene Hamster Programmierer auch andere Entwicklungsumgebungen wie bspw Eclipse zum Eintippen und Compilieren von Hamster Programmen nutzen k nnen 2 3 Hamster Simulator unter JDK 1 4 Die veraltete Java Version 1 4 wird nicht weiter unterst tzt 2 4 Starten des Hamster Simulators Nachdem Sie eine Java Laufzeitumgebung sowie den Hamster Simulator wie oben beschrieben auf Ihrem Rechner installiert haben k nnen Sie den Simulator starten Dies geschieht folgenderma en 15 e Unter Windows F hren Sie mit der Maus einen Doppelklick auf die Datei hamstersimulator jar oder die Datei hamstersimulator bat aus e Unter Linux und Solaris Rufen Sie in dem Ordner in dem sich die Datei hamstersimulator jar befindet folgenden Befehl auf e java jar hamstersimulator jar e Unter Macintosh OS X F hren Sie mit der Maus einen Doppelklick auf die Datei hamstersimulator jar aus Anschlie end ffnen sich zwei Fenster die mit Editor und Simulation betitelt sind Herzlichen Gl ckwunsch Sie k nnen mit der Entwicklung von Hamster Programmen beginnen Eine weitere Alternative besteht darin ein Eingabeaufforderung Fenster zu ffnen sich in den Ordner zu begeben in dem sich die Datei hamstersimulator jar befindet und dort folgenden Befehl einzugeben java jar hamstersimulator jar 16
74. iesen Button dreht sich der Standard Hamster um 90 Grad linksum 4 4 4 Abfragen und Festlegen der K rneranzahl im Maul des Stan dard Hamsters Um die Anzahl an K rnern im Maul des Standard Hamster festzulegen klicken Sie bitte den K rner im Maul Button sechster Toolbar Button von links an Es ffnet sich eine Dialogbox mit einem Eingabefeld In diesem Eingabefeld erscheint die aktuelle Anzahl an K rnern im Maul des Standard Hamsters Sie k nnen nun in das Eingabefeld die gew nschte Anzahl eingeben Klicken Sie anschlie end den OK Button um die Eingabe zu best tigen Die Dialogbox schlie t sich und der Standard Hamster hat die eingegebene Anzahl an K rnern im Maul 4 4 5 Platzieren von K rnern auf Kacheln des Hamster Territorium Um auf einzelnen Kacheln des Hamster Territoriums K rner zu platzieren m ssen Sie zun chst im Simulation Fenster in der Toolbar den K rner setzen Button siebter Toolbar Button von links anklicken Dadurch aktivieren Sie die K rner Setzen Funktion Sie erkennen dies daran dass der Hintergrund des Buttons nun dunkler erscheint Solange die Funktion aktiviert ist k nnen Sie nun durch Anklicken einer Kachel die K rneranzahl auf dieser Kachel festlegen Nach Anklicken der entsprechenden Kachel erscheint eine Dialogbox mit einem Eingabefeld in das Sie die gew nschte Anzahl an 40 K rnern eingeben k nnen Nach Klicken des Ok Buttons schlie t sich die Dialogbox und die K rner erscheine
75. igsten benutzten Men items darstellen Denslela pe ale ic Programme er 8 Toolbar 4 1 6 Popup Men Popup Men s sind spezielle Men s die bestimmten Elementen auf dem Bildschirm zugeordnet sind siehe Abbildung 9 Man ffnet sie dadurch dass man das Objekt zun chst anklickt und danach nochmal die rechte Maustaste dr ckt Genauso wie bei normalen Men s erscheint dann eine Box mit Men items 28 DBckdKdedkKAleiKAS KRIER WeinErstes paul SsammelHa Sammelnde IT L schen Ia Kopieren E Dei Umbenennen Abbildung 9 Popup Men 4 1 7 Eingabefeld Eingabefelder dienen zur Eingabe von Zeichen siehe Abbildung 10 Positionieren Sie dazu den Mauscursor auf das Eingabefeld und klicken Sie die Maus Anschlie end k nnen Sie ber die Tastatur Zeichen eingeben die im Eingabefeld erscheinen 4 1 8 Dialogbox Beim Ausl sen bestimmter Aktionen erscheinen so genannte Dialogboxen auf dem Bildschirm siehe Abbildung 10 Sie enthalten in der Regel eine Menge von graphischen Objekten wie textuelle Informationen Eingabefelder und Buttons Wenn eine Dialogbox auf dem Bildschirm erscheint sind alle anderen Fenster des Programms f r Texteingaben oder Mausklicks gesperrt Zum Schlie en einer Dialogbox d h um die Dialoxbox wieder vom Bildschirm verschwinden zu lassen dienen in der Regel eine Menge an Buttons die unten in der Dialogbox angeordnet sind Durch Anklicken eines OK Buttons wird dabei die der Dialo
76. ipulieren Bei jedem Klick auf einen dieser Buttons erscheint es vergr ert bzw verkleinert Eine Verkleinerung ist dabei nur bis zu einem bestimmten Ma m glich so dass man auch noch etwas erkennen kann 4 5 Ausf hren von Hamster Programmen Ausgef hrt werden Hamster Programme im Simulation Fenster Zur Steuerung dienen dabei die Graphik Buttons sowie der Schieberegler im rechten Teil der Toolbar oberhalb des Hamster Territoriums siehe auch Abbildung 18 Alle Steuerelemente befinden sich zus tzlich auch im Editor Fenster R cksetzen Geschwindigkeit LU all ED word ame Ausf hren Stopp Abbildung 18 Toolbar des Simulation Fensters 4 5 1 Starten eines Hamster Programms Bevor ein Hamster Programm ausgef hrt werden kann muss es im Editor Fenster ge ffnet werden und sein Sourcecode im Eingabebereich des Editor Fensters erscheinen Au erdem muss es nat rlich erfolgreich kompiliert worden sein Gestartet werden kann dieses Programm dann durch Anklicken des Ausf hren Buttons dritter Toolbar Button des Simulation Fensters von rechts Es k nnen nur solche Programme ausgef hrt werden die in Dateien vom Typ imperatives Programm oder objektorientiertes Programm abgespeichert sind also keine separaten Klassen Befindet sich aktuell eine Datei mit einer separaten Klasse im Eingabebereich erscheint der Ausf hren Button auch ausgegraut und kann nicht angeklickt werden
77. ipuliert werden Einzelheiten entnehmen Sie bitte Abschnitt 5 Es gibt ein Property namens logfolder ber das der Ordner in dem die beiden Dateien sysout txt und syserr txt erzeugt werden ge ndert werden kann Einzelheiten entnehmen Sie bitte Abschnitt 5 Mitte des Jahres 2008 erscheint im Teubner Verlag ein drittes Buch zum Java Hamster Modell in dem in die parallele Programmierung mit Java Threads eingef hrt wird Der Hamster Simulator ab Version 2 5 erlaubt die Ausf hrung solcher paralleler Hamster Programme Die Beispielprogramme des dritten Bandes sind bereits unter beispielprogramme einseh und ausf hrbar Prinzipiell ist es m glich mit dem Hamster Simulator einen Lego Mindstorms Roboter zu steuern Da der Roboter jedoch oft noch ein wenig planlos heruml uft wird die endg ltige Freischaltung dieses Features auf die Version 2 6 des Hamster Simulators verschoben 1 5 nderungen in Version 2 4 gegen ber 2 3 Neben der Korrektur einiger kleiner Fehler sind zwei wesentliche Erweiterungen am Hamster Simulator vorgenommen worden Es wurde das Property runlocally eingef hrt Standardm ig ist dies auf false gesetzt so dass sich gegen ber den alten Versionen des Hamster Simulator nichts ndert Hamster Programme werden in einer neu gestarteten JVM ausgef hrt Setzt man das Property jedoch auf true passiert folgendes Hamster Programme werden in derselben JVM ausgef hrt wie der Simulator selbst Hi
78. itte gelb der vierte pink und der f nfte violett Alle weiteren Hamster haben ein graues Erscheinungsbild F hrt ein Hamster einen Hamster Befehl aus wird dieser im Ausgabebereich des Simulation Fensters ausgegeben Zur Unterscheidung welcher Hamster den Befehl ausgef hrt hat erfolgt die Ausgabe in der Farbe des entsprechenden Hamsters F hrt in objektorientierten Programmen ein Hamster einen schreib oder lies Befehl aus ffnet sich eine Dialogbox Der Ausgabe bzw Aufforderungsstring erscheint darin wiederum in der Farbe des entsprechenden Hamsters Beim Befehl schreib pausiert das Programm so lange bis der Benutzer den OK Button der Dialogbox angeklickt hat Bei einem liesZahl oder liesZeichenkette Befehl kann der Benutzer eine Zahl bzw eine Zeichenkette eingeben und muss anschlie end den OK Button dr cken Dann wird der eingegebene Wert an das Programm weitergegeben Gibt der Benutzer bei einem liesZahl Befehl keine g ltige Zahl ein bspw a2d liefert der Befehl den Wert o Normalerweise sind Dialogboxen exklusive Fenster die es wenn sie ge ffnet sind nicht erlauben in anderen Fenster Mausklicks zu t tigen Die Dialogboxen der schreib und lies Befehle sind in diesem Sinne keine richtigen Dialogboxen W hrend sie ge ffnet sind k nnen auch andere Funktionalit ten bspw Abbruch der Programmausf hrung durch Anklicken des Stopp Buttons ausgef hrt werden 44 Treten bei der Ausf hrung eines Programms La
79. ken m ssen die ihnen von den Programmiersprachen vorgegeben werden Gerade am Anfang str men oft so viele inhaltliche und methodische Neuigkeiten auf sie ein dass sie das Wesentliche der Programmierung n mlich das L sen von Problemen aus den Augen verlieren 1 1 Das Hamster Modell Das Hamster Modell ist mit dem Ziel entwickelt worden dieses Problem zu l sen Mit dem Hamster Modell wird Programmieranf ngern ein einfaches aber m chtiges Modell zur Verf gung gestellt mit dessen Hilfe Grundkonzepte der imperativen und objektorientierten Programmierung auf spielerische Art und Weise erlernt werden k nnen Programmierer entwickeln so genannte Hamster Programme mit denen sie virtuelle Hamster durch eine virtuelle Landschaft steuern und bestimmte Aufgaben l sen lassen Die Anzahl der gleichzeitig zu ber cksichtigenden Konzepte wird im Hamster Modell stark eingeschr nkt und nach und nach erweitert Prinzipiell ist das Hamster Modell programmiersprachenunabh ngig Zum praktischen Umgang mit dem Modell wurde jedoch bewusst die Programmiersprache Java als Grundlage gew hlt Java auch als Sprache des Internet bezeichnet ist eine moderne Programmiersprache die sich in den letzten Jahren sowohl im Ausbildungsbereich als auch im industriellen Umfeld durchgesetzt hat Zum Hamster Modell existieren drei B cher In dem ersten Buch Programmieren spielend gelernt mit dem Java Hamster Modell werden allgemeine Grundlagen der Prog
80. kn pfung zweiter Prozeduren Weiterhin bieten die meisten PROLOG Systeme vordefinierte Systempr dikate f r den Umgang mit Listen Konstrukten Diese Pr dikate k nnen aber auch relativ leicht manuell im eigenen Programm nachimplementiert werden Die am h ufigsten verwendeten Pr dikate sind member X L append L1 L2 L3 Pr ft ob X ein Element der Liste L Konkateniert die Listen L1 und L2 zusammen in der Ergebnisliste L3 reverse L1 L2 L2 ist die invertierte Liste von L1 last X L Liefert X als letztes Element der Liste L 78 8 2 4 Trace Boxenmodell In PROLOG gibt es eine M glichkeit sich die Einzelheiten der Ausf hrung einer Abfrage n her anzuschauen und somit das Programm auf eventuelle Fehler zu untersuchen Mit Hilfe des trace Pr dikats kann das ProLOoG System in den sogenannten Protokollierungs Modus versetzt werden W hrend des tracing Mode macht das System f r jeden ausgef hrten Schritt zus tzliche Ausgaben auf die Konsole Anhand dieser Ausgaben beh lt der Programmierer die bersicht ber den aktuellen Ausf hrungsfortschritt und kann durch Interaktion mit dem System die Abarbeitung des aktuellen Programms in eine von ihm gew nschte Richtung lenken Die im tracing Modus get tigte Ausgabe des PROLOG Systems wird durch das Boxenmodell beschrieben Das Boxenmodell stellt ein vereinfachtes Modell zur grafischen Visualisierung der Ausf hrung einer PRoLOG Klausel dar Eine einzelne Box repr sentiert dab
81. lKoernerNeu is 1 Aktualisiere die Datenbank retract hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaul assert hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaulNeu assert korn Reihe Spalte AnzahlKoernerNeu Rufe gib beim Hamster auf write prologhamster gib ttyflush read Return call Return gib SS Rufe gib beim Hamster auf write prologhamster gib ttyflush read Return call Return false kornDa hamster Reihe Spalte _ _ korn Reihe Spalte AnzahlKoerner AnzahlKoerner gt 0 write prologhamster kornDa ttyflush read Return call Return maulleer hamster _ _ _ AnzahlKoernerImMaul AnzahlKoernerImMaul 0 write prologhamster maulleer ttyflush read Return call Return 84 8 4 Prolog Hamster Programme Ein Prolog Hamster Programm hat immer folgende Gestalt Eintrittspunkt des Programms main lt ziele gt main 1 ist das Pr dikat das beim Ausf hren eines Prolog Hamster Programms aufgerufen wird Im folgenden Prolog Hamster Programm l uft der Hamster bis zur n chsten Wand Eintrittspunkt des Programms main laufeZurWand laufeZurWand vornFrei vor laufeZurWand laufeZurWand 8 5 Prolog Konsole Die PrologKonsole bietet einen alternativen Weg zur Steuerung des Hamsters Sie gibt dabei dem Programmierer die M glichkeit direkt mit dem PROLOG System zu interagieren Dabei kann ber
82. m Namen ein einzelner blauer Pfeil vorangestellt bei objektorientierten Programmen drei Pfeile in den Farben blau gelb und rot und Klassen erkennen Sie an einem blauen Pfeil in einem Rechteck 4 2 2 ndern eines existierenden Hamster Programms Um ein Hamster Programm zu ndern m ssen Sie es zuvor ffnen so dass der Sourcecode im Eingabebereich erscheint Hierf r haben Sie mehrere M glichkeiten Zum einen k nnen Sie den Offnen Button nutzen zweiter Toolbar Button von links Es erscheint eine Dateiauswahl Dialogbox in der sie die entsprechende Datei ausw hlen k nnen Eine schnellere Alternative stellt das Anklicken des entsprechenden Namens im 34 Dateibaum dar Im Eingabebereich k nnen Sie nun die gew nschten nderungen am Sourcecode vornehmen und anschlie end mit Hilfe des Speichern Buttons oder des Speichern Ale Buttons abspeichern 4 2 3 L schen eines existierenden Hamster Programms M chten Sie ein Hamster Programm wieder l schen klicken Sie zun chst den entsprechenden Namen im Dateibaum an Er wird durch ein blaues Rechteck hinterlegt Klicken Sie anschlie end die rechte Maustaste Es erscheint ein Popup Men in dem Sie das Men item L schen anklicken Damit ist das Programm unwiderruflich gel scht der Name verschwindet aus dem Dateibaum und falls das Programm ge ffnet war verschwindet auch der Sourcecode inklusive Dateireiter aus dem Eingabebereich 4 2 4 Umbenennen eines existierend
83. mulator in die englisch sprachige Welt integriert worden Das betrifft zun chst die Benutzungsoberfl che Durch Einstellen der Property language auf den Wert en erscheinen alle Ausgaben in englischer Sprache Aber nicht nur die Oberfl che auch das Hamster Modell selbst wurde angepasst Bswp versteht der Hamster ab sofort nicht mehr nur den Befehl vor sondern auch den Befehl move der dasselbe bewirkt Der Hamster springt eine Kachel in Blickrichtung nach vorne Im Folgenden wird ein berblick ber die entsprechenden englischen Befehle bzw Klassen des Hamster Modells gegeben vor move linksUm turnleft nimm pickGrain gib putGrain vornFrei frontlIsClear kornDa grainAvailable maulleer mouthEmpty liesZahl readNumber liesZeichenkett readString schreib write init init getReihe getRow getSpalte getColumn getBlickrichtung getDirection getStandardHanster getDefaultHamster getAnzahlKoerner getNumberOfGrains getAnzahlHanmster getNumberOfHansters Territorium Territory HamsterInitialisierungsException HamsterInitializationExce ption HamsterNichtIn H tialisiertException HamsterNotInitializedExce ption KachelLeerException TileEmptyException MauerDaException WalllnFrontException MaulLeerException MouthEmptyException 57 Ein imperatives englisches Hamster Programm bei dem der Hamster alle vor ihm liegenden K rner einsammeln soll sie
84. n Bereich der rechte Variablen Bereich siehe auch Abbildung 20 Funktionen Bereich Variablen Bereich Datei Bearbeiten Kompilieren Debugger men d ve g Balam xta ae Arne g E Programme Programm Funktion Zeile CJ regeln irktance ofkalah Spielregelndi AllroundHamstik gt kalah Schieds l ntrolliereTer 190 CH spielerA instance of hamsterkalah Str A e Dibeispielprogr b kalah Schieds iftSpielzugOk 62 Y spielstaerke 0 EF bandi kalah KalahSp dpielen 37 Be e E band2 HamsterKalah ihain 8 istSpielera true an m regeln instance of kalah Spielrege 9 Ei hamst IN reihe 0 al Ab E S Str IN spalte 7 zj Dw H D Sw Spieler Spielregeln Spielzug l 3 Hams MenschHamster SchiedsrichterHamster D Spielbrett Poh alar WertSpielbrett P WertSpielzug AllraundHamster Kalahspiel GI Ka D AbfrageSchiedsrichterHamster Hamsterkalah gt StrategieHamster 5 identisch sind a 5 n protected boolean kontrolliereTerritorium Fan G Sp this vor GI Sp for int i Spielbrett ANZAHL _MULDEN_PRO_SPIELER 1 i gt 0 i GI Sp if this brett liefere nzahlKoerner i GI Spie Territorium get nzahlKoerner this getReihe this get palte Kalah y gt MeinErstesH return false 00Programm u C paul this vor 2 El Spalte Abbild
85. n auf der Kachel Dabei gilt Bei einer K rneranzahl bis 12 werden entsprechend viele K rner auf der Kachel angezeigt Bei einer K rneranzahl gr er als 12 werden immer nur 12 K rner angezeigt Wie viele K rner tats chlich auf der Kachel liegen k nnen Sie ermitteln wenn Sie den Mauscursor auf die entsprechende Kachel verschieben Es erscheint ein Tooltipp in dem die Koordinaten der Kachel sowie die genaue K rneranzahl ersichtlich sind Es ist auch m glich die Anzahl an K rnern auf mehreren Kacheln gleichzeitig festzulegen Klicken Sie dazu die Maus auf einer der Kacheln und ziehen Sie den Mauscursor bei gedr ckter Maustaste ber die anderen Kacheln Alle betroffenen Kachel werden zun chst durch ein Korn in der Mitte markiert Wenn Sie dann die Maustaste loslassen erscheint die Dialogbox zur Eingabe der K rneranzahl Die Anzahl an K rnern die sie jetzt eingeben wird dann auf allen markierten Kacheln abgelegt Eine Deaktivierung der K rner Setzen Funktion ist durch Anklicken des Hamster versetzen Mauer setzen oder Kachel l schen Buttons und der damit verbundenen Aktivierung der entsprechenden Funktion m glich 4 4 6 Platzieren von Mauern auf Kacheln des Hamster Territorium Um auf einzelnen Kacheln des Hamster Territoriums Mauern zu platzieren m ssen Sie zun chst im Simulation Fenster in der Toolbar den Mauer setzen Button achter Toolbar Button von links anklicken Dadurch aktivieren Sie die Mauer
86. n und Installation des Hamster Simulators Auf der Hamster Website http www java hamster modell de befindet sich im Bereich Simulator eine Datei namens hamstersimulator v26 01 zip zip Dateien sind Dateien die mehrere andere Dateien komprimiert speichern Die Datei hamstersimula tor v26 01 zip m ssen Sie auf Ihren Rechner laden und anschlie end entpacken Die Datei enth lt eine Reihe von Dateien und vier Ordner Die wichtigsten sind Datei hamstersimulator jar Enth lt den ausf hrbaren Hamster Simulator Datei hamstersimulator bat Alternative zum Starten des Hamster Simu lators unter Windows Datei handbuch pdf Das Handbuch zum Hamster Simulator im PDF Format Dateihamster properties Datei zum Einstellen bestimmter Eigenschaften Ordner Programme Enth lt standardm ig alle Hamster Programme der zwei Hamster B cher In diesem Ordner werden von Ihnen entwickelte Hamster Programme abgespeichert Dieser Ordner muss sich immer in demselben Ordner befinden in dem auch die Dateien hamstersimulator jar und hamstersimulator bat liegen Ordner lib Enth lt diverse ben tigte Java Bibliotheken Insbesondere die Datei tools jar in dem der Java Compiler steckt Ordner handbuch Das Handbuch im HTML Format Ordner HamsternMitBluelJ Anleitung wie man mit der Entwicklungsumgebung BlueJ Hamster Programme entwickeln und ausf hren kann inkl einiger Beispielprojekte Ordner pseudo hamsterklassen Hier liegen d
87. ntergrund f r diese Erweiterung ist der dass auf einigen Linux und Macintosh Rechnern Fehler beim Starten eines Hamster Programms auftraten bzw es nach dem Dr cken des Run Buttons bis zu einer Minute dauerte bis der Hamster tats chlich loslief Die Hamster Programmierer bei denen dieses Problem auftritt m ssen also einfach dieses Property auf false setzen womit sich das Problem gel st hat Nachteil Im Modus runlocally true ist es nicht m glich den Debugger zu nutzen und die Benutzung des CLASSPATH ist ebenfalls nicht m glich Weitere Infos siehe in Abschnitt 5 Der Hamster Simulator ist nun auch komplett in englischer Sprache nutzbar Komplett bedeutet sowohl die Oberfl che des Simulators als auch das Hamster Modell selbst wurden an die englische Sprache angelehnt Hierzu muss nur das Property language auf den Wert en gesetzt werden Standardm ig steht der Wert auf de Deutsch Weitere Infos finden sich in Abschnitt 6 1 6 nderungen in Version 2 3 gegen ber 2 2 Die Version 2 3 des Hamster Simulators enth lt folgende nderungen bzw Erweiterungen gegen ber Version 2 2 Es ist nun auch m glich Hamster Programme in der funktionalen Programmiersprache Scheme zu schreiben Genaueres siehe im Abschnitt 7 Die Properties wurden erweitert siehe Abschnitt 5 Der Hamster Simulator ist nun Mehrbenutzer f hig d h er kann einmal auf einem Server installiert und dann von mehreren Nutzern gleichzeitig genutzt werden wob
88. ogbox und das entsprechende Hamster Territorium ist wiederhergestellt Achtung Der Zustand des Hamster Territoriums der vor dem Ausf hren der Territorium Offnen Funktion G ltigkeit hatte ist unwiderruflich verloren Speichern Sie ihn daher gegebenenfalls vorher ab 4 4 10 Umbenennen eines abgespeicherten Hamster Territoriums Um eine Datei mit einem abgespeicherten Hamster Territorium umzubenennen klicken Sie bitte den Territorium ffnen Button an zweiter Toolbar Button von links Es ffnet sich eine Dateiauswahl Dialogbox Klicken Sie dann im mittleren Bereich der Dateiauswahl Dialogbox zweimal mit Pause zwischendurch auf den Namen der Datei Die textuelle Darstellung des Namens wird dann zu einem Eingabefeld in der man ber die Tastatur den Namen ver ndern kann Klicken Sie anschlie end den OK Button wenn Sie die umbenannte Datei gleich ffnen wollen oder den Abbrechen Button wenn Sie nur eine Umbenennung vornehmen wollen 4 4 11 L schen und Verschieben einer Datei mit einem Hamster Terri torium in einen anderen Ordner Das L schen und Verschieben einer Datei mit einem abgespeicherten Territorium ist nur mittels des Betriebssystems m glich siehe Abschnitt 4 8 42 4 4 12 Ver ndern der Gr endarstellung des Hamster Territoriums Durch Anklicken des Vergr ern bzw Verkleinern Buttons zehnter und elfter Toolbar Button von links k nnen Sie die Darstellung der Hamster Territoriums man
89. ogik Programms eine Anfrage so versucht der Interpreter die L sungsaussage allein aus den Axiomen zu berechnen Dazu werden eine Menge von so genannten Regeln und Anweisungen die der Syntax gem aufgebaut sind zusammen mit der Information welche L sungsmethode vorgesehen ist in den Programmcode eingef gt Logische Programmiersprachen geh ren zu den deklarativen Programmiersprachen und haben ihre Urspr nge im Forschungsgebiet K nstliche Intelligenz 67 In einem imperativen Programm wird genau beschrieben wie und in welcher Reihenfolge ein Problem zu l sen ist Im Gegensatz dazu wird in einem logikbasierten Programm idealerweise nur beschrieben was gilt Das wie ist bereits durch die L sungsmethode vorgegeben Die L sung wird aus den vorhandenen Regeln hergeleitet Meistens wird schon nur eine Menge von Regeln als das Programm bezeichnet wenn klar ist welche L sungsmethode dazugeh rt N mlich die einzige in der vom regelbasierten System bereit gestellten Inferenzmaschine verwirklichte Die bekannteste logische Programmiersprache ist Prolog 8 2 Die Programmiersprache Prolog Die Programmiersprache PROLOG fr PRogrammation en LOoGique wurde Anfang 70er Jahre Alain Colmerauer und Philippe Roussel an der Universit t von Marseille entwickelt und erstmalig implementiert Die zahlreichen bereits gemachten Erfahrungen auf dem Gebiet der automatischen Beweisf hrung mathematischer S tze deren Entwicklung in dem Moment
90. ogramme Mehr Informationen zu Properties finden Sie im Abschnitt 5 1 9 Anmerkungen zur alten Version 1 des Hamster Simulators Version 1 des Hamster Simulators wird nicht weiter unterst tzt Die aktuelle Version 2 des Simulators hat nur noch wenige Gemeinsamkeiten mit Version 1 Die Benutzungsoberfl che wurde vollkommen redesigned und die Funktionalit t stark erweitert zum Beispiel Kapselung der Dateiverwaltung Integration eines Debuggers Benutzer k nnen deutlich weniger Fehler bei der Installation und Bedienung machen als dies noch in Version 1 der Fall war Wenn Sie trotzdem mit Version 1 des Simulators arbeiten m chten weil Sie sich bspw an die Version gew hnt haben sei Ihnen gesagt Version 1 unterst tzt nicht die Entwicklung objektorientierter Hamster Programme dient also lediglich als Begleitprogramm zum ersten Band der beiden Hamster B cher Hamster Programme die mit der Version 1 des Hamster Simulators erstellt wurden k nnen auf zweierlei Art und Weise in die neue Version 2 bernommen werden e Sie bertragen den alten Sourcecode mittels Copy Paste in den Editor des neuen Hamster Simulators speichern diesen und kompilieren Aus Kompatibilit t zu fr heren Versionen des Hamster Simulators kann diese Property auch home genannt werden 12 e In dem Ordner in dem die Datei hamstersimulator jar liegt befindet sich ein Unter Ordner namens Programme Kopieren Sie die alten bam Dateien einfach in die
91. on K rnern auf Kacheln des Hamster Territorium 40 4 4 6 Platzieren von Mauern auf Kacheln des Hamster Territorium 41 4 4 7 L schen von Kacheln des Hamster TerritoriUm nenn 41 4 4 8 Abspeichern eines Hamster Tertorums sn nnnnnnnnnennnnnnnnnn 42 4 4 9 Wiederherstellen eines abgespeicherten Hamster Territoriums 42 4 4 10 Umbenennen eines abgespeicherten Hamster Territoriums 42 4 4 11 L schen und Verschieben einer Datei mit einem Hamster Territorium in einen Re Klee 42 4 4 12 Ver ndern der Gr endarstellung des Hamster Territoriums 43 4 5 Ausf hren von Hamster Programmen 43 4 5 1 Starten eines Hamster Programme 43 4 5 2 Stoppen eines Hamster Programmes 44 4 5 3 Pausieren eines Hamster ProgrammS nn 44 4 5 4 W hrend der Ausf hrung eines Hamster Programmes sssssssseeeeeeeeeeeeee 44 4 5 5 Einstellen der Geschwindigkeit nn 45 4 5 6 Wiederherstellen eines Hamster Tertoums nn 45 4 5 7 M gliche Ee UE 45 4 6 Debuggen von Hamster Programmen 46 4 6 1 Aktivieren bzw deaktivieren des Debuggers sssssssssenneessssrrrrrrrreneserernee 46 4 6 2 Beobachten der Programmausf hrung s sssssssessssssserrnrrreeserrrernnnrnneserernne 47 4 6 3 Schrittweise Programmausf hrung nn 48 4 7 3D Simulationsfenster und Sound AEN 48 4 7 1 Steuerung mittels der Toolbar un 49 4 7 2 Steuerung mittels der Maus uses 50 4 8 Dateiverwaltung auf
92. r Pr fung der unterschiedlichen Term Typen sowie der Gleichheit und Ungleichheit aus der Sich der Unifikation von Termen Dabei kann gepr ft werden ob es sich bei einem Term T um ein Atom eine Zahl oder Variable handelt Weiterhin gibt es Operatoren zur manuellen Unifikationspr fung von Termen atom T atomic T number T integer T var T nonvar T T U T U T U Pr ft ob T ein PROLOG Atom ist Pr ft ob T eine Konstante oder Zahl ist Pr ft ob T eine Zahl ist Pr ft ob T eine ganze Zahl ist Pr ft ob T eine Variable bzw keine Variable ist Pr ft ob T und U identisch bzw nicht identisch sind Pr ft ob T und U unifizierbar sind Bei der dritten Kategorie handelt es sich Pr dikate zur Berechnung arithmetischer Funktionen sowie Operatoren zum Vergleich und Auswertung von Zahlen sowie entsprechender Variablen Terme Nachfolgend werden einige davon aufgelistet X X Y X lt Y X lt Y X gt Y X gt Y Vis X sin X cos X 77 Ist wahr wenn der Wert von X gleich dem Wert von Y ist Ist wahr wenn der Wert von X ungleich dem Wert von Y ist Ist wahr wenn der Wert von X kleiner als der Wert von Y ist Ist wahr wenn der Wert von X kleiner gleich als der Wert von Y ist Ist wahr wenn der Wert von X gr er als der Wert von Y ist Ist wahr wenn der Wert von X gr er gleich dem Wert von Y ist V wird mit dem Wert von X unifiziert Sch gt fehl wenn X keine Zahl oder V keine Var
93. r beginnen class Wenn die Datei ein imperatives Hamster Programm enth lt ist nichts weiter zu beachten e Aus der ham Datei muss zun chst eine g ltige java Datei erzeugt werden Das geht durch folgenden Aufruf java classpath hamstersimulator jar tools jar de hamster ham2java lt ham Datei gt Im konkreten Beispiel java classpath hamstersimulator jar tools jar de hamster ham2java test sammler ham e Die erzeugte java Datei muss compiliert werden Das geht durch folgenden Aufruf javac classpath hamstersimulator jar tools jar lt java Datei gt Im konkreten Beispiel javac classpath hamstersimulator jar tools jar test sammler java Insofern das Programm keine Fehler enth lt wird eine class Datei mit dem Java Byte Code erzeugt e Es muss mit dem Hamster Simulator eine Datei mit einem Territorium erzeugt und gespeichert werden in unserem Beispiel in die Datei test sammler ter e Nun kann das Hamster Programm in dem Territorium ausgef hrt werden Das geht durch folgenden Aufruf java classpath hamstersimulator jar tools jar de hamster run lt class Datei gt lt ter Datei gt Im konkreten Beispiel java classpath hamstersimulator jar tools jar de hamster run test sammler class test sammler ter e Dann erscheint das Hamster Territorium und man muss nur noch auf den Start Button dr cken 1 7 2 Hamstern mit BlueJ BlueJ www bluej org ist eine Entwicklungsumgebung f r objektorientierte Java Programme die speziell
94. r notwendigen Installationsdateien k nnen direkt von der SWIProlog Homepage runtergeladen werden Die SWIProlog Homepage ist unter dem Link http www swi prolog org erreichbar Bei der Entwicklung der PROLOG Komponente wurde die Version 5 6 61 des Interpreters verwendet Auch andere Versionen sind aber durchaus verwendbar da keine zus tzlichen Bibliotheken verwendet werden Die PROLOG Komponente verwendet die konsolenbasierte Version des Interpreters plcon exe Die daf r verantwortliche Anwendungsdatei befindet sich nach der Installation im Unterverzeichnis bin des Installationsverzeichnisses von SWIProlog Damit die Anwendungsdatei von der Java Virtual Machine gefunden werden kann muss die Umgebungsvariable PATH um den Pfad standardm ig C Programme pl bin erweitert werden Weiterhin muss in der Datei hamster properties das Property prolog auf true gesetzt sein und unter Umst nden muss das Property plcon auf den vollst ndigen Pfad zum SWIProlog Interpreter gesetzt werden siehe Abschnitt 5 1 11 und 5 1 12 8 1 Logikbasierte Programmierung Aus Wikipedia Logische oder logikbasierte Programmierung ist ein Programmierparadigma das auf der mathematischen Logik beruht Anders als bei der imperativen Programmierung besteht ein Logik Programm nicht aus einer Folge von Anweisungen sondern aus einer Menge von Axiomen welche hier als eine reine Ansammlung von Fakten oder Annahmen zu verstehen sind Stellt der Benutzer eines L
95. rammiersprache Java Anders sieht dies jedoch auch wenn Sie Programmiersprachen anderer Programmierparadigmen lernen wollen Die zugrunde liegenden Konzepte der einzelnen Programmierparadigmen weichen stark voneinander ab Seit Version 2 3 unterst tzt der Hamster Simulator das funktionale Programmierparadigma Es ist m glich in der funktionalen Programmiersprache Scheme Hamster Programme zu entwickeln und auszuf hren Herzlichen Dank an Martin Kramer der im Rahmen einer Studienarbeit die Integration von Scheme in den Hamster Simulator vorgenommen hat Dieses Benutzerhandbuch enth lt keine Einf hrung in die funktionale Programmierung und auch keine Einf hrung in die Programmiersprache Scheme Hierzu wird auf die im folgenden genannte Literatur verwiesen Wenn Sie also Scheme lernen wollen sollten Sie sich eines der genannten B cher beschaffen oder die online verf gbare Literatur sichten Ein Problem vieler Anf ngerb cher f r Scheme ist dass nahezu alle Beispiele aus der Welt der Mathematik stammen was Sch ler bzw Studierende die keinen gro en Bezug zur Mathematik haben h ufig abschreckt An dieser Stelle setzt das Hamster Modell an Sie k nnen Scheme quasi unabh ngig von Ihren mathematischen F higkeiten lernen in dem Sie einen Hamster durch ein Territorium steuern und ihn bestimmte nicht mathematische Aufgaben l sen lassen 7 1 Funktionale Programmiersprachen Die wichtigsten Unterschiede funktionaler Programmiersprachen
96. rammierung erl utert sowie Konzepte der imperativen Programmierung Anweisungen Schleifen Prozeduren Typen Variablen Parameter Rekursion eingef hrt Darauf aufbauend behandelt das zweite Buch Objektorientierte Programmierung spielend gelernt mit dem Java Hamster Modell alle wichtigen Konzepte der objektorientierten Programmierung Objekte Klassen Vererbung Polymorphie Interfaces Exceptions Zugriffsrechte Pakete Im dritten Band Parallele Programmierung spielend gelernt mit dem Java Hamster Modell geht es um die parallele Programmierung mit Java Threads Threads Kommunikation Synchronisation Deadlocks Alle drei B cher sind insbesondere f r Sch ler und Studierende ohne Programmiererfahrung empfehlenswert Die B cher sind als Grundlage f r Programmierkurse sowie zum Selbststudium geeignet Dazu enthalten sie viele Beispielprogramme und bungsaufgaben Erg nzende Materialien werden im Internet unter www java hamster modell de bereitgestellt 1 2 Der Hamster Simulator Auf der Website www java hamster modell de steht auch der Hamster Simulator kostenlos zur Verf gung ein Programm mit dem Hamster Programme erstellt und ausgef hrt werden k nnen Neben den drei B chern kommt dem Hamster Simulator dabei eine ganz wichtige Bedeutung zu denn Programmieren lernt man nicht durch lesen Man muss ben ben ben Und genau dazu dient der Simulator Sie halten hier in H nden bzw sehen am
97. ren Sonst werden die Anderungen nicht ber cksichtigt Wenn das Programm syntaktische Fehler enth lt wenn Sie sich bspw bei der Eingabe des obigen Programms vertippt haben werden unter dem Eingabebereich die Fehlermeldungen des Compilers eingeblendet Diese erscheinen in englischer Sprache 21 Weiterhin wird die Zeile angegeben in der der Fehler entdeckt wurde Wenn Sie mit der Maus auf die Fehlermeldung klicken springt der Cursor im Eingabebereich automatisch in die angegebene Zeile Vorsicht Die Fehlermeldungen sowie die Zeilenangabe eines Compilers sind nicht immer wirklich exakt Das Interpretieren der Meldungen ist f r Programmieranf nger h ufig nicht einfach und bedarf einiger Erfahrungen Deshalb machen Sie ruhig am Anfang mal absichtlich Fehler und versuchen Sie die Meldungen des Compilers zu verstehen Tipp Arbeiten Sie die Fehler die der Compiler entdeckt hat immer von oben nach unten ab Wenn Sie eine Meldung dann berhaupt nicht verstehen speichern Sie ruhig erst mal ab und kompilieren Sie erneut H ufig ist es leider so dass der Compiler f r einen einzelnen Fehler mehrere Fehlermeldungen ausgibt was Anf nger leicht verwirren kann Nachdem Sie die Fehler korrigiert haben m ssen Sie das Programm zun chst erst wieder speichern und dann erneut kompilieren Wiederholen Sie dies so lange bis der Compiler die Meldung Kompilierung erfolgreich ausgibt Erst dann k nnen Sie das Programm ausf hren
98. riable entsprechend angepasst sollte das unter WINDOWS funktionieren F r andere Betriebssysteme LINUX muss hier eventuell der vollst ndige Pfad zum SWIProlog Interpreter angegeben werden bspw in der Form plcon C Programme pl bin plcon exe oder plcon C Programme pl bin plcon exe 5 2 Mehrbenutzerf higkeit Seit Version 2 3 ist der Hamster Simulator Mehrbenutzer f hig d h er kann einmal auf einem Server installiert und dann von mehreren Nutzern gleichzeitig genutzt werden Jeder Nutzer hat dabei seinen eigenen Ordner f r die Hamster Programme Um die Mehrbenutzer F higkeit des Hamster Simulators zu nutzen muss ein Nutzer eine Datei namens hamster properties in seinem HOME Verzeichnis anlegen bspw durch Kopieren der gleichnamigen Datei aus dem Ordner wo sich auch die Dateien namstersimulator jar bzw hamstersimulator bat befinden Die Property Einstellungen 55 in der Datei im HOME Verzeichnis haben dabei die h chste Priorit t bezogen auf den Nutzer In der Datei hamster properties in seinem HOME Verzeichnis sollte dann jeder Nutzer die Properties workspace und logfolder entsprechend seinen W nschen setzen d h dort sollten die Ordner eingetragen werden in dem die Hamster Programme dieses Nutzers gespeichert bzw in dem die Log Dateien sysout txt und syserr txt erzeugt werden sollen 56 6 Englischsprachiger Hamster Seit Version 2 4 des Hamster Simulators ist der Hamster Si
99. rms bleiben weiterhin unbelegt sofern dies nicht unbedingt f r die Deckung der Terme notwendig ist Eine nach diesem Vorgehen gefundene L sung wird als allgemeinster Unifikator bezeichnet Beispiele e Die Terme t f X b und t fa Y sind unifizierbar wenn X durch a und Ydurch b ersetzt wird Die dabei gesuchte Substitution lautet o X a Y b e Die Terme t fa b und t fc Y sind nicht unifizierbar da keines der ersten Argumente der Terme eine Variable beinhaltet e Die Terme t F und t fm W d Y sind unifizierbar wenn F fm W d Y o F fm W d Y e Die Terme t Am X X Y und t Z a p Z sind unifizierbar wenn o X a Zim a Yip m a Auf eine quivalente Art und Weise erfolgt die Unifikation von Listen Nachfolgend werden einige Beispiele der Unifikation mit den Listen dargestellt Bei der Schreibweise der Listen wird dabei das Symbol zur Trennung vom Kopf und dem Rest der Liste verwendet 73 Beispiele e t a b C und t D e f sind unifizierbar mit o Ci e f D a b e t ab c und t A BIZ sind unifizierbar mit o A a B b Z c e t al und t A B sind unifizierbar mit o A a B 8 2 2 2 Resolutionsalgorithmus Der Resolutionsalgorithmus bildet die Grundlage f r die automatische Beweisf hrung von ProLoG Klauseln Der Algorithmus verwendet das Verfahren der Unifikation sowie das Verfahren der automatischen R cksetzung das Backtracking Zur Erf llung einer Zielklausel
100. ro buchstaben bei der Definition eines Atoms verwendet werden Nachfolgend sind einige Beispiele f r Atom Definitionen aufgef hrt Atom Beispiele kornfeld hamster 123ham ROGGEN Weizen Die Zahlen werden in PROLOG ebenfalls als konstante Terme dargestellt Diese k nnen als Integerzahlen 12 3500 oder Dezimalzahlen mit Dezimalpunkt 3 1415 oder Exponentenschreibweise 1 34e10 geschrieben werden PROLOG definiert eine Reihe aritnmetischer Operatoren und und vordefinierter Systempr dikate die in Verbindung mit Zahlen Termen eingesetzt werden k nnen Variablen sind spezielle Terme die als Platzhalter f r beliebige andere PROLOG Terme dienen Bei den Variablen unterscheidet man zwischen anonymen und nicht anonymen bzw normalen Variablen Der Variablen Term besitzt in PROLOG zum leichteren Erkennen eine besondere Schreibweise e Die normale Variable beginnt immer mit einem Gro buchstaben Der Rest der Variable besteht aus Kleinbuchstaben Ziffern oder dem Unterstreichungszeichen Nicht anonyme Variablen A B HamsterXYZ2 e Die anonyme Variable beginnt im Unterschied dazu mit einem Unterstrich Dabei kann diese unter Umst nden auch nur aus einem einzigen Unterstrich bestehen Die anonyme Variable spielt hier eine besondere Rolle Mit dem Einsatz der anonymen Variablen bietet PROLOG die M glichkeit die sogenannten Dont Care Variablen zu markieren Dies sind Variablen deren sp teren Wertebelegungen den P
101. rogrammierer einfach nicht interessieren Hierbei ist eine sehr wichtige Eigenschaft der anonymen Variable zu beachten Jedes Vorkommen der anonymen Variable _ innerhalb eines PRoLOG Pr dikats referenziert jeweils eine andere Variablen Instanz Dadurch kann sich der Programmierer den Aufwand des Ausdenkens einen eindeutigen Namen f r Variable ersparen sofern ihn die Variable an sich nicht interessiert Anonyme Variablen _a _myHam _ Komplexe Terme Strukturen Ein komplexer Term kann im Allgemeinen durch ein Ausdruck der Form p al an beschrieben werden Er besteht aus einem Funktor p und einer beliebigen Anzahl von Argumenten al an Beim Funktor handelt es sich um ein Atom welches in der Regel in der Pr fixnotation mit der in runde Klammern eingeschlossenen Argumentenliste 70 geschrieben wird An Stelle der Argumente k nnen beliebige PRoLOG Terme also Konstanten Variablen oder auch komplexe Terme verwendet werden Die Anzahl der Argumente des komplexen Terms definiert seine Stelligkeit Bei dem Term mit der Stelligkeit O handelt es sich in diesem Sinne um ein einfaches Atom Nachfolgend sind einige Beispiele der komplexen Terme aufgelistet Tier hamster kornfeld X Y liebt hamster koerner Der erste Term dr ckt die Beziehung aus dass der Hamster ein Tier ist Die Stelligkeit des Terms tier hamster ist 1 Die Stelligkeit des zweiten Terms kornfeld X Y ist2 Dabei sind Argumente des Terms noch n
102. rster Toolbar Button von links k nnen Sie die Gr e des Territoriums ver ndern Es ffnet sich eine Dialogbox mit zwei Eingabefelder in denen Sie die gew nschte Reihen und Spaltenanzahl eingeben k nnen Nach Dr cken des OK Buttons schlie t sich die Dialogbox und das Territorium erscheint in der angegebenen Gr e Aber Achtung Nach dem Andern der Gr e des Territoriums sind alle Kacheln leer und der Standard Hamster nimmt seinen Standardzustand ein 4 4 2 Platzieren des Standard Hamsters im Hamster Territorium Um den Standard Hamster im Hamster Territorium auf eine andere Kachel zu platzieren m ssen Sie zun chst im Simulation Fenster in der Toolbar den Hamster versetzen Button vierter Toolbar Button von links anklicken Dadurch aktivieren Sie die Hamster Versetzen Funktion Sie erkennen dies daran dass der Hintergrund des Buttons nun dunkler erscheint Solange die Funktion aktiviert ist k nnen Sie nun durch Anklicken einer Kachel den Standard Hamster auf diese Kachel platzieren Eine Deaktivierung der Hamster Versetzen Funktion ist durch Anklicken des K rner setzen Mauer setzen oder Kachel l schen Buttons und der damit verbundenen Aktivierung der entsprechenden Funktion m glich 4 4 3 Setzen der Blickrichtung des Standard Hamsters Um die Blickrichtung des Standard Hamsters zu ndern klicken Sie bitte den Hamster drehen Button f nfter Toolbar Button von links an Bei jedem Klick auf d
103. rt T defin reiheBearbeiten T if vornFrei T reiheBearbeiten vor nimmAlle T nimmAlle T define linksFrei T let T1 linksUm T if vornFrei T1 begin rechtsUm T1 t begin rechtsUm T1 f define rechtsFrei T let T1 rechtsUm T if vornFrei T1 begin linksUm T1 t begin linksUm T1 f 7 6 Scheme Konsole Neben dem Schreiben kompletter Scheme Hamster Programme ist es auch m glich einzelne Befehle interaktiv ausf hren zu lassen Hierzu dient die Scheme Konsole Diese k nnen Sie ber das Men Fenster des Editor Fensters ffnen In den Eingabebereich 65 k nnen Sie nun Scheme Befehle eingeben und durch Anklicken des Ausf hren Buttons ausf hren Ausgaben erscheinen im Ausgabebereich der Konsole Tippen Sie bspw mal in den Eingabebereich der Scheme Konsole folgendes ein vor getTerritorium Der Hamster h pft eine Kachel nach vorne Die Funktion getTerritorium liefert dabei die entsprechende Territoriumsliste des aktuell im Simulation Fenster sichtbaren Territoriums Mit Hilfe der Buttons vor und zur ck k nnen Sie in Ihren bereits ausgef hrten Befehlen navigieren um bspw einen Befehl wiederholt auszuf hren Mit dem Button L schen l schen Sie Eingaben im Eingabebereich Aktuell ist es in der Konsole nur m glich Befehle einzeln auszuf hren Wenn Sie versuchen mehrere Befehle gleichzeitig ausf hren zu
104. s registriert wird skip Aktion Die Protokollierung der Ausf hrung der aktuellen Klausel wird bersprungen retry Aktion Mit dieser Anweisung kann der Programmierer ein Backtracking Schritt erzwingen Das PROLOG System kehrt dabei zur ck und versucht die aktuelle Klausel erneut zu erf llen fail Aktion Mit der fail Aktion kann der Programmierer das Fehlschlagen des aktuellen Ziels erzwingen Dabei wird das PROLOG System sofern es m glich ist ein Backtracking Schritt einleiten und die n chste Alternativl sung pr sentieren 79 Ausgehend vom Programm Beispiel im Abschnitt 8 2 2 3 nachfolgend eine Anfrage im trace Modus gestartet Das PROLOG System erstellt dabei die folgende Ausgabe An den einzelnen Interaktionspunkten wurde hier stets die creep Aktion gew hlt trace raeuber fuchs Call 8 raeuber fuchs creep Call 9 tier fuchs creep Exit 9 tier fuchs creep Call 9 jagt fuchs _L186 creep Exit 9 jagt fuchs maus creep Exit 8 raeuber fuchs creep true 8 2 5 Kontrollfluss Bei den prozedurallen Programmiersprachen gibt es eine Reihe unterschiedlicher Kontrollstrukturen um Fallunterscheidungen durchf hren zu k nnen Das if then else Konstrukt ist eines davon In PROLOG gibt es ebenfalls eine M glichkeit diesen Konstrukt mit Hilfe von Prozeduren nachzubilden Das nachfolgende Beispiel stellt eine Implementierung dieses Konstrukts dar if_then_
105. sen Ordner oder in Unter Ordner des Ordners Anschlie end k nnen Sie die Dateien ber den Editor des neuen Hanmster Simulators ffnen und kompilieren Achtung Sie m ssen die alten bam Dateien auf jeden Fall neu kompilieren Die alten ausf hrbaren class Dateien funktionieren nicht mehr Hamster Territorien die mit Version 1 des Hamster Simulators erstellt und abgespeichert wurden k nnen leider in Version 2 des Hamster Simulators nicht mehr benutzt werden Sie m ssen sie im Simulation Fenster von Version 2 des Hamster Simulators neu erstellen und abspeichern 13 2 Installation und Starten des Hamster Simulators Der Hamster Simulator l uft zur Zeit auf Windows Macintosh Linux und Solaris Rechnern Dort haben wir ihn auch getestet Da er in Java geschrieben ist m sste er eigentlich auch auf allen anderen Rechnern laufen f r die eine Java JVM existiert 2 1 Laden und Installation einer Java Laufzeitumgebung Der Hamster Simulator ist ein in Java geschriebenes Programm Um es ausf hren zu k nnen muss auf Ihrem Rechner eine Java Laufzeitumgebung installiert werden In Java gibt es nun zwei Varianten dies zu tun Die erste Variante ist die Installation eines Java SE Development Kit JDK Das JDK steht in verschiedenen Versionen zur Verf gung Aktuell Stand 04 05 2009 ist die Version 6 manchmal wird sie auch als Version 1 6 bezeichnet Sie sollten m glichst immer die aktuellste Version installieren I
106. sgeschaltet Aus Kompatibilit t zu fr heren Versionen des Hamster Simulators kann diese Property auch home genannt werden 52 5 1 5 runlocally ber die Property runlocally kann eingestellt werden ob die Ausf hrung eines Hamster Programms in einer neuen JVM oder in der JVM des Hamster Simulators erfolgen soll Befindet sich in der Datei hamster properties eine Zeile mit dem Text runlocally false werden Hamster Programme in einer neuen JVM ausgef hrt Standardm ig ist dies der Fall Befindet sich in der Datei hamster properties eine Zeile mit dem Text runlocally true werden Hamster Programme in derselben JVM wie der Hamster Simulator selbst ausgef hrt Normalerweise muss man sich nicht um dieses Property k mmern Leider kam es jedoch bei einigen Macintosh und Linux Nutzer zu dem Problem dass beim Starten eines Hamster Programms Fehler auftraten oder sich der Start der Ausf hrung um viele Sekunden verz gerte Im runlocally Modus true kann das nicht mehr passieren Nachteile dieses Modus Eine Nutzung des Debuggers ist nicht m glich Auch die Nutzung des CLASSPATH ist nicht m glich siehe Kapitel 14 von Band 2 des Java Hamster Buches Im Modus runlocally true gibt es ab Version 2 6 1 eine Console die Ein und Ausgaben ber System in bzw System out und System err verarbeitet Konkret bedeutet das Enth lt ein Hamster Programm bspw den Befehl System out printin hallo und wird das Programm ausgef hrt
107. sichtlich nicht m glich ist und die Unifikation zu einem Fehler f hrt wird daraufhin ein Backtracking Schritt eingeleitet Das System hat sich zuvor gemerkt dass bei der Unifikation von tier X weitere L sungen m glich waren Daher kehrt das PROLOG System zur ck an diese Stelle und w hlt die n chste verf gbare Belegung f r die Variable X In diesem Fall wird X mit tiger unifiziert Da es f r den Tiger ein entsprechendes Pr dikat jagt tiger antilope gibt unterbricht das PROLOG System die Bearbeitung der Anfrage und liefert die gefundene L sung an den Benutzer Tier tiger Mit der Eingabe von kann der Benutzer das PROLOG System zur Suche nach weiteren L sungen f r die aktuelle Abfrage bewegen Das System legt dabei ebenfalls ein oder mehrere Backtracking Schritte ein und versucht weitere g ltige Variablenbelegungen zu ermitteln Die Ausgabe f r das aktuelle Beispiel k nnte dabei wie folgt aussehen Tier tiger Tier fuchs false 8 2 3 Systempr dikate PROLOG ist eine moderne sich f r praktische Aufgaben eignende Programmiersprache Neben den grundlegenden Funktionalit ten bietet PROLOG wie auch viele andere Programmiersprachen eine Menge zus tzlicher Steuerungsmechanismen zur Unterst tzung des Programmierers bei der Umsetzung von notwendigen und oft wiederkehrenden Aufgaben und Funktionen F r diesen Zweck bietet PROLOG eine Reihe vordefinierter Systempr dikate auch Built In Pr dikate genannt die je
108. sind folgende Farben BLAU BLUE ROT RED GRUEN GREEN GELB YELLOW CYAN MAGENTA ORANGE PINK GRAU GRAY WEISS und WHITE Weiterhin wurde f r objektorientierte Programme in der Klasse Hamster ein zus tzlicher Konstruktor eingef hrt bei dem als f nften Parameter die Farbe des Hamsters angegeben werden kann Die Klasse Hamster stellt hierf r entsprechenden Konstanten zur Verf gung public final static int BLAU 0 public final static int BLUE 0 public final static int ROT 1 public final static int RED 1 public final static int GRUEN 2 public final static int GREEN 2 public final static int GELB 3 public final static int YELLOW 3 public final static int CYAN 4 public final static int MAGENTA 5 public final static int ORANGE 6 public final static int PINK Il SI ae un w public final tic int GRAU 8 public final static int GRAY 8 public final static int WEISS 9 public final static int WHITE 9 neuer zusaetzlicher Konstruktor public Hamster int reihe int spalte int blickrichtung int anzahlKoerner int farbe 5 1 9 3D ber die Property 3D kann das 3D Simulationsfenster ein oder ausgeschaltet werden siehe Abschnitt 4 7 Befindet sich in der Datei hamster properties eine Zeile mit d
109. space Standardm ig erscheint im Dateibaum als oberster Ordner ein Ordner names Programme der so genannte Workspace Ordner Er repr sentiert den Unterordner Programme des Ordners in dem sich die Dateien hamstersimulator jar bzw namstersimulator bat befinden In diesem Ordner werden alle Hamster Programme und 51 Hamster Territorien abgespeichert Durch Setzen der Property workspace kann ein anderer Ordner als Workspace Ordner festgelegt werden Befindet sich in der Datei eine Zeile die mit dem Text workspace beginnt wird der dahinter angegebene Ordner als Workspace Ordner gesetzt bspw workspace C Dokumente und Einstellungen karl oder workspace C Dokumente und Einstellungen heidi Eigene Dateien oder workspace test Der angegebene Ordner muss existieren und er muss lesbar und beschreibbar sein Achten Sie bitte darauf dass in dem Ordner Namen keine Sonderzeichen vorkommen bspw ein Ausrufezeichen da die einige Java Versionen nicht damit zurecht kommen F r Windows Nutzer ist es wichtig zu wissen dass die Zeichen in den Ordner Namen durch ein Zeichen ersetzt werden m ssen Standardm ig steht in der Property Datei workspace Programme Wenn Sie den Workspace Ordner ver ndern und mit Paketen arbeiten muss im CLASSPATH anstelle von Programme der String angegeben werden den Sie der Property workspace zugewiesen haben also bspw C DokumenteundEinstellungen karl oder test 5 1 3 logfolder ber
110. stesProgra o CH prolog D PrologBeispiele B SammelHamster 3 sammeln gt C scheme A SchemeBeispiele void main while vornFreit vori rechtsUmn H H L 2 3 4 5 6 7 8 void kehrt linksUm 10 linksUm 13 void rechtsUn 14 kehrt 15 linksUn Spalte Dateibaum Eingabebereich Abbildung 3 Komponenten des Editor Fensters Im Gro en und Ganzen kann man sagen dient das Editor Fenster zum Editieren Compilieren und Debuggen von Hamster Programmen und das Simulation Fenster zur Gestaltung des Hamster Territoriums und zum Ausf hren von Hamster Programmen 25 Toolbar Territorium Ausgabebereich Simu lation vornFrei true vor vornFrei true vor vornFrei true vor vornFrei false linksUm linksUm linksUm Abbildung 4 Komponenten des Simulation Fensters Damit wurden auch bereits die Hauptfunktionsbereiche des Hamster Simulators genannt e Verwalten und Editieren von Hamster Programmen e Compilieren von Hamster Programmen e Verwalten und Gestalten von Hamster Territorien e Ausf hren von Hamster Programmen e Debuggen von Hamster Programmen Bevor im Folgenden anhand dieser Funktionsbereiche der Simulator im Detail vorgestellt wird werden zuvor noch einige Grundfunktionen graphischer Benutzungsoberfl chen erl utert 4 1 Grundfunktionen In diesem Unterabschnitt werden einige wi
111. t beim Starten des Programms die Laufzeitfehler Dialogbox mit der Fehlermeldung ClassNotFoundException e Sie haben den Sourcecode eines Programms ver ndert eventuell auch noch abgespeichert aber nicht neu kompiliert Oder Sie haben zwar kompiliert der Compiler hat jedoch Fehlermeldungen geliefert In diesem Fall wird das alte Programm ausgef hrt e Bei objektorientierten Programmen m ssen Sie darauf achten dass wenn Sie Werte von Konstanten im Sourcecode ndern alle Dateien die diese Konstanten benutzen neu kompiliert werden m ssen Ansonsten arbeiten die nicht kompilierten Dateien noch mit den alten Werten e Wenn in einem objektorientierten Programm eine Klasse X eine Klasse Y referenziert und umgekehrt m ssen Sie zun chst X kompilieren dann Y und anschlie end nochmal X 45 4 6 Debuggen von Hamster Programmen Debugger sind Hilfsmittel zum Testen von Programmen Sie erlauben es w hrend der Programmausf hrung den Zustand des Programms zu beobachten und gegebenenfalls sogar interaktiv zu ndern Damit sind Debugger sehr hilfreich wenn es um das Entdecken von Laufzeitfehlern und logischen Programmfehlern geht Der Debugger des Hamster Simulator erm glicht w hrend der Ausf hrung eines Hamster Programms das Beobachten des Programmzustands Sie k nnen sich w hrend der Ausf hrung eines Hamster Programms anzeigen lassen welche Anweisung des Sourcecodes gerade ausgef hrt wird und welche Werte die Variablen ak
112. tandard Hamster genannt umplatzieren Dazu klicken wir mit der Maus auf den Button Hamster versetzen vierter Button von links Dieser Button ist nun aktiviert Das erkennt man an dem etwas dunkleren Hintergrund Solange er aktiviert ist kann der Standard Hamster im Territorium auf eine andere Kachel gesetzt werden Klicken Sie dazu einfach auf die entsprechende Kachel Standardm ig schaut der Standard Hamster nach Osten Mit dem Button Hamster drehen f nfter Button von links k nnen Sie jedoch seine Blickrichtung ndern Jedes Mal wenn Sie auf den Button klicken dreht er sich um 90 Grad nach links Normalerweise hat der Standard Hamster 0 K rner im Maul Mit Hilfe des Buttons K rner im Maul sechster Button von links l sst sich dies ndern Wenn Sie auf den Button klicken erscheint eine Dialogbox Sie sehen eine Zahl die die aktuelle Anzahl an K rnern im Maul des Hamsters angibt Wenn Sie diese Anzahl ndern wollen tippen Sie einfach ber die Tastatur die gew nschte Zahl ein und klicken Sie anschlie end auf den OK Button in der Dialogbox Die Dialogbox wird anschlie end automatisch wieder geschlossen Nun wollen wir auf einigen Kacheln K rner platzieren Hierzu dient der Button K rner setzen siebter Button von links Wenn Sie ihn mit der Maus anklicken wird er aktiviert 18 Der bis jetzt aktivierte Hamster versetzen Button wird automatisch deaktiviert Es kann immer nur ein Button akti
113. tellten Anfrage zu kommen Dank dieser Eigenschaft sind die PROLOG Programme sehr kompakt und der Entwicklungsaufwand wird dadurch verringert Eine andere Eigenschaft von PROLOG liegt an der einfachen M glichkeit der Programme sich w hrend der Laufzeit zu ver ndern Dabei kann Programm Wissen dazugewonnen oder auch verworfen werden Das Programm kann dabei als eine Art Datenbank angesehen werden die sich nach Belieben k rzen oder erweitern l sst Aufgrund der gleichen Struktur der Daten und Prozeduren worauf im sp teren Verlauf etwas n her eingegangen wird kann die Erweiterung des Programms sehr leicht vollzogen werden Die grundlegende Vorgehensweise im Umgang mit PROLOG gestaltet sich wie folgt hnlich wie es im Umgang mit einer Datenbank der Fall ist kann der Benutzer unterschiedliche Anfragen an das PROLOG System stellen Jede Anfrage wird vom PROLOG System als eine neue These bzw ein Ziel interpretiert die das System nachfolgend versucht mit Hilfe der vorliegenden Fakten und Prozeduren im Programm zu beweisen Hierzu wird der sogenannte Resolutionsalgorithmus um vom bekannten Informationen eine L sung f r das angeforderte Ziel abzuleiten verwendet Nebenbei werden unter anderem Verfahren wie das Pattern Matching Mustervergleich oder Unifikation und das Backtracking R ckverfolgung bei der Suche nach einer L sung im Resolutionsalgorithmus angewandt 8 2 1 Syntax von Prolog Dieser Abschnitt beschreibt die Regeln f r die
114. tuell speichern Die interaktive nderung von Variablenwerten wird aktuell nicht unterst tzt Der Debugger ist im Hamster Simulator dem Editor Fenster zugeordnet Seine Funktionen sind eng mit den Funktionen zur Programmausf hrung verkn pft Sie finden die Funktionen im Men Debugger Es bietet sich jedoch an die entsprechenden Graphik Buttons der Toolbar zu verwenden Neben dem Ausf hren dem Pause und dem Stopp Button geh ren die drei rechten Buttons Debugger aktivieren Schritt hinein und Schritt ber zu den Debugger Funktionen siehe auch Abbildung 19 Ausf hren Schritt hinein HH Te Pause Schritt ber Debugger aktivieren Abbildung 19 Toolbar des Editor Fensters 4 6 1 Aktivieren bzw deaktivieren des Debuggers Sie k nnen den Debugger durch Anklicken des Debugger aktivieren Buttons in der Toolbar dritter Toolbar Button von rechts aktivieren bzw durch erneutes Anklicken wieder deaktivieren Der Debugger ist aktiviert wenn der Hintergrund des Buttons dunkler erscheint Das Aktivieren bzw Deaktivieren des Debuggers ist vor aber auch noch w hrend der Ausf hrung eines Programms m glich 46 4 6 2 Beobachten der Programmausf hrung Wenn der Debugger aktiviert ist und Sie ein Programm mit dem Ausf hren Button starten ffnen sich im Editor Fenster oberhalb des Eingabebereiches zwei neue Bereiche Der linke dieser beiden Bereiche hei t Funktione
115. uf der Kachel in der linken unteren Ecke Kachel 0 Kachel 3 Mauer Kachel 0 Kachel 3 Mauer Hamster 1 0 3 Nord 7 4 2 Hamster Befehle Die Hamster Befehle des Java Hamster Modells sind als Funktionen implementiert die ein Territorium auf ein neues Territorium abbilden und zwar mit der bekannten Semantik der Hamster Grundbefehle e vor Territorium liefert ein Territorium in dem der Hamster gegen ber dem als Parameter bergebenen Territorium eine Kachel in Blickrichtung gelaufen ist e linksUm Territorium liefert ein Territorium in dem sich der Hamster gegen ber dem als Parameter bergebenen Territorium um 90 Grad nach links umgedreht hat e nimm Territorium liefert ein Territorium in dem der Hamster gegen ber dem als Parameter bergebenen Territorium ein Korn mehr im Maul hat und sich auf der entsprechenden Kachel ein Korn weniger befindet e gib Territorium liefert ein Territorium in dem der Hamster gegen ber dem als Parameter bergebenen Territorium ein Korn weniger im Maul hat und sich auf der entsprechenden Kachel ein Korn mehr befindet e vornFrei Territorium liefert true wenn sich in dem als Parameter bergebenen Territorium keine Mauer vor dem Hamster befindet 62 e maullLeer Territorium liefert true wenn in dem als Parameter bergebenen Territorium der Hamster keine K rner im Maul hat e kornDa Territorium liefert true wenn sich in dem als Paramet
116. ufzeitfehler auf in objektorientierten Programmen entsprechen diese dem Werfen von Exceptions z B wenn ein Hamster gegen eine Mauer donnert wird eine Dialogbox ge ffnet die eine entsprechende Fehlermeldung enth lt Nach dem Anklicken des OK Buttons in der Dialogbox wird das Hamster Programm beendet 4 5 5 Einstellen der Geschwindigkeit Mit dem Schieberegler ganz rechts in der Toolbar des Simulation Fenster und der Toolbar des Editor Fensters k nnen Sie die Geschwindigkeit der Programmausf hrung beeinflussen Je weiter links der Regler steht desto langsamer wird das Programm ausgef hrt Je weiter Sie den Regler nach rechts verschieben umso schneller flitzen die Hamster durchs Territorium 4 5 6 Wiederherstellen eines Hamster Territoriums Beim Testen eines Programms recht hilfreich ist der R cksetzen Button vierter Toolbar Button des Simulation Fensters von rechts Sein Anklicken bewirkt dass das Hamster Territorium in den Zustand zur ckversetzt wird den es vor dem letzten Start eines Programms inne hatte Au erdem verschwinden w hrend der Ausf hrung eines objektorientierten Programms erzeugte Hamster aus dem Territorium 4 5 7 M gliche Fehlerquellen Im Folgenden werden die h ufigsten Fehlerquellen genannt die bei der Ausf hrung eines Programms auftreten k nnen e Sie haben ein neues Programm geschrieben und auch abgespeichert aber nicht kompiliert oder der Compiler hat Fehler gemeldet In diesem Fall erschein
117. ung was seine Anweisungen bzw Programme bewirken Genauere Informationen zum Hamstern mit BlueJ k nnen Sie dem PDF Dokument HamsternMitBlueJ pdf f entnehmen das Sie auf der Website zum Java Hamster Modell finden 1 8 nderungen in Version 2 1 gegen ber 2 0 Gegen ber der Version 2 0 des Hamster Simulators enth lt Version 2 1 folgende Anderungen e Ein paar Fehler wurden behoben bspw der Fehler beim Schlie en des Simulators wenn eine oder mehrere Dateien noch nicht gespeichert wurden e Das Simulation Fenster erscheint nun beim Start des Simulators gr er e Linksh nder k nnen nun im Editor auch lt ctr1 gt lt Einfg gt zum Kopieren und lt Shift gt lt Ein fg gt zum Einf gen nutzen e ber eine so genannte Property Datei k nnen sie bestimmte Voreinstellungen berlagern Die Datei muss den Namen hamster properties haben und sich in dem Ordner befinden wo sich auch die Dateien hamstersimulator jar bzw namstersimulator bat befinden Momentan sind folgende Einstellungen m glich e security Befindet sich in der Datei hamster properties eine Zeile mit dem Text security false wird der so genannte Security Manager ausgeschaltet Das bedeutet Hamster Programme d rfen auf die Festplatte zugreifen und d rfen Dateien lesen und in Dateien schreiben Damit ist es bspw auch m glich aus Hamster Programmen heraus Sounds abzuspielen Aber Vorsicht sollten sie diese Option gesetzt haben empf
118. ung 20 Debugging Fenster Im Funktionen Bereich werden Informationen zu den aktiven Funktionen bzw Methoden angezeigt und zwar jeweils von links nach rechts der Programm bzw Klassenname der Funktions bzw Methodenname und die aktuelle Zeile Ganz oben erscheint die aktuell aktive Funktion darunter gegebenenfalls die Funktion die diese Funktion aufgerufen hat usw Ganz unten steht also immer die main Funktion Im Variablen Bereich werden die aktiven Variablen und ihre aktuellen Werte angezeigt Die Darstellung erfolgt dabei analog zu einem Dateibaum d h bei komplexen Variablen wie Objekten oder Arrays k nnen Sie durch Anklicken des Symbols vor dem Variablennamen die Attribute bzw Komponenten einsehen Im Eingabebereich selbst wird jeweils der Sourcecode eingeblendet der gerade ausgef hrt wird Die Zeile mit der gerade aktiven Anweisung wird durch einen blauen Balken hinterlegt Bei objektorientierten Programmen die aus mehreren Dateien bestehen werden gegebenfalls Dateien automatisch ge ffnet Auch w hrend der Debugger aktiviert ist k nnen Sie die Programmausf hrung durch Anklicken des Pause Buttons anhalten und durch anschlie endes Anklicken des Ausf hren Buttons wieder fortfahren lassen Auch die Geschwindigkeit der 47 Programmausf hrung l sst sich mit dem Schieberegler anpassen Bei Anklicken des Stopp Buttons wird das Programm abgebrochen und der Funktionen und Variablen Bereich verschwinden 4
119. unterschiedliche Symbole dargestellt hinter denen die Namen erscheinen Durch Anklicken des Zeigers vor einem Ordnersymbol kann man den Ordner ffnen und schlie en Bei einem ge ffneten Ordner werden die darin enthaltenen Unterordner und Dateien genauer ihre Namen angezeigt Das Anklicken eines Dateinamens im Dateibaum entspricht im Hamster Simulator dem Offnen einer Datei Der entsprechende Inhalt wird im Eingabebereich des Fensters dargestellt Den Ordnern und Dateien sind Popup Men s zugeordnet Um diese zu ffnen muss man zun chst den Ordner bzw die Datei mit der Maus anklicken Der Name wird dann durch einen blauen Balken hinterlegt Anschlie end muss man die rechte Maustaste dr cken Dann ffnet sich das Popup Men Die Popup Men s enthalten bspw Men items zum L schen und Umbenennen des entsprechenden Ordners bzw der entsprechenden Datei 4 2 Verwalten und Editieren von Hamster Programmen Das Schreiben von Programmen bzw genauer gesagt das Schreiben des Sourcecodes von Programmen bezeichnet man als Editieren Im Hamster Simulator dient das Editor Fenster zum Editieren von Hamster Programmen 31 Schauen Sie sich das Edtor Fenster einmal an siehe Abbildung 13 Men leiste Toolbar Datei Bearbeiten Compiler Debugger Fenster Extras Hilfe Blaa Eel xaaa elle C3 Programme d meinErstesProgramm o CH beispielprogramm gt meinErstesProgra o CH prolog Pb PrologBeispiele S SammelHamster sammeln gt CI sc
120. viert sein Solange der K rner setzen Button aktiviert ist k nnen Sie nun auf die Kacheln des Territoriums K rner legen Klicken Sie dazu mit der Maus auf die entsprechende Kachel Es erscheint eine Dialogbox in der Sie die gew nschte Anzahl an K rnern eingeben k nnen Anschlie end m ssen Sie auf den OK Button in der Dialogbox klicken Diese schlie t sich und auf der Kachel sehen Sie die angegebene Anzahl an K rnern Dabei gilt Es werden maximal 12 K rner angezeigt auch wenn dort mehr K rner liegen Wenn Sie die genaue Anzahl an K rnern auf einer Kachel ermitteln m chten fahren Sie einfach mit der Maus ber die Kachel Es erscheint ein Tooltipp in dem die Anzahl an K rnern auf der Kachel angegeben wird Sie k nnen brigens auch die K rneranzahl auf mehreren Kacheln gleichzeitig festlegen Klicken Sie dazu mit der Maus auf eine Kachel und ziehen Sie die Maus bei gedr ckter Maustaste ber die Kacheln deren K rneranzahl Sie ndern m chten Erst wenn Sie die Maustaste loslassen erscheint die Dialogbox Geben Sie dann die Anzahl ein und klicken Sie den OK Button Die K rneranzahl wird auf allen Kacheln ver ndert die Sie vorher markiert hatten Mauern werden hnlich wie K rner auf Kacheln platziert Aktivieren Sie zun chst den Mauer setzen Button achter Button von links Klicken Sie anschlie end auf die Kacheln die durch eine Mauer blockiert werden sollen M chten Sie bestimmte Kacheln im Territorium wied
121. vorerst nur innerhalb der Logik vorangetrieben wurde lieferten die Ausgangsbasis zur Entwicklung der Sprache Die Aufstellung der wesentlichen theoretischen Grundlagen zur logischen Programmierung weicht bis in die Mitte des 19 Jahrhunderts zur ck Die Syntax der Pr dikatenlogik erster Stufe aufgestellt von Gottlob Frege gepr gt und weiterentwickelt durch einer Vielzahl weiterer Wissenschaftler bildet die Grundlage f r die Syntax der meisten heutigen logischen Programmiersprachen Das urspr nglich gedachtes Anwendungsfeld f r PROLOG als Werkzeug f r Sprachwissenschaftler zur Erfassung und Verarbeitung nat rlichsprachlicher S tze auf logischer Ebene wurde im sp teren Verlauf erweitert Es wurde schnell erkannt dass PROLOG auch als eigenst ndige Programmiersprache genutzt werden kann Eine zunehmende Verbreitung von PROLOG beg nstigte Mitte der 70er Jahren die Entwicklung der sogenannten Warren Abstract Machine WAM von David Warren die eine effizientere und schnellere Implementierung von PROLOG darstellte Die WAM stellt auch heute nach wie vor die Grundlage f r die meisten PROLOG Implementierungen dar Ein in den 70er Jahren stattgefundenes japanisches Projekt am Forschungsinstitut ICOT zur Entwicklung der f nften Rechnergeneration w hlte ebenfalls die logische Programmierung als Grundlage f r die Entwicklung Dies beg nstigte ebenfalls die Verbreitung und Entwicklung dieser Programmierung Seit Ende der 80er Jahre f hrte d
122. weils eine 75 bestimmte Funktionalit t innerhalb des PROLOG Systems realisieren Es handelt sich dabei beispielsweise um die grundlegenden M glichkeiten der Interaktion des Benutzers mit dem System die M glichkeit zur Ein und Ausgabe von Daten grundlegende Manipulationsm glichkeiten in der PRoLOG Datenbank Steuerung der Programmausf hrung und hnliche Funktionen Die Systempr dikate k nnen vom Programmierer zwar verwendet aber nicht mehr umdefiniert werden Neben den Systempr dikaten eines Standard PRoLoG Systems welche von den meisten PROLOG Systemen angeboten werden bieten einzelne PROLOG Implementierungen auch noch weitere vordefinierten Pr dikate Auf diese speziellen Pr dikate wird aber im Weiten nicht n her eingegangen Die vom PROLOG System angebotene Systempr dikate lassen sich im Allgemeinen in mehrere Kategorien unterscheiden Diese unterteilen sich in e Pr dikate ohne logische Bedeutung Die Seiteneffekte sind entscheidend e Testpr dikate e Pr dikate zur Auswertung und Vergleich arithmetischer Ausdr cke e Steuerung und Metapr dikate e Pr dikate zur Manipulation von Listen Die Gesamtzahl aller vom PROLOG System angebotenen Systempr dikate ist sehr gro Es w re kaum sinnvoll und auch m glich alle diese Pr dikate hier im einzelnen aufzuf hren und zu erl utern Nachfolgend werden nur die einzelnen Kategorien grob beschrieben und einige wichtigsten Repr sentanten dieser Kategorien genannt und
123. zahlKoerner gt 0 AnzahlKoernerImMaulNeu is AnzahlKoernerImMaul 1 AnzahlKoernerNeu is AnzahlKoerner 1 Aktualisiere die Datenbank retract hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaul retract korn Reihe Spalte AnzahlKoerner assert hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaulNeu assert korn Reihe Spalte AnzahlKoernerNeu Rufe nimm beim Hamster auf write prologhamster nimm ttyflush read Return call Return nimm 83 oo Rufe nimm beim Hamster auf write prologhamster nimm ttyflush read Return call Return false DE hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaul korn Reihe Spalte AnzahlKoerner AnzahlKoernerImMaul gt 0 AnzahlKoernerImMaulNeu is AnzahlKoernerImMaul 1 AnzahlKoernerNeu is AnzahlKoerner 1 Aktualisiere die Datenbank retract hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaul retract korn Reihe Spalte AnzahlKoerner assert hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaulNeu assert korn Reihe Spalte AnzahlKoernerNeu Rufe gib beim Hamster auf write prologhamster gib ttyflush read Return call Return falls es noch keine koerner auf dieser Kachel gibt gib hamster Reihe Spalte Blickrichtung AnzahlKoernerImMaul AnzahlKoernerImMaul gt 0 AnzahlKoernerImMaulNeu is AnzahlKoernerImMaul 1 Anzah
Download Pdf Manuals
Related Search
Related Contents
Channels User Manual - Oracle Documentation Manual del usuario Acronis Backup & Recovery 10 Advanced Server Virtual Edition Chief MTM3044 flat panel wall mount Stat544Homeworks2012.. PAPAGO! X series GPS Navigation System ダウンロード Copyright © All rights reserved.
Failed to retrieve file