Praktikum
Sprachimplementierung mit Werkzeugen WS 1996/97
Projekt Logisch
Autor: Martin Bierschenk
Motivation
Damals - in der neunten Klassse in der Schule habe ich die Sprache
"Logo" kennengelernt, wobei es mir damals schon die berühmte
Turtle-Grafik sehr angetan hat, weil man da sehr schön mit einfachen
und anschaulichen Befehlen nette Grafiken erzeugen kann (mit dem Nebeneffekt,
dass sich diese Grafiken hervorragend für Anfänger zum "Programmieren-lernen"
eignen).
Deshalb habe ich den Ehrgeiz, mir diese Turtle-Grafik aus dem ansonsten
eher LISP-ähnlichen Logo herauszunehmen und darum herum eine an Pascal
orientierte imperative Sprache zu stricken.
Beispiel
ein kleines Beispiel zum Zeichnen einer Rosette (Schlüsselworte
aus Logisch sind gross geschrieben):
PROGRAMM Rosette
KONSTANTE PI := 3.1415927
FUNKTION Kreis( r : GANZ )
VARIABLE i : GANZ
{
ZAEHLE i VON 0 BIS 360 SCHRITTWEITE 2*PI*r MACHE
{
VORWAERTS(2*PI*r)
LINKS(2)
}
}
FUNKTION Rosette()
VARIABLE i : GANZ
{
ZAEHLE i VON 0 BIS 360 SCHRITTWEITE 30 MACHE
{
Kreis(50)
LINKS(30)
}
}
HAUPTTEIL
{
Rosette()
}
Elis Aufgabe
Die wichtigste Aufgabe die Eli zufällt ist die Übersetzung
nach Tcl/Tk, wobei auch die relativen Turtle-Grafik Koordinaten in absolute
Pixel-Koordinaten umgerechnet werden müssen. Hinzukommen die aus Core
bekannten Aufgaben zur Namens- und Typanalyse, wobei Logisch zusaetzlich
noch das Definieren von Funktionen ermöglicht, die es in Core nicht
gibt.