Logo (Programmiersprache) - de.LinkFang.org

Logo (Programmiersprache)



Logo

Beispiel für eine Logo-Ausgabe
Basisdaten
Paradigmen: funktional, edukativ, prozedural, reflexiv
Erscheinungsjahr: 1967
Designer: Wally Feurzeig, Seymour Papert
Entwickler: Wally Feurzeig, Seymour Papert
Typisierung: dynamisch
Wichtige Implementierungen: UCBLogo und weitere
Beeinflusst von: Lisp
Beeinflusste: Scratch
Betriebssystem: plattformübergreifend

Logo ist eine bildungsorientierte funktionale Programmiersprache, die 1967 von Daniel G. Bobrow, Wally Feurzeig, Seymour Papert und Cynthia Solomon entworfen wurde. Logo ist leicht zu erlernen und hatte in den 1980er Jahren, zur Zeit der Heimcomputer, ihre größte Verbreitung.

Für die damalige Zeit hatte Logo eine sehr hohe Leistungsfähigkeit dank der dynamischen Listen aus Lisp, frei definierbarer und rekursiv aufrufbarer Funktionen und einiger anderer Elemente. Trotzdem konnte die Programmiersprache sich nicht gegenüber anderen „Anfängerprogrammiersprachen“ wie z. B. BASIC durchsetzen, was auch daran lag, dass sie kindgerecht entwickelt und daher von vielen unterschätzt wurde.

Damals ungewöhnliche Elemente wie z. B. eine dynamische Datentyperkennung sorgten auch für Geschwindigkeitsnachteile. Außerdem widersprach die Philosophie der Programmiersprache dem damals aufkommenden Gedanken der strukturierten Programmierung. Schleifen sind normalerweise nur über Rekursion oder in Listen eingebettete Programmteile realisierbar. Rekursion galt oft als schwer lesbar und beansprucht sehr viel Speicher und Rechenzeit. Ein in Daten eingebetteter und damit zur Laufzeit veränderlicher Code galt als Rezept für unvorhersagbare Programmeigenschaften und in Multiuser-Umgebungen (damit auch in Netzwerken) als Sicherheitsproblem.

In modernen Programmiersprachen wie zum Beispiel in Lingo finden sich einige Möglichkeiten von Logo wieder – teilweise in Form von Objekten.

Inhaltsverzeichnis

Namensgebung


„Logo“ ist kein Akronym. Es wurde von Feurzeig von dem griechischen Wort logos abgeleitet, was hier Wort oder Gedanke bedeutet[1], um es von anderen Programmiersprachen abzuheben, die in erster Linie nicht grafisch oder logisch orientiert waren.

Turtle-Grafik


Die bekannteste Besonderheit von Logo ist Turtle-Grafik, bei der sich eine oder mehrere virtuelle Schildkröten über den Bildschirm bewegen lassen, die bei Bedarf eine farbige Linie hinter sich herziehen. Auf diese Art kann dann eine Zeichnung erstellt werden.

Die wichtigsten Turtle-Grafik-Befehle in LOGO[2]
Befehl Kurzform Beschreibung Auf Deutsch
FORWARD länge FD länge Die Schildkröte/ Igel bewegt sich um eine bestimmte Anzahl von Einheiten nach vorne VORWÄRTS länge (VW)
BACK länge BK länge Die Schildkröte/ Igel bewegt sich um eine bestimmte Anzahl von Einheiten zurück RÜCKWÄRTS länge (RW)
RIGHT winkel RT winkel Die Schildkröte/ Igel dreht sich um einen bestimmten Winkel nach rechts. RECHTS winkel (RE)
LEFT winkel LT winkel Die Schildkröte/ Igel dreht sich um einen bestimmten Winkel nach links. LINKS winkel (LK)
HOME Die Schildkröte/ Igel bewegt sich zur Mitte des Bildschirms mit Ausrichtung nach oben (0°) MITTE
CLEAN Der Bildschirm wird gelöscht, die Position der Schildkröte/ Igel ändert sich nicht. LÖSCHBILD (LBD)
CLEARSCREEN CS Löscht den Bildschirm und versetzt die Schildkröte/ Igel in die Ausgangsposition zurück BILD
PENUP PU Der Stift wird von der Zeichenfläche genommen. STIFTHOCH (SH)
PENDOWN PD Der Stift wird auf die Zeichenfläche gesetzt. STIFTAB (SA)
HIDETURTLE HT Die Schildkröte/ Igel wird unsichtbar. VERSTECKTIGEL (VI)
SHOWTURTLE ST Die Schildkröte/ Igel wird sichtbar. ZEIGIGEL (ZI)
SETPENCOLOR [r g b] SETPC [r g b] Dem Stift wird die Farbe in den RGB-Anteilen (0-255) zugeteilt. FARBEIGEL (FI) WEISS BLAU GELB SCHWARZ ROT GRüN LINDE WASSER FUCHSIA SARCELLE OLIVE BRAUN GRAU ORANGE ROSA VIOLETT

