Programming Languages and Compilers

From Marek Běhálek Wiki
Revision as of 12:03, 13 January 2022 by Beh01 (talk | contribs) (Created page with "<translate> == Basic introduction == The course introduces the functional style of programming. It covers basic properties of the functional programming like: the side effec...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Basic introduction

The course introduces the functional style of programming. It covers basic properties of the functional programming like: the side effect-free programming, functions as first-class values, high-order functions, recursion, pattern matching, or function closures. Also, course introduces selected data structures like a list and a tree and a functional style of working with these structures. As a programming language, Haskell will be used. It is a pure functional, statically typed, lazy evaluated language.

Subject aims expressed by acquired skills and competences

Students get an overview of the area of programming, main programming paradigms (imperative, functional, logic) and their typical representatives. They also get some theoretical body of knowledge and practical experience of compiling methods, especially concentrated to the source code analysis and intermediate code synthesis phases. Students develop practical abilities to use compiler generators like JavaCC.

After this lectures student should be able to effectively implement analyzers of a structured text data or of simple languages. Also they should understand concepts and constructions common for today's programming languages.

Recommended literature

Torben Mogensen: Basics of Compiler Design - freely available at http://www.diku.dk/hjemmesider/ansatte/torbenm/Basics/

Aho, A. V., Lam M.S., Sethi, R., Ullman, J. D.: Compilers. Principles, Techniques, and Tools. Addison Wesley; 2nd edition (September 10, 2006). ISBN 0321486811.7

Pierce B.C.: Types and Programming Languages, MIT Press, 2002, ISBN: 9780262162098.

Way of continuous check of knowledge in the course of semester

During the exercises, students will be programming assigned tasks. The results of these tasks will be the crucial part of the final evaluation. Additionally, two smaller projects will be given.

Software

In our lectures, we will be using...

Presentations

Presentations used in our lectures:

Úvod do FPR Introduction to FPR

Schedule:

Laboratories

Homework

Combine study

Tutorial 1

Tutorial 2

Tutorial 3

Tutorial 4

Tutorial 5