Moderne Entwicklungsumgebung am Beispiel von .NET
- Typ: Vorlesung (V)
- Semester: SS 2016
-
Zeit:
21.04.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
28.04.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
12.05.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
19.05.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
02.06.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
09.06.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
16.06.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
23.06.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
30.06.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
07.07.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
14.07.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
21.07.2016
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten
-
Dozent:
Prof.Dr. Walter Tichy
- SWS: 2
- LVNr.: 24634
Voraussetzungen | Gute Programmierkenntnisse in Java werden vorausgesetzt. |
Beschreibung |
Im ersten Teil der Veranstaltung wird die Programmiersprache C# auf Grundlage des ECMA-Standards 334 eingehend besprochen. Dabei liegt der Schwerpunkt auf den Erweiterungen gegenüber Java. Das Wesen der Vorlesung ist, die exakte Semantik (und die vollständige Syntax) der Programmierkonstrukte zu betrachten. Insbesondere die Betrachtung der Randfälle hilft, die innere Funktionsweise einer modernen Programmiersprache zu verstehen. Der zweite Teil der Veranstaltung beschäftigt sich mit der Laufzeitumgebung CLI. Hierbei werden die Aufgaben aber auch Schutz- und Leistungs-Potenziale moderner virtueller Maschinen erörtert. |
Literaturhinweise |
Als vertiefende LIteratur werden die Standards ECMA-334 C# Language Specification, C' Version 4 Specification und ECMA-335 Common Language Infrastructure (CLI) angeraten. Als Buchlektüre raten wir zu Jeffrey Richters Net-Büchern in der aktualisierten dritten Auflage. Die Konzepte der CLI werden in beiden Büchern gleichermaßen gut behandelt. |
Lehrinhalt | Im ersten Teil der Veranstaltung wird die Programmiersprache C# auf Grundlage des ECMA-Standards 334 eingehend besprochen. Dabei liegt der Schwerpunkt auf den Erweiterungen gegenüber Java. Das Wesen der Vorlesung ist, die exakte Semantik (und die vollständige Syntax) der Programmierkonstrukte zu betrachten. Insbesondere die Betrachtung der Randfälle hilft, die innere Funktionsweise einer modernen Programmiersprache zu verstehen. |
Arbeitsbelastung | 3 LP entspricht ca. 90 Arbeitsstunden, davon |
Ziel | Studierende kennen die .NET-Philosophie, Entwurfsziele und Einsatzzweck. Sie können die konzeptionellen Unterschiede zu Java erläutern. Studierende kennen das .NET-Typsysteme und die CLS, können deren Zusammenhang erläutern und für ein gegebenes Problem, die geeigneten Typen auswählen. Sie sind in der Lage das Typsystem mit anderen Programmierumgebungen (bspw. Java) zu vergleichen. Studierende kennen den Unterschied zwischen Wert- und Referenztypen. Studierende verstehen das Ausführungsmodell von .NET und kennen die Bestandteile der Common Language Infrastructure CLI (virtuelle Maschine mit gemeinsamem Typsystem, Instruktionssatz und Laufzeitsystem). Studierende können die Zwischensprache IL erklären und verstehen die Funktionsweise des IL-Erzeugers. Studierende kennen die Common Language Runtime CLR und ihre Bestandteile. Studierende können die Algorithmen für Speicherverwaltung und Registerverwaltung (Mark-Compact Collector, Linear Scan Allocation) anwenden. Studierende können die Vor- und Nachteile von Kellermaschinen herleiten und die Instruktionsausführung darstellen. Studierende kennen die Grundzüge des Laufzeitübersetzers, insbesondere die verschiedenen Phasen. Studierende können Programme in SSA-Form überführen. Studierende beherrschen Syntax und Semantik der Programmiersprache C#, inklusive weiterführender Konzepte wie Nebenläufigkeit und generische Programmierung. |
Prüfung | Die Erfolgskontrolle wird in der Modulbeschreibung erläutert. |