Guest User

Compiler2013

a guest
Feb 7th, 2014
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. Compilerbau
  2. (# unleserliches Zeichen)
  3.  
  4.  
  5. 2)
  6. 1.
  7. Wie ist ein Übersetzer strukturiert? Beschreiben sie kurz die Aufgaben und Ergebnise der einzelnen Phasen! (3P.)
  8. 2. Welche internen Darstellungen verwendet ein Übersetzer (des Quellcodes)? (3P.)
  9. 3. Welche Rolle spielt die Grammatik einer Sprache? (2P.)
  10.  
  11. 3)
  12. 1. Grammatik G=(...) ? [Angeschrieben] (2P.)
  13. 2.Definition der Chomski-Hierarchie. Name der Grammatikklasse und Form der Grammatikregel!
  14. (1) (2) (3) (4)
  15. 3. Was bedeutet Linksableitung?
  16. 4. Was bedeutet Eindeutigkeit einer Grammatik?
  17. 5. Gegeben sei folgende Sprache (...) Höchster Typ? Erzeugende Grammatik?
  18. T={x,y}
  19. a) L={x^n|n >= 0}
  20. b) L={x^n*y^m|n,m >= 0}
  21. 6. Theoretische LR(K) k >= 2 notwendig? Begründung? [Zeichenvorrausschau]
  22.  
  23. 4)
  24.  
  25. 1. LARK + AST
  26. |Wait ... |
  27. |END BNF |
  28. a) AST der beiden Listen?
  29. b) möglichst vollständige LARK-Spezifikation
  30. 2.
  31. a) AST zur Darstellung dieser Anweisung. Skizziere Darstellung der Knoten und "Vererbungshierarchie"
  32. EXP = <
  33. no_expr. = .
  34. name = (Name: tIdent).
  35. int_const = [Value: int].
  36. binary_expr = [Op: char ]
  37. Left: EXPR
  38. Right: EXPR
  39. b)Geben sie den wesentlichen Abschnitt der Spezifikation für das Werkzeug AST an
  40. c) Zeichnen sie den abstrakten Syntaxbaum
  41.  
  42. 5)
  43. 1. Kann man aus einer rekursiven Grammatik einen Top-down-Parser erzeugen? Transformationsschema?
  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)
  45. a) Operator linksassoziativ festlegen
  46. b) Grammatik transormieren
  47. c) LL(n)-Bed. erfüllt? (Rechnung!!!)
  48. d) Setze Programmcode c-ähnlich um (Token-Funktion explizit ist ausreichend)
  49. e) Wo können Syntaxfehlermeldungen ausgegeben werden? Welche Info?
  50.  
  51. 6) Attributgrammatiken
  52. 1. Beschreiben sie die Berechnung synthetischer Attribute
  53. 2. Beschreiben sie die Berechnung vererbter Attribute
  54. 3. Andere "Arten" von Attributen?
  55. 4. Definieren eines abstrakten Syntaxbaumes
  56. TREE code_tree
  57. EXPR = <
  58. unary_expr = [Op: char]
  59. arg: EXPR
  60. binary_expr = [Op: char]
  61. Left: EXPR
  62. Right: EXPR
  63. identifier = (Name: tIdent)
  64. 5. Gib eine Attributgrammatik an, die für die Kanten K die Anzahl aller Unterknoten bestimmt.
  65. 6. Bestimmen sie die Berechnungsart des COUNT-Attributs
  66. MODULE count
  67. TREE code_tree
  68. EVAL eval
  69. DECLARE
  70. EXPR (Count: int _____).
  71. RULE
  72. identifier = {}
  73. unary_expr = {}
  74. binary_expr = {}
  75. END COUNT
  76.  
  77. 7) Werkzeuge
  78. 1. Typ der Sprache, damit LEX/REX automatische Akteure generieren können?
  79. 2. Welche Art von #Antomul# wird hierfür erzeugt?
  80. 3) LR-Parser
  81. a) Wie werden Grammatikkonflikte by-default von Parsergeneratoren gelöst?
  82. b) Welche weiteren Konfliktlösungsansätze kann ein Compilerbauer noch anwenden?
  83. Lösung: Streitgespräche und brachiale Gewalt
Advertisement
Add Comment
Please, Sign In to add comment