SHOW:
|
|
- or go back to the newest paste.
| 1 | Compilerbau | |
| 2 | - | (# unleserliches Zeichen) |
| 2 | + | ############## |
| 3 | ||
| 4 | 2) | |
| 5 | 1. Wie ist ein Übersetzer strukturiert? Beschreiben sie kurz die Aufgaben und Ergebnise der einzelnen Phasen! (3P.) | |
| 6 | - | 1. |
| 6 | + | |
| 7 | - | Wie ist ein Übersetzer strukturiert? Beschreiben sie kurz die Aufgaben und Ergebnise der einzelnen Phasen! (3P.) |
| 7 | + | |
| 8 | ||
| 9 | 3) | |
| 10 | 1. Grammatik G=(...) ? [Angeschrieben] (2P.) | |
| 11 | 2. Definition der Chomski-Hierarchie. Name der Grammatikklasse und Form der Grammatikregel! | |
| 12 | (1) (2) (3) (4) | |
| 13 | - | 2.Definition der Chomski-Hierarchie. Name der Grammatikklasse und Form der Grammatikregel! |
| 13 | + | |
| 14 | - | (1) (2) (3) (4) |
| 14 | + | |
| 15 | 5. Gegeben sei folgende Sprache (...) Höchster Typ? Erzeugende Grammatik? | |
| 16 | T={x,y}
| |
| 17 | a) L={x^n|n >= 0}
| |
| 18 | - | T={x,y}
|
| 18 | + | b) L={x^n*y^m|n,m >= 0}
|
| 19 | - | a) L={x^n|n >= 0}
|
| 19 | + | |
| 20 | - | b) L={x^n*y^m|n,m >= 0}
|
| 20 | + | |
| 21 | 4) | |
| 22 | ||
| 23 | 1. LARK + AST | |
| 24 | |Wait ... | | |
| 25 | |END BNF | | |
| 26 | a) AST der beiden Listen? | |
| 27 | b) möglichst vollständige LARK-Spezifikation | |
| 28 | 2. | |
| 29 | a) AST zur Darstellung dieser Anweisung. Skizziere Darstellung der Knoten und "Vererbungshierarchie" | |
| 30 | EXP = < | |
| 31 | no_expr. = . | |
| 32 | name = (Name: tIdent). | |
| 33 | int_const = [Value: int]. | |
| 34 | binary_expr = [Op: char ] | |
| 35 | Left: EXPR | |
| 36 | Right: EXPR | |
| 37 | b) Geben sie den wesentlichen Abschnitt der Spezifikation für das Werkzeug AST an | |
| 38 | c) Zeichnen sie den abstrakten Syntaxbaum | |
| 39 | - | b)Geben sie den wesentlichen Abschnitt der Spezifikation für das Werkzeug AST an |
| 39 | + | |
| 40 | 5) | |
| 41 | 1. Kann man aus einer rekursiven Grammatik einen Top-down-Parser erzeugen? Transformationsschema? | |
| 42 | 2. G=(N,T,P,E) N={E} T={i,+} P={E::=E'+'E, E::=i}
| |
| 43 | 3. Implementiere einen deterministischen, rekursiven Abstiegsparser in REX (name: scan) | |
| 44 | - | 2. G=(N,T,P,E) N={E} T={i,+} P={E::=E'+'*E#i} 3. Implementiere einen deterministischen, nicht #nucularen#, rekursiven Abstiegsparser in REX (name: scan)
|
| 44 | + | |
| 45 | b) Grammatik transormieren | |
| 46 | c) LL(n)-Bed. erfüllt? (Rechnung!!!) | |
| 47 | d) Setze Programmcode c-ähnlich um (Token-Funktion explizit ist ausreichend) | |
| 48 | e) Wo können Syntaxfehlermeldungen ausgegeben werden? Welche Info? | |
| 49 | ||
| 50 | 6) Attributgrammatiken | |
| 51 | 1. Beschreiben sie die Berechnung synthetischer Attribute | |
| 52 | 2. Beschreiben sie die Berechnung vererbter Attribute | |
| 53 | 3. Andere "Arten" von Attributen? | |
| 54 | 4. Definieren eines abstrakten Syntaxbaumes | |
| 55 | TREE code_tree | |
| 56 | EXPR = < | |
| 57 | unary_expr = [Op: char] | |
| 58 | arg: EXPR | |
| 59 | binary_expr = [Op: char] | |
| 60 | Left: EXPR | |
| 61 | Right: EXPR | |
| 62 | identifier = (Name: tIdent) | |
| 63 | 5. Gib eine Attributgrammatik an, die für die Kanten K die Anzahl aller Unterknoten bestimmt. | |
| 64 | 6. Bestimmen sie die Berechnungsart des COUNT-Attributs | |
| 65 | MODULE count | |
| 66 | TREE code_tree | |
| 67 | EVAL eval | |
| 68 | DECLARE | |
| 69 | EXPR (Count: int _____). | |
| 70 | RULE | |
| 71 | identifier = {}
| |
| 72 | unary_expr = {}
| |
| 73 | binary_expr = {}
| |
| 74 | END COUNT | |
| 75 | ||
| 76 | 7) Werkzeuge | |
| 77 | 1. Typ der Sprache, damit LEX/REX automatische Akteure generieren können? | |
| 78 | 2. Welche Art von Automat wird hierfür erzeugt? | |
| 79 | - | 2. Welche Art von #Antomul# wird hierfür erzeugt? |
| 79 | + | 3. LR-Parser |
| 80 | - | 3) LR-Parser |
| 80 | + | |
| 81 | b) Welche weiteren Konfliktlösungsansätze kann ein Compilerbauer noch anwenden? |