Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Compilerbau
- ##############
- 2)
- 1. Wie ist ein Übersetzer strukturiert? Beschreiben sie kurz die Aufgaben und Ergebnise der einzelnen Phasen! (3P.)
- 2. Welche internen Darstellungen verwendet ein Übersetzer (des Quellcodes)? (3P.)
- 3. Welche Rolle spielt die Grammatik einer Sprache? (2P.)
- 3)
- 1. Grammatik G=(...) ? [Angeschrieben] (2P.)
- 2. Definition der Chomski-Hierarchie. Name der Grammatikklasse und Form der Grammatikregel!
- (1) (2) (3) (4)
- 3. Was bedeutet Linksableitung?
- 4. Was bedeutet Eindeutigkeit einer Grammatik?
- 5. Gegeben sei folgende Sprache (...) Höchster Typ? Erzeugende Grammatik?
- T={x,y}
- a) L={x^n|n >= 0}
- b) L={x^n*y^m|n,m >= 0}
- 6. Theoretische LR(K) k >= 2 notwendig? Begründung? [Zeichenvorrausschau]
- 4)
- 1. LARK + AST
- |Wait ... |
- |END BNF |
- a) AST der beiden Listen?
- b) möglichst vollständige LARK-Spezifikation
- 2.
- a) AST zur Darstellung dieser Anweisung. Skizziere Darstellung der Knoten und "Vererbungshierarchie"
- EXP = <
- no_expr. = .
- name = (Name: tIdent).
- int_const = [Value: int].
- binary_expr = [Op: char ]
- Left: EXPR
- Right: EXPR
- b) Geben sie den wesentlichen Abschnitt der Spezifikation für das Werkzeug AST an
- c) Zeichnen sie den abstrakten Syntaxbaum
- 5)
- 1. Kann man aus einer rekursiven Grammatik einen Top-down-Parser erzeugen? Transformationsschema?
- 2. G=(N,T,P,E) N={E} T={i,+} P={E::=E'+'E, E::=i}
- 3. Implementiere einen deterministischen, rekursiven Abstiegsparser in REX (name: scan)
- a) Operator linksassoziativ festlegen
- b) Grammatik transormieren
- c) LL(n)-Bed. erfüllt? (Rechnung!!!)
- d) Setze Programmcode c-ähnlich um (Token-Funktion explizit ist ausreichend)
- e) Wo können Syntaxfehlermeldungen ausgegeben werden? Welche Info?
- 6) Attributgrammatiken
- 1. Beschreiben sie die Berechnung synthetischer Attribute
- 2. Beschreiben sie die Berechnung vererbter Attribute
- 3. Andere "Arten" von Attributen?
- 4. Definieren eines abstrakten Syntaxbaumes
- TREE code_tree
- EXPR = <
- unary_expr = [Op: char]
- arg: EXPR
- binary_expr = [Op: char]
- Left: EXPR
- Right: EXPR
- identifier = (Name: tIdent)
- 5. Gib eine Attributgrammatik an, die für die Kanten K die Anzahl aller Unterknoten bestimmt.
- 6. Bestimmen sie die Berechnungsart des COUNT-Attributs
- MODULE count
- TREE code_tree
- EVAL eval
- DECLARE
- EXPR (Count: int _____).
- RULE
- identifier = {}
- unary_expr = {}
- binary_expr = {}
- END COUNT
- 7) Werkzeuge
- 1. Typ der Sprache, damit LEX/REX automatische Akteure generieren können?
- 2. Welche Art von Automat wird hierfür erzeugt?
- 3. LR-Parser
- a) Wie werden Grammatikkonflikte by-default von Parsergeneratoren gelöst?
- b) Welche weiteren Konfliktlösungsansätze kann ein Compilerbauer noch anwenden?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement