---
Institut für Informatik und Praktische Mathematik
Christian-Albrechts-Universität zu Kiel

Übungen zu Implementierung objektorientierter Sprachen
Priv.-Doz. Dr. Wolfgang Goerigk

Serie 7    [PostScript]

---

Die Übung am kommenden Mittwoch, den 14. Februar 2001 wollen wir wieder im Rechnerraum im 7. Obergeschoss des Hochhauses abhalten.
---

 
Aufgabe 20 ( MiniJava-Übersetzer, Praktische Hausaufgabe 15 Pkt.)


Schreiben Sie ein Java-Programm, das eine MiniJava-Quellprogramm gemäß der in der Vorlesung angegebenen Übersetzungsvorschrift in eine Reihe von mit den Klassennamen benannten JVM-Klassendateien übersetzt. Testen Sie Ihren Übersetzer mit verschiedenen Programmen und lassen Sie den generierten Code von der JVM interpretieren.

Ergänzen Sie dazu die für die Klasse mit der Methode "main" generierte Klassendatei so, daß die Klassen

    java.lang.System
    java.io.PrintStream

und eventuell auch

    java.lang.Exception,

die Instanzvariable

         out   vom Typ "Ljava/io/PrintStream;", definiert in "java/lang/System"

und die Methode

         println vom Typ "(I)V", definiert in der Klasse java/io/PrintStream

bekannt sind, so daß Ihre "main"-Methode "void System.out.println (int)" aufrufen kann. Wenn die "main"-Methode weitere so bekannt gemachte Systemmethoden aufrufen soll, muss sie evtl. so  deklariert sein, dass sie eine Ausnahme vom Typ java.lang.Exception auslösen kann. Dazu erzeugen Sie für diese Methode zusätzlich ein "Exceptions"-Attribut mit einem Eintrag, der auf die CONSTANT_Class-info für "java/lang/Exception" im Konstantenpool zeigt.
 

Hinweis:  Dies ist die letzte Aufgabe :-)
 

Abgabetermin: Mittwoch, 14.2.2001
 
 
 

------