Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB...

13
2 CB – SS 2020 – Organisatorisches Organisatorisches Burkhard Messer, TA C 830, Tel. 5019-2511 E-Mail: [email protected] Regeln für E-Mail beachten: Es kann nicht sichergestellt werden, dass E-Mails ankommen. Web: http://wi.f4.htw-berlin.de/users/messer/ Sprechstunde: Donnerstag, 14:15 bis 15:15 Uhr, TA C 830 (Treskow Allee) – nicht im digitalen Semester. Die Änderung zur Version 2 betrifft die Möglichkeit statt einer Präsenzklausur eine eKlausur als Teil der Prüfungsleistung zu nehmen.

Transcript of Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB...

Page 1: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

2CB – SS 2020 – Organisatorisches

Organisatorisches

� Burkhard Messer, TA C 830, Tel. 5019-2511

� E-Mail: [email protected] Regeln für E-Mail beachten: Es kann nicht sichergestellt werden, dass E-Mails ankommen.

� Web: http://wi.f4.htw-berlin.de/users/messer/

� Sprechstunde: Donnerstag, 14:15 bis 15:15 Uhr, TA C 830 (Treskow Allee) – nicht im digitalen Semester.

Die Änderung zur Version 2 betrifft die Möglichkeit statt einerPräsenzklausur eine eKlausur als Teil der Prüfungsleistung zunehmen.

Page 2: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

3CB – SS 2020 – Organisatorisches

Fachgebiet Compilerbau

� Compilerbau (wie auch Betriebssysteme) werden nur noch selten gelehrt.

� Beide Gebiete beinhalten aber Techniken, die in anderen Bereichen notwendig sind:– Parsieren von Datenaustausch-Formaten: XML, JSON

– Im Web: Ajax mit JavaScript-Tests der Responses

– Application Firewalls für Webservices, SQL-Filter

– Realisierung von Shells, z.B. bash, rexx oder Powershell

– Reguläre Ausdrücke

– Domain Specific Languages (DSL)

4CB – SS 2020 – Organisatorisches

Ziele der Veranstaltung I

Das wesentliche Ziel der Veranstaltung besteht darin,dass Sie einen Compiler für eine kleine, aber benutzbareSprache realisieren.

Page 3: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

5CB – SS 2020 – Organisatorisches

Ziele der Veranstaltung II

Nach der Veranstaltung

… kennen Sie die Architektur von Compilern,

… wissen Sie, wie LL(1)-Grammatiken aussehen,

… kennen Sie Zwischensprachen,

… kennen Sie das Generieren von Code,

… kennen Sie einen Interpreter für eine Byte-Code-Maschine.

Es werden keine Inhalte aus dem Reich der Theoretischen Informatikbehandelt, sondern nur die praktischen Aspekte.

6CB – SS 2020 – Organisatorisches

Aufbau der Veranstaltung

� 1. Teil: Realisierung des Compilers für Plong– Lexikalische Analyse

– LL(1)-Parser

– Abstrakter Syntaxbaum

– Codegenerierung für eine virtuelle Maschine

– Virtuelle Maschine

� 2. Teil: Compilertechniken– Speicherverwaltung, Garbage Collection

– Reflexion, Annotationen

– Generics/Typenparameter

– Aspekte

– Pointer (smart, optional, weak etc.)

– (etwas) Extensible Languages

– (etwas) Bootstrapping

– (etwas) Optimierung

Page 4: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.
Page 5: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

10WIS – SS 2020 – Organisatorisches

Bewertung IV – Variante B oder C?

� Variante B wird nur dann gewählt, wenn die Hochschulleitung sich gegen Klausuren in der HTW entschieden hat. Realistischer Zeitpunkt der Entscheidung: Mai-Juni

� Klausuren über das Internet wird es nicht geben.

� Wenn B wegfällt, ersetzen die Übungen K1.. den Teil, der durch die Klausur abgedeckt ist.

� Diese Übungen werden bis zum Datum der Prüfung akzeptiert und gehen in die Zensur ein.

� Es besteht keine Wahl der Studierenden zwischen den beiden Varianten, d.h. sie gilt immer für alle.

Page 6: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

11CB – SS 2020 – Organisatorisches

Bewertung V – Die Aufgabenblätter

Nr. Thema B C

1 Sprache Plong 3 3

2 Scanner 8 8

3 LL(1)-Parser 7 7

4 Abstrakter Syntaxbaum 6 6

K1 Interpreter EM1 6

K2 Codegenerierung 6

