Skip to content

Commit 5b88ada

Browse files
committed
homework: remove Java as implementation language
also: add a JDK as pre-condidition to ANTLR closes #409
1 parent 04c7c82 commit 5b88ada

4 files changed

Lines changed: 16 additions & 17 deletions

File tree

homework/sheet03.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ wirklich benötigen - das ist Ihr Abstract-Syntex-Tree (*AST*) für diesen Task.
311311

312312
Programmieren Sie eine Transformation des Parse-Tree in die von Ihnen hier
313313
formulierten AST-Strukturen. Dies können Sie beispielsweise mit einer passenden
314-
Traversierung (Visitor-Pattern oder über Pattern-Matching in Java 25) erreichen.
314+
Traversierung (Visitor-Pattern oder über Pattern-Matching auf Klassen) erreichen.
315315

316316
Passen Sie den Pretty-Printer so an, dass er auch den AST ausgeben kann. (Alternativ
317317
können auch einen zweiten Pretty-Printer für den AST implementieren.)

homework/sheet04.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ Sie finden nachfolgend eine Beschreibung der Zielsprache für dieses Blatt.
1818
Erstellen Sie zunächst eine Grammatik für diese Sprache. Implementieren Sie dann
1919
basierend auf dieser Grammatik einen Lexer und einen *recursive descent* Parser
2020
(manuelle Implementierung, kein ANTLR). Überlegen Sie sich, welche Strukturen ein
21-
AST für diese Sprache haben sollte und implementieren Sie diese Strukturen in Java
22-
und schreiben Sie eine Transformation des Parse-Trees in diesen AST.
21+
AST für diese Sprache haben sollte und implementieren Sie diese Strukturen und
22+
schreiben Sie eine Transformation des Parse-Trees in diesen AST.
2323

24-
Es ist empfehlenswert, die Implementierung in Java mehrstufig zu realisieren:
24+
Es ist empfehlenswert, die Implementierung mehrstufig zu realisieren:
2525

2626
1. Einlesen aus einer Datei mit Lisp-artigem Code
2727
2. Lexen des eingelesenen Code
@@ -310,13 +310,13 @@ Zeigen Sie, dass die Grammatik LL(1) ist.
310310

311311
## A4.3: Lexer (2P)
312312

313-
1. Definieren Sie in Java Strukturen, die Sie für die Repräsentation der Token
314-
entsprechend Ihrer Grammatik benötigen.
313+
1. Definieren Sie Strukturen, die Sie für die Repräsentation der Token entsprechend
314+
Ihrer Grammatik benötigen.
315315

316316
2. Implementieren Sie dann analog zum Vorgehen in der Vorlesung einen Lexer, der
317317
den entsprechenden Teil Ihrer Grammatik abbildet. Diesen Lexer sollen Sie
318-
manuell in Java implementieren, Sie dürfen also nicht ANTLR oder andere
319-
Generatoren benutzen.
318+
manuell implementieren, Sie dürfen also nicht ANTLR oder andere Generatoren
319+
benutzen.
320320

321321
Implementieren Sie dabei das Verarbeiten des Lisp-artigen Codes aus einem
322322
übergebenen String.
@@ -334,8 +334,8 @@ Fehlermeldung darf Ihr Lexer "aussteigen".
334334

335335
Implementieren Sie analog zum Vorgehen in der Vorlesung einen Parser mit *recursive
336336
descent*, der den entsprechenden Teil Ihrer Grammatik abbildet. Diesen Parser sollen
337-
Sie manuell in Java implementieren, Sie dürfen also nicht ANTLR oder andere
338-
Generatoren benutzen.
337+
Sie manuell implementieren, Sie dürfen also nicht ANTLR oder andere Generatoren
338+
benutzen.
339339

340340
Implementieren Sie dabei das Verarbeiten des Lisp-artigen Codes aus einem
341341
übergebenen String.

homework/sheet08.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ title: "Blatt 08: Mini-Projekt C++-Interpreter"
88

99
Entwickeln Sie in Ihrem 3er-Team gemeinsam einen Interpreter für C++.
1010

11-
Nutzen Sie als Implementierungssprache Java.[^1] Sie *können* ANTLR zur Erstellung
12-
Ihres Lexers und Parsers einsetzen, Sie können aber auch gern einen selbst
13-
implementierten LL-Parser mit *recursive descent* einsetzen.
11+
Sie *können* ANTLR zur Erstellung Ihres Lexers und Parsers einsetzen, Sie können
12+
aber auch gern einen selbst implementierten LL-Parser mit *recursive descent*
13+
einsetzen.
1414

1515
Definieren Sie zunächst eine passende Grammatik und den AST, bevor Sie Lexer und
1616
Parser umsetzen. Achten Sie auf eine angemessene semantische Analyse, achten Sie
@@ -107,6 +107,3 @@ erfolgen.**
107107
Geben Sie wie bei den anderen Blättern auch pro Person ein individuelles Post Mortem
108108
im ILIAS ab. Geben Sie dabei im Post Mortem unbedingt die URL zu Ihrem Team-Repo an.
109109
Denken Sie daran, dass dieses Repo öffentlich einsehbar sein muss.
110-
111-
[^1]: Nach **vorheriger Absprache** können Sie auch eine andere
112-
Implementierungssprache verwenden.

lecture/01-lexing/antlr-lexing.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ Interpunktions-Token) kann man sich das Attribut auch sparen, da das Lexem durch
163163
Tokennamen eindeutig rekonstruierbar ist.
164164

165165
| Token | Beschreibung | Beispiel-Lexeme |
166-
|:-----------|:--------------------------------------------------|:---------------------|
166+
|:----------|:-----------------------------------------------------|:---------------------|
167167
| `if` | Zeichen `i` und `f` | `if` |
168168
| `relop` | `<` oder `>` oder `<=` oder `>=` oder `==` oder `!=` | `<`, `<=` |
169169
| `id` | Buchstabe, gefolgt von Buchstaben oder Ziffern | `pi`, `count`, `x3` |
@@ -201,6 +201,8 @@ href="https://github.com/Compiler-CampusMinden/CB-Vorlesung-Bachelor/blob/master
201201

202202
- Lokal für die Nutzung in der Konsole:
203203

204+
- Es wird ein JDK benötigt. Installieren Sie am besten die aktuelle
205+
LTS-Version.
204206
- Aktuelle Version herunterladen:
205207
[antlr.org](https://www.antlr.org/download.html), für Java als Zielsprache:
206208
["Complete ANTLR 4.x Java binaries

0 commit comments

Comments
 (0)