Zum Inhalt springen

SEO Analyse » SEO Lexikon » l » Logo Programmiersprache

Logo ProgrammierspracheLogo wurde durch Seymour Papert in den 1960er Jahren entwickelt. Es handelt sich bei Logo um eine erziehungsorientierte Programmiersprache, die als äußerst leicht zu erlernen und auch als sehr funktional gilt. Durch die dynamischen Listen, die aus Lisp entnommen wurde, hatte Logo eine hohe Leistungsfähigkeit als Programmiersprache.

Logo ist eine Programmiersprache, die als Interpretersprache bezeichnet wird. Durch die frei definierbaren Funktionen, die rekursiv aufgebaut werden konnten, und andere Elemente fand Logo insbesondere bei Heimcomputern rege Anwendung. Allerdings kam es nicht dazu, dass Logo sich durchsetzte.

Andere Programmiersprachen für Anfänger wie BASIC liefen Logo den Rang ab. Das lag auch daran, dass Logo einige bereits sehr fortschrittliche Elemente einbrachte. Das war zum Beispiel die dynamische Datentyperkennung. Diese sorgte zugleich auch für eine Verlangsamung im direkten Vergleich mit anderen Programmiersprachen, die auf solche Elemente verzichteten. Die strukturierte Programmierung passte zur damaligen Zeit nicht zur vorherrschenden Philosophie der Programmiersprachen. So können die für Logo typischen Schleifen nur über die Rekursion realisiert werden.

Eine andere Möglichkeit ist die Realisierung über Programmteile, die in Listen eingebettet sind. Damals galt ein Code, der in Daten eingebettet war und somit während der Laufzeit veränderbar war, als Sicherheitsrisiko, insbesondere in Multiuser-Umgebungen und Netzwerken. Moderne Programmiersprachen wie Lingo oder Logowriter verwenden wieder diese Möglichkeiten, jedoch teilweise auch in Form verschiedener Objekte.

Turtle-Grafik

Bei Turtle-Grafik – oder Igelgrafik genannt – handelt es sich um eine Bildbeschreibungssprache. Hierbei stellt man sich vor, dass eine Schildkröte, die turtle, einen Stift trägt. Diese Schildkröte bewegt sich auf der Zeichenebene. Sie wird durch einfache Befehle wie vorwärts laufen, den Stift heben oder Senken gesteuert. Diese Idee kommt nicht nur bei Logo zum Tragen, sondern auch bei Stiftplotter. Aber auch bei den Programmiersprachen wie Amiga, Atori, BASIC oder Pascal kommt sie zum Tragen.

Die Turtle-Grafik kommt ist aber auch die Grundidee von Logo, einer pädagogischen Programmiersprache. Auch heute noch werden in Schulen noch gerne Grafiksysteme eingesetzt, die der Turtle-Grafik ähnlich sind. So kann ein spielerischer und zugleich motivierender Einstieg gefördert werden. Zudem wird die geometrische Vorstellung der Schüler gefördert und geschult. Das funktioniert in der Regel besser als beim Zugang über die absoluten Koordinaten.

Jedoch sind die heute verwendeten Systeme gegenüber den Grafiken von Logo wesentlich erweitert und verbessert worden. So können auf schulischem Niveau echte GUI-Anwendungen dargestellt werden. Das ist bei den Python-Modulen frog oder xturtle der Fall.

Jedoch wurde der Turtle-Ansatz im professionellen Bereich fallen gelassen. Hier setzte sich die koordinatenbasierte Grafikbeschreibung durch. Heute wird der Turtle-Ansatz nur noch zur Veranschaulichung von Fraktalen mit den Lindenmayer-Systemen genutzt.

Die einfachen Kommandos bei Logo

Die Schildkröte bei Logo hat keinen Arbeitsspeicher und setzt daher die gegebenen Kommandos immer sofort um. Das Kommando F(x) sorgt für eine Bewegung um x nach vorne. Dabei wird gleichzeitig gezeichnet. Der Befehl f(x) führt dieselbe Bewegung aus, zeichnet dabei aber nicht. Durch die Eingabe von +(a) macht die Schildkröte eine Drehung nach links um den eingegebenen Winkel a. Bei -(a) dreht sich die Maus um den Winkel a nach rechts.

Die erweiterten Kommandos

Bei den erweiterten Kommandos wird zum Speichern des jeweils aktuellen Stands ein Stack eingeführt. Der aktuelle Stand ist bei Logo die aktuelle Position der Schildkröte und deren Richtung. Hierzu gibt es [. Hiermit wird der aktuelle Zustand abgelegt. Mit ] wird der Zustand auf dem obersten Stack entfernt und zum aktuellen Zustand gemacht.

