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
Anmeldung
über TISS.
Bitte melden Sie sich möglichst bis zum Ende des Tags der ersten
Vorlesung an. Am Tag danach legen wir die Accounts an.
Vorlesungstermin: Do, 17:00-18:45 FAV Hörsaal 1 (Favoritenstrasse
9-11); je nach Bedarf 17:00-18:30 oder 17:15-18:45. Erster Termin
siehe TISS.
Vorlesungsteil beendet
Nach Ende des Vorlesungsteils ab 28.11.2019 Übungspräsentationen
zum gleichen Termin. Anmeldung bis 27.11.2019
über TISS. Zum
Termin am 9.1.2020 sind keine Teilnehmer angemeldet, und er findet daher
nicht statt. Die Termine 16.1. und 23.1. finden statt.
Eventuell sind Sie auch
an Effiziente Programme
interessiert, das am selben Ort davor gehalten wird.
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 genügend 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/19w 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