Principles of Programming Languages

This course introduces key concepts and models related to the design and implementation of programming languages.  Building blocks and characteristics of programming languages are presented both in abstract terms, and in practice, through the comparison of three programming languages (Java, ML, Prolog). Students attending lectures and labs will become familiar with different programming paradigms (imperative, functional, logic, object-oriented).
Lectures generally follow Adam Brooks Webber’s book “Modern Programming Languages: A Practical Introduction“. The course is offered at the 3rd year of the Electrical and Computer Engineering curriculum at Democritus University of Thrace.