Konzepte systemnaher Programmierung SoSe 16

Die Veranstaltung ist von Prof. Geisse uebernommen. Die Aufgabenstellungen, sowie das verwendete Manuskript sind die gleichen.

Themen

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

Es entsteht gerade ein Skript zur Vorlesung. Dieses ist noch nicht gut poliert und enthaelt auch noch ein paar Fehler - wenn Sie welche finden, bitte melden. Im Zweifelsfall gibt es hier das Manuskript im Original, das bei Diskrepanzen Vorrang hat. Die Praesentation der verwendeten Methode fuer die Garbage Collection finden Sie hier bzw. als PDF hier.

Literatur

Brian W. Kernighan, Dennis M. Ritchie: The C Programming Language, 2nd Edition, Prentice Hall, 2012
Randal E. Bryant, David O'Hallaron: Computer Systems - A Programmer's Perspective, 3rd Edition, Prentice Hall, 2015
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 Programmiersprache Ninja ("Ninja is not Java")
Organisation: Zweiergruppen
Bewertung:
1. Hausuebung: xx Punkte (akzeptiert bei >= xx/2 Punkten)
2. Hausuebung: yy Punkte (akzeptiert bei >= yy/2 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. Beachten Sie dazu bitte diese Hinweise .

Aufgaben und Termine

Vorbereitung - das ist VOR dem ersten Praktikum zu erledigen!

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 (in Form einer kompletten Loesung zu Aufgabe 4), die zweite Hausuebung aus der Zusammenfassung der Loesungen zu allen Aufgaben (in Form einer kompletten Loesung zu Aufgabe 8).Sie koennen Ihre Abgabe selbst auf dem Saturn testen. Dies ist zu empfehlen, da die Abgaben auf dem Saturn laufen muessen!Hier finden Sie eine Anleitung / Anregung.

Aufgabe 0 (VM0: Hauptprogramm, Strings, Kommandozeilenargumente, Ausgabe, fertig bis 17.04.2016)
Aufgabe 1 (VM1: Arithmetische Ausdruecke, Stackmaschinen, Instruktionen, fertig bis 22.04.2016)
Aufgabe 2 (VM2: Globale Variablen, Lokale Variablen, Stack-Frames, Laden einer Datei, fertig bis 06.05.2016)
Aufgabe 3 (VM3: Kontrollstrukturen, Vergleiche, Spruenge, Debugger, fertig bis 13.05.2016)
Aufgabe 4 (VM4: Call/Return, Argumente, Rueckgabewert, Boole'sche Ausdruecke, fertig bis 27.05.2016 !DIE ABGABE DER HAUSUEBUNG WIRD NICHT VERSCHOBEN!)

Haeufige Fehler bei der 1. Hausuebung

Instruktionen zur Abgabe der 1. Hausuebung

Deadline 1. Hausuebung: 27.05.2016, 18.00 Uhr

Ergebnisse der 1. Hausuebung

Aufgabe 5 (VM5: Rechenobjekte auf dem Heap, fertig bis 03.06.2016)
Aufgabe 6 (VM6: Bibliothek fuer beliebig grosse Zahlen, fertig bis 10.06.2016)
Aufgabe 7 (VM7: Records, Arrays, Referenzvergleiche, fertig bis 01.07.2016)
Aufgabe 8 (VM8: Compacting Garbage Collector, fertig bis 14.07.2016)

Instruktionen zur Abgabe der 2. Hausuebung

Deadline 2. Hausuebung: 15.07.2016, 18.00 Uhr

Ergebnisse der 2. Hausuebung (Die nicht akzeptierten Hausuebungen koennen, ausgenommen dem Plagiat, bis zum 22.07.2016 um 18:00Uhr per Mail an mich nachgereicht werden)

Executables fuer saturn.mni.thm.de

Probeklausur + Loesungen

WARNUNG

Kopieren des Codes anderer Gruppen, auch in Auszuegen, ist Betrug und wird mit dem Ausschluss aller beteiligten Gruppen von der Klausur geahndet! Auch das Benutzen von Loesungen aus vorhergehenden Semestern faellt hierunter! Weitere Konsequenzen siehe hier.