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.)

 
 

Advanced Aspects of Object-Oriented Programming


This lecture is a contribution of the Fernuniversität Hagen to the MMISS project. As professor Dr. Poetzsch-Heffter changed from the Fernuniversität Hagen to the TU Kaiserslautern during project time, this lecture has been hold at the TU Kaiserslautern in the winter semester 2002/03

Lecture Slides

The complete set of 459 slides is available in pdf (1 MB).

Contents of the Lecture

1 Introduction
  • 1.1 Overview
  • 1.2 Formal and Notational Foundations
2 Foundations of Object-Oriented Languages
  • 2.1 Concepts of Object-Oriented Programming
    • 2.1.1 Basic Concepts
    • 2.1.2 Linguistic Concepts
    • 2.1.3 Pragmatic Aspects
  • 2.2 Semantics of Object-Oriented Languages
    • 2.2.1 Introduction
    • 2.2.2 Operational Semantics of a Sublanguage of Java
    • 2.2.3 About the Theory of Structural Operational Semantics Definitions
  • 2.3 Properties of Object-Oriented Programs
    • 2.3.1 Assertions
    • 2.3.2 Statement Specifications
    • 2.3.3 Trace Properties
    • 2.3.4 Interface Properties
    • 2.3.5 Other Properties
  • 2.4 Modularity and Encapsulation
    • 2.4.1 Modularity and Modular Specification
    • 2.4.2 Encapsulation and Interface Generation
    • 2.4.3 Realization of Encapsulation
3 Techniques for Checking Object-Oriented Programs
  • 3.1 Introduction
    • 3.1.1 Type Information and their Static and Dynamic Checking
    • 3.1.2 Type Safety
  • 3.2 Parametric Type Systems and Virtual Classes
    • 3.2.1 Parametric Type Systems
    • 3.2.2 Virtual Types
  • 3.3 Type Systems for Structuring the Object Store
    • 3.3.1 Encapsulation at Package Level: Confined Types
    • 3.3.2 Other Approaches to Structuring
  • 3.4 Extended Static Checking
    • 3.4.1 General Aspects of ESP
    • 3.4.2 The Tool ESC/Java
4 Specification of Object-Oriented Programs
  • 4.1 Specification of Types
    • 4.1.1 Lightweight Specifications
    • 4.1.2 Specification of Single Objects
    • 4.1.3 Specification with Abstract Variables
    • 4.1.4 Specification of Interacting Objects
  • 4.2 Conformance of Subtypes
  • 4.3 Modules and Modularity
    • 4.3.1 Properties on Module Level
    • 4.3.2 Modular Specification
5 Verification of Specified Properties
  • 5.1 Techniques for Verification
  • 5.2 Verification by Proof
6. Perspectives

Preconditions:

Pre-degree (Vordiplom) in Computer Science or Applied Computer Science, as well as knowledge of object-oriented programming.

Continuating Literature:

  • 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): pages 491-553, 2002.
  • Barbara H. Liskov, Jeannette M. Wing:
    A Behavioral Notion of Subtyping. Transactions on Programming Languages and Systems 16(6), pages 1811-1841, 1994.

 
Letzte Aktualisierung: 5 September 2003