Home | english  | Impressum | Sitemap | KIT

Moderne Entwicklungsumgebung am Beispiel von .NET

Moderne Entwicklungsumgebung am Beispiel von .NET
Typ: Vorlesung (V)
Semester: SS 2015
Zeit: 16.04.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten


23.04.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

30.04.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

07.05.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

21.05.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

28.05.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

11.06.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

18.06.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

25.06.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

02.07.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

09.07.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten

16.07.2015
14:00 - 15:30 wöchentlich
50.34 Raum 236 50.34 INFORMATIK, Kollegiengebäude am Fasanengarten


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

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.