MSWLogo

MSWLogo

Die funktionale Programmiersprache Logo ist eine von Seymour Papert entwickelte Sprache aus den 60er Jahren. Als Interpretersprache galt Logo als leicht zu erlernen, hatte aber eine für die Zeit der Heimcomputer, als diese Sprache die größte Verbreitung fand, sehr hohe Leistungsfähigkeit, dank der dynamischen Listen aus Lisp, frei definierbaren und rekursiv aufrufbaren Funktionen und einiger anderer Elemente. Trotzdem konnte die Programmiersprache sich nicht gegenüber anderen ersten "Anfängerprogrammiersprachen" wie z. B. BASIC durchsetzen, was auch daran lag, dass sie kindgerecht entwickelt und daher von vielen unterschätzt wurde.

Für die damalige Zeit sehr fortschrittliche Elemente wie z. B. eine dynamische Datentyperkennung sorgten auch für Geschwindigkeitsnachteile. Außerdem widersprach die Philosophie der Programmiersprache den damals aufkommenden Gedanken der strukturierten Programmierung: Schleifen sind normalerweise nur über Rekursion oder in Listen eingebettete Programmteile realisierbar. Rekursion galt oftmals 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 Logowriter oder Lingo beispielsweise finden sich die Möglichkeiten dieser Programmiersprache allerdings wieder – teilweise in Form von Objekten.

Inhaltsverzeichnis

Turtlegraphics-Befehlssatz

Ihre bekannteste Besonderheit ist Turtlegraphics, bei der sich eine oder mehrere virtuelle Schildkröten über den Bildschirm bewegen lassen, die bei Bedarf eine farbige Linie hinter sich herziehen. Mit diesen Linien kann dann eine Zeichnung erstellt werden.

Die wichtigsten Turtlegraphics-Befehle in LOGO
Befehl Kurzform Beschreibung
textscreen ts Text-Modus
fullscreen fs Graphik-Modus
home Die Schildkröte bewegt sich zur Mitte des Bildschirms mit Ausrichtung nach oben (0°)
clean Der Bildschirm wird gelöscht, die Position der Schildkröte ändert sich nicht
cleanscreen cs home und clean zusammen
hideturtle ht Die Schildkröte wird unsichtbar
showturtle st Die Schildkröte wird sichtbar
setpencolor farbewert setpc farbwert Der Schildkröte wird eine Zeichenfarbe zugewiesen
penup pu Der Stift wird von der Zeichenfläche genommen
pendown pd Der Stift wird auf die Zeichenfläche gesetzt
right winkel rt winkel Die Schildkröte dreht sich um einen bestimmten Winkel nach Rechts
left winkel lt winkel Die Schildkröte dreht sich um einen bestimmten Winkel nach Links
forward länge fd länge Die Schildkröte bewegt sich um eine bestimmte Anzahl von Einheiten nach vorne
back länge bk länge Die Schildkröte bewegt sich um eine bestimmte Anzahl von Einheiten zurück

Turtlegraphics ist prädestiniert für zweidimensionale geometrische Zeichnungen und fraktale Kurven von der Art der Drachenkurve oder der Hilbertkurve.

Beispielprogramme in Logo

Ein einfaches Beispiel eines Programms, das eindrucksvolle Objekte erstellen kann:

Turtle-Grafik des nebenstehenden Programms
to   n_eck :ne :sz
        repeat :ne [
              rt 360 / :ne 
              fd :sz
        ]
end

to   mn_eck :ne :sz
        repeat :ne [
               rt 360 / :ne 
               n_eck :ne :sz
        ]
end

Aufrufen kann man das Programm zum Beispiel mit:

mn_eck 36 20


to   strahlenbüschel :anzahl :länge
             repeat :anzahl [
                    fd :länge 
                    back :länge 
                    rt 360 / :anzahl
             ]                
end

to   strichmännchen :länge
           
           fd :länge 
           lt 45 
           fd :länge 
           rt 90 
           fd :länge 
           rt 90 
           fd :länge 
           rt 90 
           fd :länge
           lt 45 
           fd :länge 
           lt 135 
           fd :länge 
           back :länge
           lt 90 
           fd :länge
           back :länge
           lt 135 
           fd :länge
           rt 45 
           fd :länge 
           back :länge
           lt 90 
           fd :länge
