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
- The term Homoiconicity comes from:
Type Inference
- Type inference in Languages with subtyping (like most OOP) is problematic, see:
Modules
- (Book), Peirce: Advanced Topics in Programming Languages (See Chapter 8)
Substructural Type Systems and Memory Safety (linear types, affine types)
- Garbage Collection
- Invented in LISP:
- See also:
- and:
- Linear and Affine Types
Session Types (Ï€ calculus) and Concurrent programming
Lambdas and closures in OOP languages
- Fundamentals:
- Anonymous functions:
- Closures:
- Lambdas have been around since 1958 (LISP), Java got lambdas in 2014, Other papers of interest: