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 ab 6.10.2014 über unser Web-Anmeldesystem

Vorlesungstermin: ab 10.10.2014: Fr, 15:45-17:15 EI3A (Altes EI, 2. Stock).

Eventuell interessiert Sie auch die LVA Effiziente Programme, die am selben Ort unmittelbar davor (ab 14h) abgehalten wird. -->

Vorlesungsteil beendet

Ab 5.12.2015 Übungs-Präsentationen zum gleichen Termin. Details siehe unten.

Der Termin am 5.12. fällt aus. Grund: Es hat sich niemand für diesen Termin angemeldet. Die Termine am 12.12. und 19.12. finden statt.

Bis 3.12. Web-Anmeldung zur 1. Präsentation (als "Abgabegespräch"). Bis 7.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).

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/14w 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

Termin/Anmeldung zur Präsentation

Die Termine sind:
1. Präsentation:   5.12., 12.12., 19.12.  Anmeldung: 14.11.-3.12.
2. Präsentation:   9.1.,  16.1.,  23.1.   Anmeldung: 14.11.-7.1.
Die Terminvergabe erfolgt über unser Web-Anmeldesystem. Und zwar müssen Sie dabei folgendermaßen vorgehen: Im WS 2014/2015 ist im Normalfall eine Gruppengröße von zwei Personen vorgesehen. Wenn Sie eine andere Gruppengröße bilden wollen, schreiben Sie an studass@complang.tuwien.ac.at. Beachten Sie allerdings, dass die Anzahl der Termine begrenzt ist, sodass wir nur eine begrenzte Zahl kleinerer Gruppen akzeptieren können. Bei größeren Gruppen sollte die Arbeit auch entsprechend mehr zu bieten haben.

Unterlagen

Notizen (auf Anfrage auch als Hardcopy erhältlich). Folien (PDF).

Vortragender/Betreuer

Anton Ertl