Home | english  | Impressum | Sitemap | KIT

Moderne Entwicklungsumgebung am Beispiel von .NET

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
Martin Blersch
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.

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.

Arbeitsbelastung

3 LP entspricht ca. 90 Arbeitsstunden, davon

ca. 30 Std. Vorlesungsbesuch
ca. 45 Std. Vor- und Nachbearbeitung
ca. 15 Std. Prüfungsvorbereitung

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.