Lisp und Logo

Die Syntax der Programmiersprache Logo ist an die von Lisp angelehnt. Lisp ist 1958 am Massachusetts Institute of Technology, kurz MIT, entstanden. Es handelt sich um eine listenbasierte Programmiersprachenfamilie, die die zweitälteste Programmiersprache ist und noch immer Anwendung findet. Bei Lisp werden typischerweise alle Ausdrücke geklammert. Hierauf verzichtete Logo.

Auf der Grundlage von Lisp sind vielfältige Dialekte entstanden. Common Lisp oder Scheme sind zwei der bekanntesten Dialekte von Lisp. Der Begriff Lisp steht für Listen-Verarbeitung, also List Processing. Ursprünglich sind damit Fortran-Unterprogramme bezeichnet worden. Diese Unterprogramme sollten symbolische Berechnungen durchführen. Solche Berechnungen werden beispielsweise im Lambda-Kalkül benötigt.

Steve Russell wollte einen Interpreter für diese verschiedenen Ausdrücke programmieren. Damit sorgte der Student von John McCarthy dafür, dass Lisp entwickelt wurde. Bei den Grundstrukturen von Lisp handelt es sich um Skalarwerte, also um Einzelwerte, die jedoch Atome genannt werden.

Daneben bestehen die Listen, die miteinander verschachtelt werden können. Diese Listen werden immer mit runden Umklammerungen dargestellt. Hier sind auch die Programmanweisungen Listen. Durch das erste Listenelement wird die Funktion, die auszuführen ist, identifiziert. Somit kann bei Lisp kein fundamentaler Unterschied zwischen den Daten und den Programmanweisungen identifiziert werden. So können Programmteile auch während des Betriebs manipuliert werden. Das wird als Hoikonizität bezeichnet.

Durch Lisp und auch in Logo erhalten die Programmierer ein Höchstmaß an Flexibilität. Die Einflussmöglichkeiten sind weitreichend. Daher wird Lisp auch programmierbare Programmiersprache genannt. Der Programmierer muss keinen Speicherplatz freigeben oder reservieren, um die Datenstrukturen dynamisch aufzubauen. Der Speicherplatz wird aufgrund der automatischen Speicherbereinigung freigegeben. Die Daten müssen nicht deklariert werden. Ein einziges Lisp-Symbol hat die Fähigkeit, als Variable eingesetzt zu werden. So können verschiedene Arten an Objekten bezeichnet werden. Viele der Eigenschaften wurden auch für die Programmiersprache Logo verwendet.

Durch Compiler können die verschiedenen Programme in Lisp übersetzt werden. Der inkrementelle Compiler oder der Batch-Compiler sind bekannte Compiler-Typen für Lisp. Der inkrementelle Compiler kann die einzelnen Ausdrücke übersetzen. Beim Batch-Compeiler werden Lisp-Dateien oder auch Lisp-Programme übersetzt. Alle Compiler übersetzen Lisp entweder in einen Maschinencode für Prozessoren oder in Bytecodes, welche für virtuelle Maschinen benötigt werden.

Die Bedeutung von Lisp

Lisp ist historisch gesehen eine Programmiersprache der künstlichen Intelligenz. In den USA ist Lisp die erste Programmiersprache, die an Universitäten oder Schulen gelehrt wurden. In Europa wurden Fortan, Pascal oder Assembler noch vor der Einführung von Lisp gelehrt. Jedoch handelt es sich bei Programmiersprachen wie Pascal oder Assembler um Programmiersprachen der prozeduralen Sprachfamilie, die Daten statisch verarbeiten. Lisp hingegen hat ein dynamisches Konzept, welches strikt durchgesetzt wird.

Die Syntax in Lisp

Bei Lisp wurden S-Expressions als ein externes Format genutzt. Hiermit wurden Source-Codes oder Daten dargestellt. Makro- oder Funktionsaufrufe werden bei Lisp als Listen dargestellt. Diese Listen haben als erstes Element die Bezeichnung des Makros oder der Funktion. Bei Lisp werden Kommentare mit „;“ aufgezeigt.

Der minimale Funktionsumfang bei Lisp

