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.

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.