Prof. Dr. K. Wüst - TH Mittelhessen - Studiengang Informatik

Konzepte Systemnaher Programmierung

Allgemeines zu KSP im WS 2011/12

Die Veranstaltung ist um ein Projekt zentriert, die Implementierung einer virtuellen Maschine, die Erstellung
einer virtuellen Maschine zur Ausführung von Programmen der OO-Programmiersprache Ninja, die Ninja-VM (H.Geisse). Dieses Konzept wurde von Prof. Dr. H. Geisse übernommen, der es schon mehrfach in KSP erfolgreich durchgeführt hat (
SS2010 SS2011) so dass die Veranstaltung eine hohe Kontinuität hat. (Auch die Aufgabenblätter sind von Prof. Geisse.)  Das Projekt der Ninja-VM zeigt die wichtigsten Aspekte der Programmiersprache C und erfordert systemnahe Programmierung.

Die Erstellung der Ninja-VM ist durchaus mit einem ordentlichen Zeitaufwand verbunden, planen Sie genug Zeit dafür ein!

Ablauf

Die Ninja-VM unseres Projektes wird schrittweise im Laufe des Semesters aufgebaut. Dazu werden insgesamt 8 Aufgabenblätter ausgegeben, mit deren Bearbeitung man die Ninja-VM nach und nach erstellt. Mit dem Aufgabenblatt 4 ist ein Stand erreicht, der als Hausübung 1 abgegeben und von uns geprüft wird. Die Bearbeitung kann in Zweier-Gruppen erfolgen. Der Stand nach dem letzten Aufgabenblatt (Blatt 6) ist der finale Stand und wird als Hausübung 2 wieder abgegeben.

Klausurvoraussetzung

Die beiden Hausübungen werden durch automatisierte Tests in Ihrer Funktion überprüft und müssen jeweils
mindestens die Hälfte der Tests bestehen. Außerdem wird der abgegebene Sourcecode aller Teilnehmer mit einem
Ähnlichkeits-Messungs-Tools überprüft. Bei zu starker Ähnlichkeit werden die Teilnehmer von
der Hausübung und damit der Klausur ausgeschlossen. Studierende, die Ihre Hausübungen in einem
früheren Semester bestanden haben, behalten ihre Teilnahmeberechtigung und können einfach wieder mitschreiben.

Nur die beiden Hausübungen müssen pünktlich abgegeben werden. Die Termine hinter den Aufgabenblättern dienen nur Ihrer persönlichen Zeiteinteilung und der Einschätzung des Projekt-Fortschritts.

Aufgabe 0 (VM0: Hauptprogramm, Strings, Kommandozeilenargumente, Ausgabe, fertig ca. bis 21.10.2011)
Aufgabe 1 (VM1: Arithmetische Ausdruecke, Stackmaschinen, Instruktionen, fertig bis Ende Oktober)
Aufgabe 2 (VM2: Lokale Variablen, Stack-Frames, Laden einer Datei, fertig bis ca. 11.11.2011)
Aufgabe 3 (VM3: Kontrollstrukturen, Vergleiche, Spruenge, Debugger, fertig bis ca. 25.11.2011)
Aufgabe 4 (VM4: Call/Return, Argumente, Rückgabewert, Boole'sche Ausdruecke, fertig bis 9.12.2011) 

Hier die abgegebenen Gruppenmeldungen, bitte kontrollieren!
Liste mit den Gruppenmeldungen (Stand 30.11.2011)

Ergebnisliste der ersten Hausübung Stand 21.12. 2011.

Ergebnisliste der ersten Hausübung Stand 4.1.2012.

Aufgabe 5 (VM5: Objekte auf dem Heap, Inspektion von Objekten, fertig bis 06.1.2012) 
Aufgabe 6 (VM6: Objekte mit Instanzvariablen, Arrays, Identitaet, fertig bis 20.1.2012) 

Die Zweite Hausübung umfasst eine funktionierende Ninja-VM mit dem Stand der bis zum Aufgabenblatt 6 gefordert ist.
Hier die Anleitung zur Abgabe der zweiten Hausübung.

Ergebnisliste der zweiten Hausübung Stand 4.2.2012.

Kommentierte Befehlsliste

Hier gibt es eine Liste aller Befehle der Ninja-VM6 mit kurzem Kommentar zur Wirkung auf den Stack und Verwendung
der Immediate-Werte:  VM6-Befehlsliste  

Studentische Mitschrift

Hier gibt es eine Mitschrift von Fabian Mueller, Stand WS 2009/2010: KSP v021  

Literatur

Klausur

Zur Klausurvorbereitung stelle ich hier die Klausur vom WS2010/11 mit Musterlösung und Erklärungen zur Verfügung.

Zurück zur Startseite K.Wuest