Minimale Lisp-Systeme können durch wenige Operatoren und allgemeine Mechanismen zur Funktionsdefinition implementiert werden. Der Befehl first gibt das erste Listenelement zurück. Der Befehl rest gibt abgesehen vom ersten Element die Restliste zurück. Cons sorgt dafür, dass ein Element zu Beginn der Liste angefügt wird. Durch den Befehl quote wird die Auswertung von dem nachfolgenden Objekt verhindert. Mit eq wird der Befehl zu einem Test auf Identität gegeben. Cond sorgt für eine bedingt Ausführen. Der Mechanismus zur Funktionsdefinition wurde durch den Begriff lamda ausgelöst. Durch diese geringen sprachlichen Mittel können viele der Funktionen definiert werden.

Die heute häufig verwendeten Dialekte von Lisp

Eines der umfangreichsten und am häufigsten genutzten Dialekte von Lisp ist das Common Lisp. Dieses Lisp-Dialekt ist ANSI-standardisiert. Es bietet Unterstützung beim Einsatz von prozeduralen Makros oder lexikanischen und dynamischen Variablenbindungen. Zudem wurde das Common-Lisp durch Scheme und InterLisp beeinflusst. Bei Scheme handelt es sich um eine elegante und minimalistische Variante. Diese unterstützt unter anderem Continuations.

Scheme kennt nur die lexikalischen Variablenbindungen und die hygienischen Makros. Durch ihre einfache Struktur wird die Programmiersprache Scheme häufig in der Lehre eingesetzt. Aber auch die produktive Programmierung ist mit Scheme möglich und wird auch praktiziert.

Zusammenfassung

Die Logo Programmiersprache wurde in den 1960ern von Seymour Papert entwickelt und dient hauptsächlich Bildungszwecken. Sie hat ihre Wurzeln in Lisp und ist als Interpretersprache bekannt, die sich durch dynamische Datentypen und rekursive Funktionen auszeichnet. Allerdings konnte sich Logo nicht durchsetzen und wurde von einfacheren Sprachen wie BASIC überholt.

Turtle-Grafik ist ein wichtiges Merkmal von Logo, das sich auch in anderen Sprachen findet. Dabei handelt es sich um eine visuelle Methode zur Programmierung, bei der eine virtuelle Schildkröte (‚turtle‘) Befehle wie „Vorwärts laufen“ oder „Stift heben“ ausführt. Diese Methode wird oft in Schulen verwendet, um die geometrische Vorstellungskraft der Schüler zu fördern.

Die Sprache hat sowohl einfache als auch erweiterte Kommandos. Bei den erweiterten Kommandos wird ein Stack zum Speichern des aktuellen Zustands der „turtle“ verwendet. Logo lässt viele Einflussmöglichkeiten zu und bietet ein hohes Maß an Flexibilität.

Logo ist eng mit der Programmiersprache Lisp verknüpft, die ebenfalls am MIT entwickelt wurde und für ihre listenbasierte Struktur bekannt ist. Lisp wird oft als „programmierbare Programmiersprache“ bezeichnet und findet vor allem in der KI-Anwendung.

Common Lisp und Scheme sind zwei der bekanntesten Dialekte von Lisp. Während Common Lisp ANSI-standardisiert und komplex ist, zeichnet sich Scheme durch seine Einfachheit aus und wird häufig in der Lehre eingesetzt.

Häufige Fragen und Antworten

Was ist Logo Programmiersprache?

Logo Programmiersprache wurde in den 1960er Jahren von Seymour Papert entwickelt. Es handelt sich um eine erziehungsorientierte Programmiersprache, die sich durch ihre Leichtigkeit und Funktionalität auszeichnet. Logo basiert auf Lisp und bietet eine hohe Leistungsfähigkeit.

Welche Rolle spielt die Turtle-Grafik in Logo?

Die Turtle-Grafik ist ein zentraler Bestandteil von Logo. Dabei handelt es sich um eine Bildbeschreibungssprache, bei der eine virtuelle Schildkröte Befehle wie Vorwärts laufen oder Stift heben ausführt. Die Turtle-Grafik fördert eine spielerische und zugleich motivierende Herangehensweise an das Programmieren und schult die geometrische Vorstellungskraft der Schüler.

Wie ist die Beziehung zwischen Logo und Lisp?

Logo basiert auf der Programmiersprache Lisp. Logo übernimmt die Syntax von Lisp und verwendet Lisp-Elemente wie dynamische Datentypen und rekursive Funktionen. Durch Lisp erhält Logo seine Flexibilität und erziehungsorientierte Funktionalität.

Bildnachweis: iStock.com/asbe


Zurück zur Hauptseite: l
Alle Marken, Warenzeichen, Unternehmens- und Produkt-Bezeichnungen sind mit, aber auch ohne definitive Kennzeichnung, Eigentum des Inhabers der Rechte. Alle aufgeführten Elemente dienen lediglich der informativen Beschreibung.