Neue Medien in der Bildung     Bundesministerium für Bildung und Forschung  
Universität Bremen     Universität Freiburg     Fernuniversität Hagen     Universität München     Universität des Saarlandes
 

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.

 
Letzte Aktualisierung: $Date: 2004/04/16 10:45:35 $