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).
- 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/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
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:
- Eines der Mitglieder der Gruppe klickt auf "Gruppe bilden" und
trägt die Matrikelnummer seiner Partner ein (zur Gruppengröße siehe unten).
- Wenn die Gruppe gebildet ist, sollte eines der Gruppenmitglieder
auf "Abgabegespräche anzeigen" und "Termine anzeigen" klicken, um
sich dort zum ersten Präsentationstermin anzumelden.
- Für den zweiten Termin meldet sich (genau) ein Mitglied der Gruppe
zu einer Prüfung an. Unser Anmeldesystem kennt leider nur
Einzelanmeldungen für Prüfungen. Von jeder Gruppe soll sich daher nur
eine Person anmelden.
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