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".
  • p Prozedur.
  • i Integer-Variabel.
  • b Boolean-Variabel.
  • invi 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