TU Wien:Stackbasierte Sprachen VU (Ertl)

Aus VoWi
Zur Navigation springen Zur Suche springen

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Martin Ertl
ECTS 3,0
Alias Stack-based languages (en)
Letzte Abhaltung 2023W
Sprache „bei bedarf in englisch“ ist kein zulässiger Sprachcode.
Mattermost stackbasierte-sprachenRegisterMattermost-Infos
Links tiss:185310
Zuordnungen
Masterstudium Logic and Computation Modul Programming Languages and Verification (Gebundenes Wahlfach)
Masterstudium Software Engineering & Internet Computing Modul Computersprachen und Programmierung (Gebundenes Wahlfach)


Inhalt[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Hausübungen[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

  • WS09: Sehr schnell, ein paar Tage nach dem letzten LVA-Termin (noch im Jänner).
  • WS21: Noch am Tag der letzten Projektpräsentationen.

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Die LVA-Website und davon verlinkte Unterlagen:

Tipps[Bearbeiten | Quelltext bearbeiten]

  • 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.

Highlights / Lob[Bearbeiten | Quelltext bearbeiten]

noch offen

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

noch offen

Materialien

Diese Seite hat noch keine Anhänge, du kannst aber neue hinzufügen.