Seminar: Features of Programming Languages

General Information

This seminar will be in english / Dieses Seminar findet auf Englisch statt.

Introduction

The history of programming languages is rife with the cross pollination and adoption of features from esoteric languages into so called "main stream" languages. Examples of such features include generics, multiple inheritance, objects and curried functions. This seminar offers a platform for students to become familiar with this history, and closely analyze and evaluate common features in programming languages. Student's will accomplish this through the reading, examination, and discussion of selected papers and texts. Students are to select a topic, familiarize themselves with the topic, prepare a written report and hold a scientific lecture on their topic, as well as participate in the discussion of other lectures.

Topics

  • Multiple inheritance
  • Information hiding
  • Lazy Evaluation
  • Objects
  • Operator overloading (also called ad-hoc polymorphism)
  • Generics (also called parametric polymorphism)
  • Reflection and Meta-programming
  • Type Inference
  • Modules
  • Substructural Type Systems and Memory Safety (linear types, affine types)
  • Session Types (π calculus) and Concurrent Programming
  • Lambdas and Closures in OOP languages

Selected Papers by Topic

Multiple Inheritance

Information Hiding

Lazy Evaluation

Objects

Operator Overloading

Generics

Reflection and Meta-Programming

Type Inference

Modules

Substructural Type Systems and Memory Safety (linear types, affine types)

Session Types (π calculus) and Concurrent programming

Lambdas and closures in OOP languages