Universität Bremen  
  FB 3  
  Group BKB > Teaching > WS 04/05 > Programming Languages > Deutsch
English
 

Contents Overview

 
This course is about the common principles of high-level programming languages. By studying these concepts the participants shall be able to faster learn and assess new languages.

After a brief sketch of the history of programming languages we describe major concepts of programming languages:

  • Values: data structures and expressions
  • Storage: variables and commandle
  • Binding: declarations and blocks
  • Abstraction: procedures, functions, and parameter passing
  • Encapsulation: packages, interfaces, objects, classes, and generic parameters
  • Type systems: overloading, polymorphisms, and inheritance
  • Control flow: jumps and exceptions
  • Concurrency: processes and communication

It is always the semantics and pragmatics (i.e. meaning and purpose) of the concepts that is in focus here; their syntax is considered a secondary issue. The concepts are described in a few reference languages (Ada, Java, Eiffel, Standard ML, Haskell, Prolog). The comparison of programming languages reveals some principles of good language design.

Then we consider how concepts are selected and combined to support important styles, or paradigma, of programming, and illustrate this with typical languages:

  • imperative programming (Ada)
  • object-orientiertes programming (Java, Eiffel)
  • functional programming (Standard ML, Haskell)
  • logic programming (Prolog)
Finally, we shall briefly turn to concurrency, and dare a glance into the future (?) of programming languages, by introducing the visual programming language Diaplan.

Exercises

In the course, the essence of the concepts, and the methodological kernel of the paradigmes will be presented. This will take 3/4 of the time in average. For one hour a week approximately, the participants shall reinforce their understanding in exercises. Questions to the reference languages (Ada, Java, Eiffel Standard ML, Haskell, Prolog) shall be answered in small assignments. This can be done by studying the description of a language, or by producing test programs for its reference installations.
 
   
Author: Dr. Berthold Hoffmann
 
  Group BKB 
Last updated: October 13, 2004   impressum