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)
Deadline 1. Hausuebung: 20.05.2011, 20.00 Uhr
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)
Deadline 2. Hausuebung: 01.07.2011, 20.00 Uhr
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!