• Keine Ergebnisse gefunden

Universit¨at Karlsruhe (TH) Lehrstuhl f¨ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Universit¨at Karlsruhe (TH) Lehrstuhl f¨ur Programmierparadigmen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨ at Karlsruhe (TH)

Lehrstuhl f¨ ur Programmierparadigmen

Compilerpraktikum SS 2010 http://pp.info.uni-karlsruhe.de/

Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Betreuer: Matthias Braun matthias.braun@kit.edu

Betreuer: Sebastian Buchwald sebastian.buchwald@kit.edu

Ubungsblatt 1¨ Ausgabe: 14.4.2010 Besprechung: 21.04.2010

Aufgabe 1:Infrastruktur, Planung

• Tauschen Sie innerhalb ihrer Gruppe Kontaktdaten aus.

• Organisieren Sie Infrastruktur (Versionsverwaltung, Mailingliste, . . . ).1

• Machen Sie sich mit dem Compilerbau-Wiki vertraut:http://pp.info.uni-karlsruhe.de/lehre/

SS2010/compprakt/wiki/index.php/Main_Page.

• Entscheiden Sie sich f¨ur eine Programmiersprache. Je nachdem welche Programmiersprache ihnen am besten liegt k¨onnen Sie ihren Compiler in C/C++ oder Java entwickeln. Die sp¨ater f¨ur Optimierungen benutze Bibliothek libFirm (http://www.libfirm.org) ist in C geschrieben; Ein Java Anbindung f¨ur libFirm ist allerdings vorhanden. Machen Sie die Entscheidung f¨ur C/C++ oder Java abh¨angig von den Kenntnissen in der Gruppe. Compiler in C/C++ sind typischerweise schneller und effizienter, Java ist einsteigerfreundlicher.

• Wir geben nur Support f¨ur Linux und Mac.

Aufgabe 2:Vorbereitung

Als n¨achstes sollten Sie sich mit den Details der Programmiersprache MiniJava vertraut machen. MiniJava ist eine vereinfachte Variante der Programmiersprache Java von Sun Microsystems. Einen Sprachbericht finden Sie auf der Praktikumswebseite. Achtung: Im Internet finden sich zahllose Sprachen mit dem Namen

”MiniJava”

die nichts mit der Sprache in diesem Praktikum zu tun haben.

• Schreiben Sie ein MiniJava Programm!

• Ist MiniJava turingm¨achtig?

• Handelt es sich um eine strikte Untermenge von Java?

• Welche der Programme 1, 2, 3 sind legale MiniJava Programme?

1Wir erzeugen ihnen gerne Accounts auf unseren Lehrstuhlrechnern — 1GB Platz, ssh logins, apache+php webserver

public c l a s s Prog1 {

public s t a t i c void main ( S t r i n g [ ] a r g s ) { }

}

Abbildung 1: Programm 1

(2)

public c l a s s Prog2 {

public s t a t i c void main ( S t r i n g [ ] a r g s ) { System . o u t . p r i n t l n ( a r g s [ 0 ] ) ;

} }

Abbildung 2: Programm 2

public c l a s s F a c t o r i a l { public i n t f a c (i n t n ) {

i f ( n < 2 ) return 1 ;

return n ∗ f a c ( n−1 ) ; }

}

public c l a s s Prog3 {

public s t a t i c void main ( ) {

F a c t o r i a l f = new F a c t o r i a l ( ) ; i n t n = f a c ( 4 2 ) ;

System . o u t . p r i n t l n ( n ) ; }

}

Abbildung 3: Programm 3

2

Referenzen

ÄHNLICHE DOKUMENTE

Zwar ist ASCII heutzutage so gut wie ¨ uberall unterst¨ utzt, viele Sprachen ben¨ otigen aber weitere Zeichen die in ASCII nicht enthalten sind. Typische ASCII-Erweiterungen im

Es wird also anscheinend kein speziellere Datentyp f¨ ur Closures angelegt, der einen Funktionszeiger und einen Zeiger auf die Umgebung

• Nehmen Sie an die Anzahl der Register ist auf 3 beschr¨ ankt, spielt die Auswertungsreihenfolge bei den Ausdr¨ ucken jetzt noch eine Rolle. Aufgabe

Konstruieren Sie unter der Voraussetzung, dass alle nicht konstanten Operanden im Arbeitsspeicher stehen, Syntaxb¨ aume f¨ ur die folgenden Anweisungen:. 1. x = x

Skizzieren Sie Anordnung der Objekte auf dem Heap f¨ ur die Stelle nach dem Aufruf von ’A.create()’ unter der Annahme, dass beim Start der main Methode der Heap v¨ ollig leer

Semantische Analyse: Namensanalyse, Typanalyse, Operatoridentifikation, Konsistenzpr¨ ufung, Sprach- abh¨ angige Sonderaufgaben, Struktur¨ aquivalenz, Definitionstabelle,

Je nachdem welche Programmiersprache ihnen am besten liegt k¨ onnen Sie ihren Compiler in C/C++ oder Java entwickeln.. Die sp¨ ater f¨ ur Optimierungen benutze Bibliothek

Erstelle daf¨ ur zun¨ achst eine Tabelle mit den Gen- und Kill-Mengen der einzelnen Bl¨ ocke und f¨ uhre danach eine