Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
λ-calculus as a Tool for Metaprogramming in C++
Thesis title in Czech: Lambda-kalkul jako nástroj pro metaprogramování v C++
Thesis title in English: λ-calculus as a Tool for Metaprogramming in C++
Key words: C++ Haskell metaprogramování lambda kalkulus
English key words: C++ Haskell metaprogramming lambda calculus
Academic year of topic announcement: 2015/2016
Thesis type: diploma thesis
Thesis language: angličtina
Department: Department of Theoretical Computer Science and Mathematical Logic (32-KTIML)
Supervisor: RNDr. Jan Hric
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 28.10.2015
Date of assignment: 14.04.2016
Confirmed by Study dept. on: 03.05.2016
Date and time of defence: 12.09.2016 12:00
Date of electronic submission:23.07.2016
Date of submission of printed version:28.07.2016
Date of proceeded defence: 12.09.2016
Opponents: RNDr. Miroslav Kratochvíl, Ph.D.
 
 
 
Guidelines
Lambda kalkul s typy [3] tvoří teoretický základ pro typované funkcionální jazyky, napr. Haskell. Jejich typování je založeno na tzv. Hindley-Milnerově typovém systému [4] a jeho rozšířeních.

Myšlenky bohatých typových systémů byly přeneseny do objektově-orientovaného programování, např. do jazyka C++ [1], [2]. Tam lze s využitím šablon (Templates) psát stručnější, efektivnější a/anebo obecnější programy, které část výpočtů vykonávají na úrovni typového systému, tj. v čase kompilace. Součástí těchto výpočtů je také metaprogramování, tj. transformace a generování specializovaných zdrojových kódů pro další překlad.

Práce rozebere možnosti překladu lambda kalkulu a/anebo konstrukcí z funkcionálních jazyků do šablon C++ a popíše využití těchto technik a šablon v C++ při programování a metaprogramování.
References
[1] David Abrahams, Aleksey Gurtovoy, C++ Template metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond. Addison Wesley Professional, 2004. ISBN 0-321-22725-5

[2] Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Patterns Applied. Addison Wesley, 2001. ISBN 0-201-70431-5

[3] Henk Barendregt: Lambda Calculi with Types. Handbook of Logic in Computer Science, Vol II. Oxford University Press, 1992, pp. 117-309.

[4] Robin Milner, A theory of type polymorphism in programming. Journal of Computer and System Sciences, vol 17, č.3, 1978, Elsevier, pp 348-375
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html