SingleView of Module

Module (6 Credits)

Konzepte und Implementierung Objektorientierter Programmiersprachen

Name in diploma supplement
Concepts and Implementation of Object-Oriented Programming Languages
Responsible
Admission criteria
See exam regulations.
Workload
180 hours of student workload, in detail:
  • Attendance: 45 hours
  • Preparation, follow up: 90 hours
  • Exam preparation: 45 hours
Duration
The module takes 1 semester(s).
Qualification Targets

Die Studierenden 

  • kennen unterschiedliche Konzepte objektorientierter Programmiersprachen
  • sind in der Lage, die Semantik von Applikationen unter Verwendung ausgewählter Konstrukte zu bestimmen, als auch formale Beschreibungen ausgewählter Konstrukte zu erstellen
  • beherrschen den praktischen Umgang mit unterschiedlichen objektorientierten Programmiersprachkonstrukten und verstehen den Einfluß von solchen Konstrukten auf die resultierenden Architekturen
  • beherrschen den Umgang mit formalen Konstrukten für den Entwurf von Programmiersprachkonstrukten
  • können Fehler in Programmen anhand von formalen Beschreibungen identifizieren und Typfehler nachvollziehen
Module Exam

The module-related examination is performed by an oral exam (usually 20-40 minutes).

Usage in different degree programs
  • AI-SEVertiefungsstudiumWahlpflichtbereich I: Informatik5th-6th Sem, Elective
  • LA Info GyGeWahlpflichtbereich Informatik 1st-3rd Sem, Elective
  • SEWahlpflichtbereichWahlpflichtbereich InformatikWahlpflichtmodule aus dem Bereich Informatik5th-6th Sem, Elective
Elements
Name in diploma supplement
Concepts and Implementation of Object-oriented Programming Languages
Organisational Unit
Lecturers
SPW
2
Language
German
Cycle
winter semester
Participants at most
no limit
Preliminary knowledge

Grundlegende Kenntnisse einer objektorientierten Programmiersprache (z.B. Java)

Contents

Die Objektorientierung spielt heutzutage in sehr vielen Bereichen der Softwareentwicklung eine entscheidende Rolle. So genannte „Enterprise-Frameworks“, welche  für eine Vielzahl von Diensten verantwortlich sind, die in den heutigen „Business-Applications“ zum Einsatz kommen, basieren massiv auf objektorientierten Konzepten. Somit ist die Studie der zugrunde liegenden objektorientierten Konstrukte eine wichtige Vorraussetzung um die entsprechenden  Frameworks und ihre Architekturen zu verstehen und anzuwenden.Der Begriff der Objektorientierung vereinigt auf Programmiersprachenebene eine Menge von Konzepten, die in unterschiedlichen Programmiersprachen unterschiedliche Ausprägungen finden. Als Beispiel sei an dieser Stelle die Vererbung genannt, welche in unterschiedlichen Sprachen unterschiedlich implementiert ist (Einfachvererbung vs. Mehrfachvererbung, objektbasierte vs. klassenbasierte Vererbung, static dispatching vs. dynamic dispatching, multidispatching, etc.).Für die Anwendung einer Programmiersprache hat die Existenz bestimmter Konzepte erheblichen Einfluss auf die resultierenden Softwarearchitekturen. So hat zum Beispiel in Java die Nichtexistenz von multidispatching zur Konsequenz, dass der Entwickler gegebenenfalls in seinen Anwendungen Vorkehrungen treffen muss, welche die Ausführung der „richtigen“ Methoden garantieren.Die Vorlesung bietet einen breiten Überblick an unterschiedlichen Konzepten objektorientierter Programmiersprachen und deren Semantik, wobei insbesondere Typsysteme (und deren unterschiedliche Ausprägungen) in den Fokus der Betrachtung gezogen werden. Dazu werden gängige Techniken zur Beschreibung der formalen Semantik von Programmiersprachen (Lambda-Kalkül, Featherweight Java als Model für die Sprache Java, etc.) eingeführt und angewendet.

Literature
  • Bruce, Kim B.: Foundations of Object-Oriented Languages, MIT Press, 2002.
  • Pierce, Benjamin C.: Types and Programming Languages, MIT Press, 2002.
  • Abadi, M.; Cardelli, L.: A Theory of Objects, Springer-Verlag, 1996.
Participants
Lecture: Konzepte und Implementierung Objektorientierter Programmiersprachen (WIWI‑C0282)
Name in diploma supplement
Concepts and Implementation of Object-oriented Programming Languages
Organisational Unit
Lecturers
SPW
2
Language
German
Cycle
winter semester
Participants at most
no limit
Preliminary knowledge

Keines

Contents

Im Rahmen der Übung zur Vorlesung werden zum einen die in der Vorlesung behandelten Konzepte praktisch eingesetzt, als auch die Beschreibungstechniken der Sprachkonzepte angewendet. Konkret werden unter anderem das Dispatch-Verhalten von Java, Smalltalk und CLOS angewendet als auch das Typsystem für Featherweight Java eingesetzt. 

Literature

Siehe Literaturangaben der Vorlesung.

Participants
Exercise: Konzepte und Implementierung Objektorientierter Programmiersprachen (WIWI‑C0281)
Module: Konzepte und Implementierung Objektorientierter Programmiersprachen (WIWI‑M0218)