Department of Computer Science & Engineering

University of Ioannina

Principles of Programming Languages

Course Feature
Class Description

Course_ID: MYY401

Weekly Hours: 5

Semester: 4

ECTS Credits: 6

Course Homepage:

Description: Classification of programming languages. Implementation methods: compilation, interpretation and hybrid methods. Syntax and semantics. BNF and syntactic diagrams. Imperative languages. Constants, variables and expressions. Expression evaluation. Assignment, selection and iteration commands. Binding, lifetime and scope.  Memory management. Subprograms and parameter passing. Data types. Type implementation. Type equivalence. Functional programming. The Haskell programming language. Recursive functions. Lazy evaluation. Higher order functions. Polymorphism. Logic programming. The Prolog programming language. Predicates, terms, facts, rules and queries. Recursive predicates. Unification and goal satisfaction algorithms. Cut and negation as failure. Object-oriented languages:  objects, classes, encapsulation, inheritance.