Authors
Affiliations

Gesellschaft für Informatik

deRSE

Gesellschaft für Informatik

deRSE

Florian Goth

Jan Phillip Thiele

Jan Linxweiler

Anna-Lena Lamprecht

Maja Toebs

Declarative Programming

Introduction

This module deals with delarative modelling, problem-solving and programming. It can focus on the functional or logial programming paradigm.

Contents

  • Logical-relational programming paradigm, top-down evaluation with SLD(NF) resolution. Introduction to the logical programming language Prolog: recursion, predicate-oriented programming, backtracking and cut, side effects, aggregations. Connection to (deductive) databases. Comparison with Datalog and brief introduction to advanced concepts such as constraint logic programming.
  • Predicate logic fundamentals: Unification, Resolution, Horn clauses and SLD resolution
  • Logic programmes: Operational and denotational semantics, Evaluation strategies
  • The Prolog programming language: Negation as failure, Non-logical components of Prolog, Programming techniques
  • Applications and extensions of logic programming OR
  • Introduction to the Haskell programming language: Syntax of the various language constructs, Higher-order functions, Programming with lazy evaluation
  • Denotational semantics of functional programmes: Complete orders and fixed points, Denotational semantics of Haskell
  • Lambda calculus: Syntax and operational semantics of lambda calculus, Reduction of Haskell to lambda calculus
  • Type checking and type inference

Learning Objectives

Students - have a broad, detailed and critical understanding of the latest knowledge in selected specialist areas in the field of declarative modelling - can implement compact and declarative programmes in Prolog and distinguish this approach from classical imperative programming - formally define the semantics of logical programming languages - targeted use of logical programming languages in various areas of application OR Students - explain the concepts underlying functional programming languages - learn and apply programming techniques in functional languages - formally define the semantics of functional programming languages - implement functional languages - design type checking procedures for functional languages - use functional languages in a targeted manner in various areas of application

Examination Methods

60-120 min written exam or 30 minute oral examination.

Lecture: Declarative Programming

SWS: 2 ECTS: 2

Exercise: Declarative Modelling Exercise

SWS: 2 ECTS: 4

Module Competences

ID Description Disciplines Prerequisites Evidence Author Source
declarative_mod_1 define and interpret the special features, limitations, terminology and doctrines in the field of declarative modelling Computer Science develop declarative models for new problems University of Potsdam Link

Sources & Implementations:

Courses

Programs