Stackbasierte Sprachen (Forth, Postscript)
Offizieller Titel
185.310 Stackbasierte Sprachen (VU2)
Anrechnungen
Wahlfach für die Master-Studien "Software Engineering und Internet
Computing" und "Computational Intelligence".
Termin
Gemeinsame Vorstellung der Wahl-LVAs der Arbeitsgruppe: Mi, 5.10.2011,
13:30h, EI5 (altes EI, 2. Stock). Anwesenheit nicht erforderlich,
wenn Sie schon wissen, welche unserer LVAs Sie machen wollen und
welche nicht, aber Sie können dort von anderen, eventuell für Sie
interessanten LVAs erfahren.
Vorlesungstermin: ab 14.10.2011: Fr, 15:45-17:15 EI3A
(Altes EI, 2. Stock).
Vorlesungsteil beendet
Ab 2.12.: Präsentationen zum gleichen Termin. Der Termin am
2.12. findet statt.
Bis
1.12. Web-Anmeldung
zur 1. Präsentation (als "Abgabegespräch"). Bis
12.1.: Web-Anmeldung
zur 2. Präsentation (als "Prüfung"; bitte pro Gruppe nur eine Person
anmelden).
Umfeld
Postscript ist bekannt als Seitenbeschreibungssprache für
Laserdrucker. Ein Ableger von Postscript, PDF, gewinnt (leider) zunehmend an Populartität als
Dokumentenbeschreibungssprache. Tatsächlich ist Postscript aber eine
vollwertige höhere Programmiersprache.
Forth ist eine
Programmiersprache auf dem semantischen Niveau von C. Da sie sich
auch in sehr eingeschränkten Umgebungen noch gut verwenden
läßt, ist sie beliebt für
Embedded-Control-Applikationen. Eine prominente Anwendung von Forth
ist der in SPARC-Systemen, PCI-PowerPC-Systemen und im OLPC-Laptop
verwendete FCode zur Konfiguration der Steckkarten.
Gemeinsam ist diesen Sprachen u.a. der für den Programmierer
sichtbare Stack, der eine zentrale Rolle spielt. Die Unterschiede
liegen bei der Typüberprüfung, beim Binden von Namen, und bei der
Speicherverwaltung.
Eine weitere prominente stackbasierte Sprache ist die JavaVM, die
allerdings nicht für die direkte Programmierung durch Menschen
ausgelegt ist, und daher in dieser Lehrveranstaltung nur am Rande
vorkommt.
Lehrziel
Erwerb von Programmierkenntnissen in Forth und
Postscript. Kennenlernen der besonderen Eigenschaften dieser Sprachen,
des sich daraus ergebenden Auswirkungen auf Programmierstil (kurze
Prozeduren, viel Wiederverwendung) und Programmiermethodik
(Metaprogrammierung, andere Debuggingmethode). Besseres Verständnis
für die Konzepte von Programmiersprachen.
Inhalt
Überblick über Postscript und Forth. Einfache Programmierbeispiele in
diesen Sprachen. Lösung einer selbstgewählten Aufgabe in einer
stackbasierten Sprache.
Abgabe
Schreiben Sie ein beliebiges Programm in Forth oder Postscript, und
präsentieren Sie es dann. Präsentieren Sie, was das Programm macht,
und wie es implementiert ist.
Weisen Sie dabei besonders auf Programmteile hin, in denen Sie die
besonderen Spracheigenschaften der gewählten Sprache verwendet haben
(also Programmteile, die nicht 1:1 in C oder Java übersetzbar wären;
die Postscript-Graphik zählt nicht, die könnte man in C oder Java mit
einer Library ergänzen). Wenn Ihr Programm solche Programmteile hat,
darf es beliebig kurz sein.
Da es den meisten aber schwer fällt, so etwas im vorhinein zu planen,
planen Sie lieber ein Programm in der Größenordnung 50-200 Zeilen,
das sie möglichst idiomatisch schreiben (z.B. kurze Definitionen,
richtige Reihenfolge der Werte am Stack). Wenn ihnen dabei eine
Verwendung einer besonderen Spracheigenschaft einfällt, führen Sie sie
durch, wenn nicht, geben Sie ihr Programm eben so ab (auch dann werden
Sie wohl positiv beurteilt).
Heuer gibt es zwei Präsentationen mit je 15min (Sie müssen den
Rahmen aber nicht ausnutzen).
- Bei der ersten Präsentation muss Ihr Programm noch nicht
funktionieren, aber signifikante Teile des Quellcodes sollten schon
vorhanden sein. Sie präsentieren das zu lösende Problem und zeigen vor allem
Ihren Quellcode, und erhalten dann Tipps, wie man das
besser/idiomatischer schreiben koennte (lassen Sie genuegend Zeit für
diese Diskussion). Sie können auch Fragen stellen, wie man etwas in
der gewählten Programmiersprache schreibt.
- Bei der zweiten Präsentation erinnern Sie das Publikum noch einmal
an das gelöste Problem, zeigen das laufende Programm, und Teile des
Quellcodes, insbesondere die Teile, in denen Sie die besonderen
Spracheigenschaften verwendet haben; und sie müssen natürlich die
Frage nach den besonderen Spracheigenschaften, die Sie verwendet
haben, beantworten. Vor allem diese Präsentation wird zur Benotung
herangezogen.
Abgabe-Directory
Wenn Sie Ihre Abgabe im Web veröffentlichen wollen, legen Sie bitte
mit Ihrem Account auf der g0 in
/nfs/unsafe/httpd/ftp/pub/anton/lvas/stack-abgaben/11w ein Directory
an (das sollten Sie dürfen, und nur Sie (und root) können es dann
entfernen) und legen Sie in diesem Directory die Programm-Sourcen und
ein bisschen Dokumentation ab. In der Dokumentation sollte zumindest
stehen, was das Programm macht, wie man es aufruft, und wer die
Autoren sind; es ist natürlich auch erlaubt, mehr zu schreiben,
z.B. über bemerkenswerte Features oder Programmiertechniken.
Sinnvollerweise schreibt man die Dokumentation in eine Datei
HEADER.html, README.txt, oder index.html (je nach Namen ergibt das
unterschiedliche Effekte bei der Web-Darstellung).
Einige frühere Abgaben
Werden noch festgelegt.
Unterlagen
Notizen (auf Anfrage auch als
Hardcopy erhältlich). Folien
(PDF).
Vortragender/Betreuer
Anton Ertl