Programmieren mit LOGO


Menü - Programmierung - Berkely 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)