end

to   vierquadrate :länge
          
          fd :länge
          back :länge *2
          lt 90 
          fd :länge*2
          rt 90 
          fd :länge*2
          rt 90 
          fd :länge*4
          rt 90 
          fd :länge*2
          rt 90 
          fd :länge*3
          lt 90
          fd :länge *2
          lt 90 
          fd :länge *2
          lt 90 
          fd :länge *2
          rt 90 
          fd :länge 
          lt 90 
          fd :länge *2
          lt 90 
          fd :länge
          rt 90 
          fd :länge *2
          lt 90 
          fd :länge*2
          lt 90 
          fd :länge*2
end


Logo-Programme zur Erzeugung der Koch-Kurve und der Koch'schen Schneeflocke sind unter Koch-Kurve zu finden.

Erweiterter Befehlssatz im MSWLOGO

Zusätzlich zum Standard-Befehlssatz bieten neuere MSWLOGO-Versionen einen erweiterten Befehlssatz zur Erzeugung von dreidimensionalen Darstellungen.

Erweiterte Befehle des MSWLOGO
Befehl Kurzform Beschreibung
setpencolor [r g b] setpc [r g b] Dem Stift wird die Farbe in den RGB-Anteilen (0-255) zugeteilt.


Vergleich Lisp - Logo

In LISP sieht ein Programm zur Berechnung der Fakultät beispielsweise so aus:

(defun ! (n)
  (cond ((zerop n) 1)
        ((>= n 1) (* n (! (1- n))))))

Aufruf:

(! 6)

In UCBLogo sieht das gleiche Programm nun so aus:

to ! :n
  output ifelse :n=0 [1][:n*! :n-1]
end

Aufruf:

! 6

In aUCBLogo kann man die Doppelpunkte weglassen:

to ! n
  output ifelse n==0 [1][n*! n-1]
end

Aufruf:

! 6

Alternativ kann man es auch so schreiben (für UCBLogo):

to fakultaet :n
  if :n = 0 [make "n 1]
  if :n > 1 [make "n :n * fakultaet :n - 1]
  output :n
end

Aufruf:

print fakultaet 6


Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • MSWLogo — es un software libre cuya utilidad es programar, con LOGO, una controladora para circuitos o bien, simplemente, programar la tortuga y darle instrucciones para que las ejecute. Contenido 1 Estructura del Programa 1.1 Ventana de trabajo 1.1.1 Alto …   Wikipedia Español

  • MSWLogo — Screen Developer(s) Brian Harvey and George Mills Stable release 6.5b / December 19, 2002; 8 years ago ( …   Wikipedia

  • Logo (programming language) — LOGO redirects here. For other uses, see LOGO (disambiguation). Logo Paradigm(s) multi paradigm:functional educational, procedural, reflective Appeared in …   Wikipedia

  • Logo (Programmiersprache) — Die funktionale Programmiersprache Logo ist eine von Seymour Papert entwickelte Sprache aus den 1960er Jahren. Als Interpretersprache galt Logo als leicht zu erlernen, hatte aber eine für die Zeit der Heimcomputer, als diese Sprache die größte… …   Deutsch Wikipedia

  • Logo (langage) — Logo Apparu en 1967 Auteur Wally Feurzeig, Seymour Papert …   Wikipédia en Français

  • Лого (язык программирования) — У этого термина существуют и другие значения, см. Лого. Лого (англ. Logo) Появился в: 1967 Автор(ы): Сеймур Пейперт, Идит Харель Испытал влияние: Лисп …   Википедия

  • UCBLogo — Auteur Brian Harvey Développeurs Brian Harvey, Université de Californie à Berkeley Dernière version stable 6.0 (le 14 Sep 2008)[ …   Wikipédia en Français

  • Logo (informática) — Saltar a navegación, búsqueda Logo Gráfico hecho con la tortuga de Logo Paradigma …   Wikipedia Español

  • Logo (lenguaje de programación) — Logo [[Archivo: Gráfico hecho con la tortuga de Logo. |220px]] Información general …   Wikipedia Español

  • FMS — may stand for: *Fixed Mobile Substitution *Flying Model Simulator, a free personal computer flight simulator application for radio controlled aircraft *Foreign military sales, a term in arms trade *Final Multiple Score, the calculation used to… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”