Homepage
Goals
Project Partners
Lectures
Evaluation
Publications
Presentations
Results
MMiSS Forum
Tools
Personnel
Contact
Internal
(Project members only.)
|
 |
Fortgeschrittene Aspekte Objektorientierter Programmierung
Diese Vorlesung ist ein Beitrag der Fernuniversität Hagen zum MMISS-Projekt.
Da während der Projektdauer der in Hagen beteiligte Professor Dr. Poetzsch-Heffter
einen Lehrstuhl an der TU Kaiserslautern übernommen hat, ist diese Vorlesung im
Wintersemester 2002/03
an der TU Kaiserslautern gehalten worden.
Vorlesungsfolien
Die Vorlesung, bestehend aus 459 Folien, ist in pdf (1 MB) verfügbar.
Inhalte der Vorlesung
1 Einleitung
- 1.1 Überblick
- 1.2 Formale und notationelle Grundlagen
2 Grundlagen objektorientierter Sprachen
- 2.1 Konzepte objektorientierter Programmierung
- 2.1.1 Grundkonzepte
- 2.1.2 Sprachliche Konzepte
- 2.1.3 Pragmatische Aspekte
- 2.2 Semantik objektorientierter Sprachen
- 2.2.1 Einführung
- 2.2.2 Operationelle Semantik einer Untersprache von Java
- 2.2.3 Zur Theorie strukturell operationeller Semantikdefinitionen
- 2.3 Eigenschaften objektorientierter Programme
- 2.3.1 Zusicherungen
- 2.3.2 Anweisungsspezifikation
- 2.3.3 Ablaufeigenschaften
- 2.3.4 Schnittstelleneigenschaften
- 2.3.5 Weitere Eigenschaften
- 2.4 Modularität und Kapselung
- 2.4.1 Modularität und modulare Spezifikation
- 2.4.2 Kapselung und Schnittstellenbildung
- 2.4.3 Realisieren von Kapselung
3 Techniken zum Prüfen objektorientierter Programme
- 3.1 Einführung
- 3.1.1 Typinformation und ihre statische und dynamische Prüfung
- 3.1.2 Typsicherheit
- 3.2 Parametrische Typsysteme und Virtuelle Klassen
- 3.2.1 Parametrische Typsysteme
- 3.2.2 Virtuelle Typen
- 3.3 Typsysteme zur Strukturierung von Objektgeflechten
- 3.3.1 Kapselung auf Paketebene: Confined Types
- 3.3.2 Andere Strukturierungsansätze
- 3.4 Erweiterte statische Prüfung
- 3.4.1 Allgemeine Aspekte der ESP
- 3.4.2 Das Werkzeug ESC/Java
4 Spezifikation objektorientierter Programme
- 4.1 Spezifikation von Typen
- 4.1.1 Leichte Spezifikationen
- 4.1.2 Spezifikation einzelner Objekte
- 4.1.3 Spezifikation mit abstrakten Variablen
- 4.1.4 Spezifikation zusammenhängender Objekte
- 4.2 Konformität von Subtypen
- 4.3 Module und Modularität
5 Verifikation spezifizierter Eigenschaften
- 5.1 Techniken zur Verifikation
- 5.2 Verifikation durch Beweis
6. Ausblicke
Voraussetzungen:
Vordiplom Informatik oder Angewandte Informatik sowie Kenntnisse
in objektorientierter Programmierung.
Weiterführende Literatur:
- Arnd Poetzsch-Heffter:
- Konzepte objektorientierter Programmierung,
Springer-Verlag, 2000.
- Kim B. Bruce:
- Foundations of Object-Oriented Languages. Types and Semantics.
MIT Press, 2002.
- Sophia Drossopoulou, Susan Eisenbach:
- Java is Type Safe - Probably.
ECOOP, 1997 (LNCS 1241).
- Tobias Nipkow, David von Oheimb:
- Java light is Type Safe - Definitely
Principles of Programming Languages, 1998.
- Atsushi Igarashi, Benjamin Pierce, Philip Wadler:
- Featherweight Java: A Minimal Core Calculus for Java and GJ.
OOPSLA, 1999.
- Gilad Bracha, Martin Odersky, David Stoutamire, Philip Wadler:
- Making the future safe for the past: Adding Genericity to the Java Programming Language.
OOPSLA, 1998.
- Kresten Krab Thorup:
- Genericity in Java with Virtual Types.
ECOOP, 1997.
- Kim B. Bruce, Martin Odersky, Philip Wadler:
- A statically safe alternative to virtual types.
ECOOP, 1998.
- Boris Bokowski, Jan Vitek:
- Confined Types.
OOPSLA, 1999.
- Paulo Sergio Almeida:
- Balloon Types: Controlling Sharing of State in Data Types.
ECOOP, 1997.
- David G. Clarke, John M. Potter, James Noble:
- Ownership Types for Flexible Alias Protection.
OOPSLA, 1998.
- David G. Clarke, John M. Potter, James Noble:
- Simple Ownership Types for Object Containment.
ECOOP, 2001.
- Peter Müller, Arnd Poetzsch-Heffter:
- A Type System for Controlling Representation Exposure in Java.
Formal Techniques for Java Programs, 2000.
- K. Rustan M. Leino, Greg Nelson:
- Data abstraction and information hiding.
Transactions on Programming Languages and Systems 24(5): Seiten 491-553, 2002.
- Barbara H. Liskov, Jeannette M. Wing:
- A Behavioral Notion of Subtyping.
Transactions on Programming Languages and Systems 16(6), Seiten 1811-1841, 1994.
|