Konzepte systemnaher Programmierung SS 11

Themen

1. C-Programmierung
2. Speicherverwaltung, Laufzeitorganisation
3. Bibliotheken
4. Compiler, Assembler, Binder, Lader
5. Garbage-Collectoren
6. Interpreter, Virtuelle Maschinen

Mitschrift von Fabian Mueller, Stand WS 2009/2010: KSP v021

Literatur

Brian W. Kernighan, Dennis M. Ritchie: The C Programming Language, 2nd Edition, Prentice Hall, 1988
Randal E. Bryant, David O'Hallaron: Computer Systems - A Programmer's Perspective, Prentice Hall, 2002
Richard Jones, Rafael Lins: Garbage Collection, John Wiley & Sons, 1996
James E. Smith, Ravi Nair: Virtual Machines, Morgan Kaufmann, 2005

Praktikum und Notengebung

Aufgabe: Konstruktion einer Virtuellen Maschine zur Ausfuehrung von Programmen der kleinen OO-Programmiersprache Ninja ("Ninja is not Java")
Organisation: Zweiergruppen
Bewertung:
1. Hausuebung: 20 Punkte (akzeptiert bei >= 10 Punkten)
2. Hausuebung: 23 Punkte (akzeptiert bei >= 11 Punkten)
Zwei akzeptierte Hausuebungen sind Voraussetzung fuer die Zulassung zur Klausur.
Die in der Veranstaltung erzielte Note wird alleine durch das Klausurergebnis bestimmt.
Bei der Klausur sind ein eigener Taschenrechner sowie ein handgeschriebenes Blatt DIN A4 als Hilfsmittel zugelassen.

Erlaeuterung fuer Studenten, die ihre Hausuebungen nicht im laufenden Semester gemacht haben:

Auch fuer Sie gilt, dass zwei akzeptierte Hausuebungen als Zulassungsvoraussetzung zur Teilnahme an der Klausur gefordert werden. Eine schriftliche Bestaetigung ueber die Abgabe zweier akzeptierter Hausuebungen, ausgestellt von demjenigen Kollegen, der die Veranstaltung betreut hat, ist vom Studierenden spaetestens zur Klausur vorzulegen.

Aufgaben und Termine

Die Termine hinter den Einzelaufgaben dienen zu Ihrer Orientierung; Sie sollten sie einhalten. Termingerecht abgegeben werden muessen aber nur die beiden Hausuebungen. Die erste Hausuebung besteht aus der Zusammenfassung der Loesungen zu den Aufgaben 0-4, die zweite Hausuebung aus der Zusammenfassung der Loesungen zu allen Aufgaben.

Aufgabe 0 (VM0: Hauptprogramm, Strings, Kommandozeilenargumente, Ausgabe, fertig bis 08.04.2011)
Aufgabe 1 (VM1: Arithmetische Ausdruecke, Stackmaschinen, Instruktionen, fertig bis 15.04.2011)

Melden der Gruppen: Mail an mich mit den Teilnehmern einer Gruppe, jeweils bitte Nachname, Vorname. Umlaute bitte als zwei Buchstaben, es-zett als doppel-s schreiben!

Deadline Melden der Gruppen: 15.04.2011

Angemeldete Gruppen (Bitte pruefen!)

Aufgabe 2 (VM2: Lokale Variablen, Stack-Frames, Laden einer Datei, fertig bis 29.04.2011)
Aufgabe 3 (VM3: Kontrollstrukturen, Vergleiche, Spruenge, Debugger, fertig bis 06.05.2011)
Aufgabe 4 (VM4: Call/Return, Argumente, Rueckgabewert, Boole'sche Ausdruecke, fertig bis 20.05.2011)

Instruktionen zur Abgabe der 1. Hausuebung

Deadline 1. Hausuebung: 20.05.2011, 20.00 Uhr

Ergebnisse der 1. Hausuebung

Bitte Eingang Ihrer Loesung pruefen!

Aufgabe 5 (VM5: Objekte auf dem Heap, Inspektion von Objekten, fertig bis 03.06.2011)
Aufgabe 6 (VM6: Objekte mit Instanzvariablen, Arrays, Identitaet, fertig bis 17.06.2011)
Aufgabe 7 (VM7: Methodenaufruf, Garbage Collector, fertig bis 01.07.2011)

Instruktionen zur Abgabe der 2. Hausuebung

Deadline 2. Hausuebung: 01.07.2011, 20.00 Uhr

Ergebnisse der 2. Hausuebung

Bitte Eingang Ihrer Loesung pruefen!

WARNUNG

Kopieren des Codes anderer Gruppen, auch in Auszuegen, ist Betrug und wird mit dem Ausschluss aller beteiligten Gruppen von der Klausur geahndet!