UserGuide
1. Der Editor
AdaLogo verfügt über einen Editor aus dem der
auszuführende Code geladen wird und vom Interpreter
ausgeführt wird. Der Editor erfüllt die obligatorischen
Funktionen eines Standard-Editors.
- "Copy/Paste", "Cut", Undo & Redo sowie deren
Shortcuts funktionieren wie gewohnt. (Menü: Edit)
- Außerdem lassen sich externe Dateien laden bzw.
speichern. (Menü: File)
- "Revert" bewirkt erneutes Laden, der zuletzt geladenen
Datei. Alle Veränderungen gehen verloren!
(Menü: File)
- Des Weiteren unterstützt der Editor Syntax-Highlighting
- und während einer "Step by Step"-Ausführung wird
die aktuelle Zeile optisch hervorgehoben.
Bemerkung: Es wird immer der Code aus dem Editor ausgeführt.
d.h. eine Datei die geladen wurde, wird nicht ausgeführt,
sondern der Code, der im Editor steht! Dies gilt insbesondere auch
dann, wenn der Code nach dem Laden zusätzlich noch bearbeitet wurde.
Man kann das Programm mit run oder debug
ausführen. Falls der Debug-Modus ausgewählt wurde,
so stehen einem multi step und single step
zur Verfügung. Dabei bedeutet Debug-Modus, dass
Variable-Monitor angemacht wird. Bei single step wird
jeder Befehl einzel ausgeführt, während bei
multi step an (vom Benutzer definierten) "Breakpoints"
angehalten wird. Um ein Breakpoint zu markieren, klickt
man auf die jeweilige Zeile, rechts von der Zeilennummer.
Um den Breakpoint zu entfernen, klickt man auf diejeweilige Zeile
noch einmal.
Syntax-Highlighting:
- Schlüsselwörter sowie Boolean-Werte
werden blau hervorgehoben.
- Integer-Werte werden rot hervorgehoben.
- Kommentare werden grün hervorgehoben.
2. Die Schildkröten-Umgebung
Um Programmier-Anfängern einen (hoffentlich:)) leichten
Einstieg zu ermöglichen, gibt es die Schildkröten-Umgebung.
Oft liegt am Anfang die Schwierigkeit daran, dass man
nicht "sieht" was das Programm da macht. Oder man ist sich einfach
unsicher, ob das Programm auch tatsächlich das tut, was es tun soll.
Nun, die Idee hierbei ist, dass die Funktion bzw.
Funktionsweise beispielsweise einer Schleife, viel leichter erfasst
und nachvollzogen werden kann, wenn das ganze schnell und unkompliziert,
sprich ohne irgendwelche Grafikpakete einzubinden oder ähnliches,
in irgendeiner Form optisch darstellbar ist.
Dazu gibt es, wie schon beschrieben, die verschiedenen Funktionen
zur Steuerung der Schildkröte. (siehe 1. Die ersten Schritte)
Der Programmierer kann so, sofort Feedback erhalten und sehen was
da "vor sich geht".
Die Schildkröte ist ein grüner Kreis mit einer kleinen
Linie als Richtungsweiser. Sie startet immer an der Koordinate (0,0),
kann sich in dem Koordinaten-System frei bewegen und Linien bzw.
Punkte zeichnen.
- Um sich mit seiner Funktionsweise vertraut zu machen, kann
man zu Anfang mit den Buttons
"forward(10);", "turn(-10);", "turn(10);",
"pen_up;/pen_down;" herumspielen.
- Der Button "turtle_reset;" setzt die Schildkröten-Umgebung
auf Ausgangsstellung zurück.
d.h. die Schildkröten
wird auf (0,0) gesetzt und alle Linien und Punkte werden gelöscht.
Die Umgebung stellt ein Koordinatensystem dar, in dem sich die
Schildkröten bewegen und zeichnen kann. Hiermit kann die Funktion
und Funktionsweise verschiedener Programmkonstrukte veranschaulicht werden.
Die Umgebung hat folgende Merkmale:
- Mausklick bewirkt eine Zentrierung der Ansicht
auf den entsprechenden Punkt.
- Mit den Pfeiltasten auf der Tastatur kann man den Fokus der
Umgebung bewegen.
- Roter Marker am Rand der Umgebung zeigt an in welcher
Richtung sich der Nullpunkt (falls nicht sichtbar) des
Koordinatensystems befindet.
- Grüner Marker am Rand der Umgebung zeigt an in
welcher Richtung sich die Schildkröte (falls nicht sichtbar)
befindet.
- zoom in und zoom out. Steuerbar mit Scrollrad der Maus,
über Menü: Canvas => zoom in / zoom out oder über
Bild-Auf und -Ab auf der Tastatur.
- "reset view" Button zentriert die Ansicht auf
Koordinate (0,0) und setzt den zoom auf Standard.
- Anti Aliasing ( Menü: Options=>"Use Anti Aliasing" )
- High Render Quality ( Menü: Options=>"High Render Quality" )
Außerdem im Menü: Options=>Follow Turtle
- "never": Die Ansicht verändert sich nicht.
- "on edge": Die Schildkröten wird zentriert
sobald er den Rand erreicht.
- "always": Die Schildkröte wird nach jeder
Aktion zentriert.
3. Der Variable-Monitor
Hier werden alle Prozeduren sowie Variablen und deren Werte angezeigt.
Zusätzlich zur Schildkröten-Umgebung erhält man
hiermit Feedback was das Programm macht. Vor allem für den
Anfänger, aber auch zu Debug-Zwecken ist es sehr
hilfreich "step-by-step" zu sehen, was mit den einzelnen Variablen passiert.
Der Monitor ist eine Tabelle mit 3 Spalten. Sie beinhalten 1.
Bezeichner der Variablen mit Symbol, 2. den Wert der Variablen
und 3. den Variablen-Typ.
Die Symbole:
- "kein Symbol": Block. Blöcke können for-Schleifen,
Prozeduren oder das Programm selbst sein. Im Block des Programms
stehen alle Prozeduren als "Variablen".
- Prozedur.
- Integer-Variabel.
- Boolean-Variabel.
- Invisible-Variabel.
Es gibt einige Optionen die man nach Belieben und Bedürfnis einstellen kann:
Options=>Variable Monitor
- "show as tree": Variablen werden in einer Baumstruktur angezeigt.
So erkennt man leicht welche Variablen zu welcher Prozedur gehören.
Durch Doppelklick auf ein B-Symbol(Block-Symbol) kann man dessen Kinder
(Variablen die in dem Block deklariert wurden) anzeigen oder verstecken.
- "show root": Die SymbolTable an sich wird zusätzlich als
Wurzel dargestellt. Ist für den Programmierer eigentlich unrelevant.
Dient nur dazu um darzustellen wie AdaLogo intern die
Speicherstruktur der Variablen organisiert.
- "expanded by default" Alle Knoten des Baumes werden automatisch
geöffnet. Ausnahme: "Non Visibles"-Knoten.
Non-Visible Variables:
Wird exakt derselbe Bezeichner (Case-Unsensitive) einer Variablen für
eine weitere, in einem untergeordnetem Block deklarierte,
Variabel benutzt, so ist die Variabel des übergeordneten Blocks nicht sichtbar.
d.h. Lese- und Schreibzugriff ist nur auf der Variablen des aktuellen Blocks möglich.
Der Variable Monitor bietet dafür verschiedene Darstellungen an:
Options=>Variable Monitor=>Nonvisible Variables
- "show": Nonvisibles werden grau dargestellt
- "in extra node": Nonvisibles werden in einem extra Knoten (stets als erstes Kind)
innerhalb eines Block-Knoten dargestellt.
Diesen kann man wie gewohnt öffnen oder schließen.
- "hide" Nonvisibles werden gar nicht angezeigt.
changes within x steps:
Der Variable-Monitor kann Veränderungen an Variablen optisch hervorheben.
Variablen die
innerhalb der letzten x Schritte mindestens 1mal verändert
wurden, werden farbig markiert.
Dabei wirkt sich dies sukzessive auch auf die Vaterknoten aus.
Soll heißen eine Prozedur die mindestens eine markierte
Variabel besitzt, wird selbst auch markiert.
4. Die Konsole
Neben dem Debug-Modus ist die Konsole ein nützliches Werkzeug, um sich auf
die Suche nach seinem Fehler zu gegeben. Die Konsole gibt Hinweise auf semantische und
syntaktische Fehler. Bei den meisten Fehlern steht auch an welcher Zeile und Spalte
des Programmes der Fehler zu finden ist. Verwendet man put und put_line,
so werden die Werte ebenfalls in der Konsole ausgegeben. Macht man unter
"Options => Print Syntax Tree" die Option an, so wird in der Konsole sogar ein Syntax-Baum
vom Programm ausgegeben.
5. Die Statusleiste
Ganz unten am Rand befindet sich eine Statusleiste. Sie zeigt von links nach rechts folgendes an:
- zuletzt durchgeführte Aktion.
- line/col: aktuelle Cursor-Position im Editor.
- turtle: Position der Schildkröte im Koordinatensystem
- dir: Die Richtung der Schildkröte
- pen: Schildkröte zeichnet (true) / Schildkröte zeichnet nicht (false)
- visitor: Zustand des Interpreter/Visitor