• Keine Ergebnisse gefunden

Compilerbau – Pr¨ ufungsleistung –

N/A
N/A
Protected

Academic year: 2022

Aktie "Compilerbau – Pr¨ ufungsleistung –"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Compilerbau – Pr¨ ufungsleistung –

Dozent: Martin Pl¨umicke, Andreas Stadelmeier SS 2021

Spezifikation

Deklarationen: • Σ: Eingabe–Alphabet

• JC: Menge aller syntaktisch korrekten Java–Klassen mit folgenden Einschr¨ankun- gen:

– keine generischen Klassen – keine abstrakten Klassen – keine Vererbung

– keine Interfaces – keine Threads – keine Exceptions – keine Arrays

– als Basistypen sind nurint,boolean undchar zugelassen – keine Packages

– keine Imports

– keine Lambda–Expressions

• BC: Menge aller Bytecode–Files

Eingabe: p∈Σ Vorbedingung: ∅

Ausgabe: bc∈BC∪ {error}

Nachbedingungen: • falls p∈(J C), so istbc∈(BC) undp wird nachbc ¨ubersetzt wie es durch die Sprache Java definiert ist.

• fallsp6∈(J C), so istbc=error.

Vorgehen

Arbeitsteam: Der Java–Compiler wird in einem Team von 8 Personen erstellt. Das Team wird nochmals unterteilt:

1

(2)

• Projektleitung (1 Person)

GIT-Repository: Einrichten eines GIT-Repositories auf den DHBW GIT-Server (Kontakt: Markus Steppacher)

Schnittstellen: Programmierung der Schnittstellen zwischen den Projektteilen Dokumenataion: Erstellen der Dokumentation

• Scannen/Parsen/Abstrakte Syntax (2 Personen) Scannen: alex–File programmieren

Parsen: Erstellen des happy–Files oder des Kombinator–Parsers und Aufbau des abstrakten Syntaxbaums

• Semantische Analyse: Typisierung der abstrakten Syntax(1 Person)

• Codeerzeugung (3 Personen):

– Aufbau eines abstrakten ClassFiles (1 Person) – Konstantenpool (1 Person)

– Umwandlung des ClassFiles in Bytecode (1 Person)

• Tester (1 Person)

– Testsuite von Java–Files, die alle implementierten Features abdecken.

– H¨andische ¨Ubersetzung aller Java-Files der Testsuite in die abstrakte Syntax (als Test–Eingaben f¨ur den Typ-Checker)

– H¨andische ¨Ubersetzung aller Testf¨alle der abstrakten Syntax in getypte ab- strakte Syntax (als Test–Eingaben f¨ur den Code-Generierer).

– H¨andische Typisierung aller Testf¨alle der getypten abstrakten Syntax in abstrakten Bytecode.

– Automatische Tests, die die jeweilgen Testsuite mit den implementierten Funktionen des Teams vergleichen

Pr¨ufungsleistung

Die Arbeitsleistung einer/s jeden Studierenden wird bewertet an Hand folgender Kriterien:

• Projektergebnis

• w¨ochentlicher Projektfortschritt

• Mitarbeit im Team

Das Projektergebnis muss folgendes beinhalten:

• Kurzdokumentation aus der hervorgeht welche Leistung der jeweiligen Studierende erbrachten hat.

• Im Teilprojekt muss folgendes vorliegen:

– Eine Testsuite von Java–Programmen, f¨ur die der Compilerteil funktioniert.

– Pr¨asentation des Programms an Hand der erstellen Testsuites.

• Durchgehendes Beispiel, f¨ur das der gesamte Compiler funktioniert.

• Abgabetermin: Letzter Tag der Klausurwoche

2

Referenzen

ÄHNLICHE DOKUMENTE

Aussagenlogik Syntax und Semantik der AL Grundlegende semantische Begriffe AL und Boolesche Funktionen AL Kompaktheitssatz.. AL Resolution AL Sequenzenkalk¨

Professor f¨ ur Mathematische Logik und Grundlagen der Informatik TUD, Fachbereich Mathematik..

unser Gast- akk will-PT. Myśmy Marek chcieli, żeby spotkał naszego gościa po obiedzie. Myśmy naszego gościa chcieli, żeby Marek spotkał po obiedzie. Dass auch für

An den Beispielen in Abbildung 6.15 und 6.16 wird deutlich, dass SN-MCTAG durch seine höhere derivationelle Mächtigkeit eine Bewegungsanalyse für Satz (10) zulässt, die mit

Lidzbabski, der sich mit der Erforschung östlicher neuaramäischer Manuskripte beschäftigte, bemerkt, daß diese Dialekte in 2 Hauptgruppen.. zerfallen: die tur-abdinische (er nennt

Hat eine Sprache also weniger gute syntaktische Projektionsmöglichkeiten, so kann daraus nicht geschlossen werden, dass keinerlei Projektionen über den weiteren Verlauf

• Dann benötigen wir jedoch höhere abstrakte Funktionen — davon gibt es leider sehr viele :-(. • Solche Funktionen werden darum durch fn x

In der BNF können Definitionen rekursiv erfolgen, z.B.: Variablen- Name in C, beginnend mit einem Buchstaben oder Unterstrich und bestehend aus Buchstaben, Unterstrichen