
Programmieren mit LOGO
Was
ist LOGO ?
LOGO ist eine einfach zu handhabende Programmiersprache, die ursprünglich
dazu angelegt war, Kindern den Umgang mit dem Computer beizubringen. Inzwischen
ist LOGO auch eine flexible und leistungsfähige Programmiersprache
für Erwachsene, deren Fähigkeiten weit über die meist mit
LOGO gleichgesetzte Turtlegrafik hinausgehen. LOGO ist eine Interpretersprache
und wird im Dialog verwendet.
Die nachfolgenden Ausführungen beziehen sich auf den Berkeley
Logo Interpreter, der für fast alle gängigen Betriebssysteme
verfügbar ist. Die Fähigkeiten von LOGO sollen im folgenden an
zwei Beispielen verdeutlicht werden:
Das typische Einstiegsbeispiel
Es soll zunächst ein Quadrat gezeichnet werden:
cs Bildschirm löschen 
fd 50 50 Schritte vorwärts 
rt 90 90° Drehung nach rechts 
Die Befehlsfolge wird noch dreimal wiederholt:
fd 50
rt 90
fd 50
rt 90
fd 50
rt 90 
Wesentlich eleganter und kürzer wird das Quadrat mittels der
repeat-Anweisung gezeichnet:
repeat 4 [fd 50 rt 90]
Der Wortschatz von LOGO läßt sich leicht durch eigene
Prozeduren erweitern. Durch die folgende Befehlsfolge wird eine Prozedur
quadrat erzeugt:
to quadrat
repeat 4 [fd 50 rt 90]
end
Während der Eingabe wird nicht gezeichnet, erst durch nachfolgende
Eingabe des Befehls quadrat.
Der neue Befehl kann jetzt wie jede andere LOGO-Anweisung verwendet
werden.
Zur Demonstration wird eine weitere Prozedur stern erzeugt:
to stern
repeat 10 [quadrat rt 36]
end
stern 
Das Beispiel zeigt, wie schon mit sehr einfachen Befehlsfolgen komplexe
Grafiken erzeugt werden können. Für Kinder ist diese Vorgehensweise
sehr motivierend. Ich selber habe mehrfach LOGO-Kurse in der Orientierungsstufe
(Klassen 5 und 6) durchgeführt und dabei sehr positive Erfahrungen
sammeln können. Selbst fortgeschrittene Programmiertechniken wie z.B.
Rekursionen lassen sich mit LOGO leicht veranschaulichen.
Ein Beispiel für Fortgeschrittene
Informatiklehrer und Programmierfreaks haben oft nur ein mitleidiges
Lächeln für LOGO übrig. LOGO wird allzuoft auf die Turtlegrafik
reduziert. Das folgende einfache Beispiel soll die Leistungsfähigkeit
von LOGO demonstrieren:
to auswahl :menu [:soweit []]
if emptyp :menu [print :soweit stop]
foreach first :menu [(auswahl butfirst :menu sentence :soweit ?)]
end
Die Prozedur auswahl wird z.B. wie folgt gestartet:
auswahl [[POLO GOLF PASSAT]
[weiß rot grün [blau metallic][silber metallic]]
[2-türig 4-türig]]
Hier die Ausgabe:
POLO weiß 2-türig
POLO weiß 4-türig
POLO rot 2-türig
POLO rot 4-türig
POLO grün 2-türig
POLO grün 4-türig
POLO blau metallic 2-türig
POLO blau metallic 4-türig
POLO silber metallic 2-türig
POLO silber metallic 4-türig
GOLF weiß 2-türig
GOLF weiß 4-türig
GOLF rot 2-türig
GOLF rot 4-türig
GOLF grün 2-türig
GOLF grün 4-türig
GOLF blau metallic 2-türig
GOLF blau metallic 4-türig
GOLF silber metallic 2-türig
GOLF silber metallic 4-türig
PASSAT weiß 2-türig
PASSAT weiß 4-türig
PASSAT rot 2-türig
PASSAT rot 4-türig
PASSAT grün 2-türig
PASSAT grün 4-türig
PASSAT blau metallic 2-türig
PASSAT blau metallic 4-türig
PASSAT silber metallic 2-türig
PASSAT silber metallic 4-türig
Der eben noch mitleidig lächelnde Programmierfreak möge versuchen,
eine entsprechende Prozedur in PASCAL zu schreiben. Ich glaube kaum, daß
dabei ein Vierzeiler herauskommt !
Nebenbei bemerkt, die Anzahl der Einträge wird in der Prozedur
nicht vorgegeben. Es können beliebig lange Listen verarbeitet werden.
Die beiden Beispiele können nur einen ersten Eindruck vermitteln
und eine ausführliche Einführung in LOGO nicht ersetzen. Das
Berkeley Logo umfaßt immerhin mehr als 300 Befehle. Weitere Beispiele sind in den Programmpaketen enthalten, darunter ein vollständig
in LOGO geschriebener Pascal-Compiler !
Die Linux-Version
Die Linux-Version liegt in der Version 5.3 vor. Das Programm wird mit
dem Befehl "logo" von einem Terminalfenster aus unter X gestartet. LOGO
kann nicht direkt gestartet werden, da das Terminalfenster für die
Befehlseingabe, das Editieren und für eine evtl. Textausgabe notwendig
ist. LOGO meldet sich im Terminal mit einem ? als Eingabeprompt.
Mit Eingabe des ersten Zeichenbefehls öffnet sich ein weiteres Fenster
für die Grafikausgabe. Der Befehl "help" zeigt eine Liste aller verfügbaren
LOGO-Befehle. Für jeden Befehl gibt es eine Kurzbeschreibung, z.B.:
? help "forward
FORWARD dist
FD dist
moves the turtle forward, in the direction that it's facing, by
the specified distance (measured in turtle steps).
Mit dem Befehl "ed" lassen sich eigene Prozeduren nachträglich
editieren. Der Befehl startet den in der Umgebungsvariablen EDITOR angegebenen
Texteditor. Ist die Umgebungsvariable nicht gesetzt, wird der Editor vi
gestartet, den nur hartgesottene Linuxfreaks bedienen können :-)).
Gut geeignet ist z.B. der Editor joe.
(von kdmoeller / Landesbildungsserver Schleswig-Holstein mit dessen
freundlicher Genehmigung - Die Rechte für diesen Text liegen bei dessen Autor: Klaus-Dieter Möller)
|