oder eine Zahl, oder FARBEIGEL RGB [%rot %grün %blau].

Turtle-Grafik ist prädestiniert für zweidimensionale geometrische Zeichnungen und fraktale Kurven von der Art der Drachenkurve oder der Hilbert-Kurve.

Das erste Bild wird beispielsweise – allerdings ohne die Farbe — von dem folgenden Programm erzeugt:

TO N_ECK :ne :sz   ; Definiert eine neue Funktion N_ECK mit zwei Parametern
    REPEAT :ne [    ; Wiederholt den folgenden Codeblock :ne mal 
        RT 360 / :ne  ; Dreht das Turtle um einen Winkel von 360° / :ne nach rechts
        FD :sz     ; Bewegt das Turtle um :sz nach vorne und malt dabei eine Linie
    ]
END
TO MN_ECK :ne :sz  ; Definiert eine neue Funktion MN_ECK mit zwei Parametern
    REPEAT :ne [    ; Wiederholt den folgenden Codeblock :ne mal
        RT 360 / :ne  ; Dreht das Turtle um einen Winkel von 360° / :ne Grad
        N_ECK :ne :sz ; Führt N_ECK aus und malt so das oben definierte N_ECK
    ]
END
MN_ECK 36 20      ; Führt MN_ECK aus und malt so das oben definierte MN_ECK

Durch den Aufruf von N_ECK mit einem großen Parameter :ne entsteht der Eindruck eines Kreises. MN_ECK dreht das Turtle oft ein wenig und malt dann einen Kreis, so dass der Eindruck eines großen Kreises entsteht, der wiederum kleine Kreise enthält.

Auf deutsch ist es besser. (mit DLogo).

UM N_ECK :ne :sz  // Definiere eine neue Funktion N_ECK mit zwei Parametern
  WIEDERHOLE :ne [  // Wiederholt den folgenden Kodeblock :ne mal
     RE 360 / :ne // Dreht das Turtle um einen Winkel von 360° / :ne nach rechts
      VW :sz   // Bewegt das Turtle um :sz nach vorne und malt dabei eine Linie
                       ]
ENDE
UM MN_ECK : ne  :sz // Definiere eine neue Funktion MN_ECK mit zwei Parametern
   WIEDERHOLE :ne [   // Wiederholt den folgenden Kodeblock :ne mal
          RE 360 / :ne // Dreht das Turtle um einen Winkel von 360° / :ne Grad
                 N_ECK :ne :sz // Führe N_ECK aus und malt so das oben definierte N_ECK
                        ]
ENDE
LÖSCHBILD BESCHLEUNIGE MN_ECK 36 20 // Führt MN_ECK aus und malt so das oben definierte MN_ECK

Siehe auch


Weblinks


Commons: Logo  – Sammlung von Bildern, Videos und Audiodateien
Wikibooks: Logo – Lern- und Lehrmaterialien

Einzelnachweise


  1. Byte Magazine Volume 07 Number 08 - Logo. In: archive.org. Abgerufen am 17. Januar 2016.
  2. In verschiedenen Varianten von Logo haben diese Befehle zum Teil uneinheitliche Namen. Diese Tabelle bezieht sich auf MSWLogo ((Seite nicht mehr abrufbar, Suche in Webarchiven: derrel.net ) , abgerufen am 9. Februar 2011)



Kategorien: Programmiersprache | Freie Lern-Software | Erziehungsorientierte Programmiersprache



Quelle: Wikipedia - https://de.wikipedia.org/wiki/Logo (Programmiersprache) (Autoren [Versionsgeschichte])    Lizenz: CC-by-sa-3.0


Veränderungen: Alle Bilder und die meisten Designelemente, die mit ihnen in Verbindung stehen, wurden entfernt. Icons wurden teilweise durch FontAwesome-Icons ersetzt. Einige Vorlagen wurden entfernt (wie „Lesenswerter Artikel“, „Exzellenter Artikel“) oder umgeschrieben. CSS-Klassen wurden zum Großteil entfernt oder vereinheitlicht.
Wikipedia spezifische Links, die nicht zu Artikeln oder Kategorien führen (wie „Redlink“, „Bearbeiten-Links“, „Portal-Links“) wurden entfernt. Alle externen Links haben ein zusätzliches FontAwesome Icon erhalten. Neben weiteren kleinen Designanpassungen wurden Media-Container, Karten, Navigationsboxen, gesprochene Versionen & Geo-Mikroformate entfernt.


Stand der Informationen: 05.05.2020 06:57:01 CEST - Wichtiger Hinweis Da die gegebenen Inhalte zum angegebenen Zeitpunkt maschinell von Wikipedia übernommen wurden, war und ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.org nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein oder Fehler in der Darstellung vorliegen, bitten wir Sie darum uns per zu kontaktieren: E-Mail.
Beachten Sie auch : Impressum & Datenschutzerklärung.