TU Wien:Stackbasierte Sprachen VU (Ertl)
Daten[edit | edit source]
Lecturers | Martin Ertl |
---|---|
ECTS | 3 |
Alias | Stack-based languages (en) |
Department | Forschungsbereich Compilers and Languages |
When | winter semester |
Last iteration | 2022WS |
Language | Deutsch |
Mattermost | stackbasierte-sprachen • Register • Mattermost-Infos |
Links | tiss:185310, Homepage |
Master Logic and Computation | Wahlmodul Programming Languages and Verification |
Master Software Engineering & Internet Computing | Wahlmodul Computersprachen und Programmierung |
Inhalt[edit | edit source]
Einführung in stackbasierte Sprachen, insbesondere Forth; dazu etwas Postscript. Erläutert wird, was Forth so besonders macht: Ein einzigartiges Ausführungsmodell sowie die Möglichkeit, beliebige Codestücke zur Compilezeit auszuführen. Dadurch ist es möglich, benutzerdefinierte Abstraktionen bzw. Domain Specific Languages zu implementieren.
Ablauf[edit | edit source]
Wöchentliche Vorlesung, meist auch eine kleine Hausübung, die dann in der nächsten Stunde durchbesprochen wird. Außerdem eine Programmieraufgabe, siehe unten.
Benötigte/Empfehlenswerte Vorkenntnisse[edit | edit source]
Gewisse Kenntnisse über Konzepte und Implementierung von Programmiersprachen sind sehr zu empfehlen. Ein prominentes Beispiel für Metaprogrammierung mit Forth ist ein Parsergenerator; wer weiß, was ein Parsergenerator ist, hat davon wesentlich mehr. Ein weiteres Beispiel ist ein Objektsystem in Forth. Daher ist es von Vorteil, zuerst TU Wien:Übersetzerbau VL (Ertl, Krall) zu besuchen.
Auch Pointerarithmetik sollte man schon gesehen haben.
Vortrag[edit | edit source]
Meinung 1: "Wer hat das verstanden?", "Gibt es dazu Fragen?" - Alle fünf Minuten wird man damit konfrontiert, nämlich immer dann, wenn der Vortragende versucht, etwas zu erklären (was nicht immer dazu führt, dass die Zuhörer auch viel mitbekommen). Der Vortrag reißt niemanden vom Hocker, ist aber auch nicht wirklich schlecht. Programmierkenntnisse und -konzepte sind meiner Meinung nach schwer in einer Vorlesung vermittelbar; unter diesem Umstand leiden zahlreiche Programmiervorlesungen an der TU.
Meinung 2: Leider schwach. Ertl ist kein geborener Erklärer. Insbesondere bei Konzepten, die für ihn trivial wirken, tut er sich schwer, sie Anfängern zu vermitteln.
Übungen[edit | edit source]
Hausübungen[edit | edit source]
Die Hausübungen bestehen darin, bis zur jeweils nächsten Stunde die in der Vorlesung genannten Abschnitte im Gforth-Tutorial zu lesen und die im Tutorial angeführten Übungsbeispiele vorzubereiten. Die Beispiele werden dann in der nächsten Stunde gemeinsam durchbesprochen. Freiwillige Meldungen sind dabei erwünscht; gegen seinen Willen wird niemand gefragt, soweit ich mich erinnern kann.
Programmieraufgabe[edit | edit source]
In Gruppen zu drei (oder zwei) Personen soll ein beliebiges, beliebig kleines Programm in einer stackbasierten Sprache programmiert werden (Forth, Postscript; Factor ist angeblich auch OK, und wahrscheinlich auch Joy oder eine noch unbekanntere Sprache, solang sie als stackbasiert durchgeht). Die einzige Bedingung ist, daß man die besonderen Sprachkonzepte nutzen soll: Codeerzeugung zur Compilezeit, Dictionaries etc. Darunter fallen nicht die Grafikprimitive von Postscript, weil die in anderen Programmiersprachen einfach mit Libraries nachgebildet werden könnten.
Prüfung, Benotung[edit | edit source]
Prüfung gibt es keine, benotet werden eigentlich nur die Präsentationen der Programmierbeispiele. Während der Diskussionen der Hausübungen schreibt Ertl nicht mit, aber es ist natürlich nicht ausgeschlossen, daß man dabei nachhaltig positiv auffällt.
Dauer der Zeugnisausstellung[edit | edit source]
- WS09: Sehr schnell, ein paar Tage nach dem letzten LVA-Termin (noch im Jänner).
- WS21: Noch am Tag der letzten Projektpräsentationen.
Zeitaufwand[edit | edit source]
Mäßig. Die Hausübungen benötigen recht wenig Zeit; da sie nicht formal überprüft werden, kann man dabei auch Beispiele überspringen, wenn man das für sinnvoll hält. Den Umfang der Programmieraufgabe bestimmt man selbst. Sie muß nicht groß sein, aber Debugging von Programmen in einer neuen Programmiersprache kann natürlich beliebig viel Zeit kosten.
Unterlagen[edit | edit source]
Die LVA-Website und davon verlinkte Unterlagen:
Tipps[edit | edit source]
- Offen für Neues sein.
- Mit dem Tutorial und den dazugehörigen Fragen, die ja das ganze Jahr über online sind, kann man beliebig vorarbeiten.
Verbesserungsvorschläge / Kritik[edit | edit source]
noch offen