K3 Optimierung 4

Die Punktezahl entspricht dem Schwierigkeitsgrad der Lösung.Die Aufgaben müssen in der obigen Reihenfolge gemacht werden,da sie aufeinander aufbauen.

Es kann sein, dass sich während der Veranstaltung heraus stellt,dass es so nicht geht; dann gibt es Änderungen, die vom Umfangher dem hier entsprechen.

12CB – SS 2020 – Organisatorisches

Bewertung VI – die Zensur

Von Bis Zensur

38 40 1.0

36 37 1.3

34 35 1.7

32 33 2.0

30 31 2.3

28 29 2.7

26 27 3.0

24 25 3.3

22 23 3.7

20 21 4.0

0 19 5.0

Punkte

Die Punkte werden zum Zeitpunktder Prüfung zusammengezählt.

Ein nachträgliches Nachreichenist nicht möglich.

Page 7: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

13CB – SS 2020 – Organisatorisches

Bewertung VII – Abgabe der Lösungen

� 1. Prüfungszeitraum (1. PZR):– Der letzte Termin ist der Tag der Klausur.

– Später abgegebene Lösungen auch per Email werden für den 1. Prüfungszeitraum nicht berücksichtigt.

� 2. Prüfungszeitraum (2. PZR):– Der späteste Abgabetermin ist der Klausurtermin des 2.

Prüfungszeitraums

– Später abgegebene Lösungen auch per Email werden für diese Veranstaltung nicht berücksichtigt.

� Bei jeder Abgabe einer Lösung müssen alle Namen der Gruppenmitglieder angegeben werden.

� Nachträgliche Änderungen (rückwirkend) der Gruppe sind nicht zulässig.

� Solange keine Übungen stattfinden können, werden alle Lösungen per Email abgegeben.

14CB – SS 2020 – Organisatorisches

Gruppenarbeit I

� Gruppenarbeit ist bis zu max. 3 Personen zulässig.

� Miteinander reden ist nicht nur erlaubt, sondern erwünscht.

� Aber: Abschreiben ist nicht zulässig!

Wenn jemand eine fremde Kopie als seine eigene abgibt,so werden Original und alle Kopien nicht gewertet.

Also: Entwickeln Sie Ihre Lösung.

Page 8: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

15CB – SS 2020 – Organisatorisches

Gruppenarbeit II

� https://fm4.orf.at/stories/3000611/?utm_source=pocket-newtab

� https://www.projekte.hu-berlin.de/de/gnuHU/anleitungen/digitale-konferenzen

� https://www.un-hack-bar.de/2020/03/25/social-life-2-0-wir-stellen-euch-unsere-infrastruktur-zur-verfuegung/

� https://c3w.at/services/

Einige Links zu freien Werkzeugen

Page 9: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

18WIS – SS 2020 – Organisatorisches

Übungen I – Variante B und C

� Besprechung der Aufgabenblätter findet einmalig während der Übungen(??) statt.

� Die für die Übungen notwendige Software ist immer Open Source oder frei erhältlich. Daher können die Übungen auch zuhause am PC/Laptop gemacht werden.

Page 10: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

20CB – SS 2020 – Organisatorisches

Übungen III

� Es wird in Java 13/14 programmiert.

� Der Compiler-Generator ist Coco/R. Falls dies nicht mit Java 13/14 geht, so wird dann Java8 benutzt.

� Für den Build-Prozess wird maven 3.6.* verwendet.

� Wer möchte kann mit git und einem der Projektserver arbeiten.

� Eclipse oder netbeans sollten benutzt werden müssen aber nicht. Der Dozent unterstützt netbeans 11.3, aber alles sollte auch mit eclipse laufen.

� Jedes Implement wird mit Unit-Tests getestet.

� Es wird das Test Driven Development-Verfahren angewendet.

� Die Tests werden vorgegeben, dazu gehört auch eine JUnit 5-Umgebung.

Falls es mit Coco/R geht:

Page 11: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

22CB – SS 2020 – Organisatorisches

Programmiersprache Plong – PL/0 NG I

Page 12: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

23CB – SS 2020 – Organisatorisches

Programmiersprache Plong – PL/0 NG II

Page 13: Organisatorischeswi.f4.htw-berlin.de/users/messer/LV/AI-Compilerbau-SS20/... · 2020-05-15 · CB – SS 2020 – Organisatorisches 20 Übungen III Es wird in Java 13/14 programmiert.

25CB – SS 2020 – Organisatorisches

Das war's dann wohl....