CB-I im WS99/00

Blatt 1

Aufgabe 1

Sie verfügen über einen C-Compiler, der für Intel-386-Code geschrieben ist, und auch solchen Code erzeugt. Über diesen Compiler verfügen Sie auch im Quellcode. Sie möchten nun diesen Compiler so optimieren, daß er Code für Intel-586 (Pentium) generiert, und auch für diese Architektur effizient läuft. Beschreiben Sie ihr Vorgehen, auch mit Hilfe von T-Diagrammen.

Aufgabe 2

Sie verfügen über den Java-Quellcode einer Java-Virtual-Machine (JVM) in Version 2, und über eine laufende JVM in der Version 1. Können Sie damit eine laufende JVM2 erzeugen? Wenn ja, ist diese effizient?

Aufgabe 3

Gegeben sei ein Interpreter für arithmetische Ausdrücke. Werden für diesen auch Techniken des Compilerbaus benutzt? Welche?

Aufgabe 4

Geben Sie eine kontextfreie Grammatik für einen Taschenrechner an, der in polnischer Postfix-Notation arbeitet.

Polnische Postfix-Notation: Die Operatoren werden hinter die Operanden geschrieben, z.Bsp. sollte 7 3 4 + - Null ergeben.

Wandeln sie die Grammatik dann in Chomsky-Normalform um.

Aufgabe 5

Welche der beiden u.a. Sprachen ist kontextfrei?

L1 = {aibj | i,j aus N0, i ungleich j } und

L2 = { aibj | i,j aus N0, i=j2 }

Dietmar Lammers
Last modified: Wed Nov 17 15:58:44 MET 1999