We are a group of researchers based in Prague interested in programming languages and systems from the Programming Research Laboratory at the Czech Technical University and the Programming Langauges and Systems Group at the Faculty of Mathematics and Physics, Charles University. We meet regularly, organise joint events and promote programming languages and systems research, projects and courses in Prague.
If you are interested in joining our network, drop us an email or come to any of the events listed below!
Regular Events
We run a number of events at both Czech Technical University and Charles University where we can meet and talk about programming languages and systems. To make talking to each other easier, our reading group alternates between the two locations!
Reading Group
- Wednesdays 10:00, Malá Strana or Dejvice
- List of past and upcoming meetings
Regular reading group where we discuss papers of interest to the group. Topics range from essential PL reading to recent papers of interest. All students are welcome to join and suggest papers!
Group Lunch at MFF
- Mondays 13:00, Café HAMU, Malá Strana
- Come and loook for us or email Tomas to check
We meet at 12:00 in front of S204 to talk about current research ideas, open problems and whatever interests us and then have lunch together at the nearby Café HAMU around 13:00.
Student PL Meetup
- Monthly, afternoons at FEL, Dejvice
- Upcoming events, recordings and mailing list
Small community of PL enthusiasts. Meets for member talks, discussions and invited guest talks. Also check out recordings and a list of useful resources!
Receive email updates!
Sign up here to receive updates about reading group meetings, other interesting events in Prague, new courses and opportunities and occassional other PRG • PRG news.
Work with Us!
We have a range of projects and thesis topics for students at both CTU and MFF. We also often have funding for PhD students and post-doctoral researchers, or can help you with various applications. If you want to move to Prague permanently, we can also give you various tips!
- Topics for student projects and theses at D3S, MFF
- Student project & PhD research ideas at PRL, CTU
- PhD opportunities and application guidelines at D3S, MFF
Courses We Teach
This is an incomplete list of courses related to programming langauges and systems in Prague that we and our colleagues teach. If you are missing a great course, send us a pull request on GitHub.
You are welcome to join courses at "the other place", but it is a good idea to drop the lecturer an email about practical details. In the future, we hope to collaborate more closely so that you can (easily) get credits for external courses too.
Winter Semester 2026/27
Theory of Programming Languages - Vít Šefl & Tomas Petricek, MFF (Winter 2026/27, Wed 12:20 in S10)
Learn about theoretical concepts and tools for studying programming languages. We will look at formal models of programming languages and explore their properties.
Cultures of Programming - Tomas Petricek, MFF (Winter 2026/27, Tue 10:40 in S10)
How programming emerged and developed from the 1940s to the present amid collaborations and clashes between engineers, mathematicians, hackers, managers and humanists.
Past and Future Courses
Program Analysis - Filip Krikava, FIT (Thursday 12:45, T9:346)
Learn the art of reasoning about programs without running them. We cover the basic techniques of static and dynamic program analysis.
Object-Oriented Programming - Filip Krikava, FIT (Friday 12:45, T9:155)
Learn OOP techniques including polymorphism (subtyping, parametric and ahdoc), composition, encapsulation and how it helps to organize your code.
Runtime Systems - Filip Krikava, FIT (Summer 2025/26)
Learn how to build a virtual machine for a JS-like programming language including AST and BC interpretation, garbage-collection and just-in-time compilation.
Virtual Machines and Managed Runtimes - Štěpán Šindelář, MFF (Summer 2026/27)
Learn about real-world virtual machines internals, with a focus on JVM, GraalVM, and Python. Get hands-on experience with the Truffle language implementation framework.
Advanced Program Testing - Pierre Donat-Bouillud, FIT (Friday, 14:30 (odd weeks)/16:15 (even weeks), T9:346)
Learn how to test a program, from specification, structural, property-based, and mutation testing, to fuzzing and symbolic execution.
Programming Paradigms - Tomáš Jakl, Petr Maj and Jan Liam Verter, FIT (Friday 9:15, JP:B-671 (EN) and Friday 11:00, T9:155 (CZ))
An introductory course to the theory of programming languages and to functional and logic programming. See Czech or English parallel information page.
Principles of Programming Languages - Vít Šefl & Tomas Petricek, MFF (Summer 2026/27)
Learn about basic principles and concepts of programming languages, including structured, object-oriented and functional programming.
Code Generation - Petr Maj, FIT (Winter 2025/26)
Learn how to build a compiler for a C-like programming language with emphasis on program optimization and target code generation.
Semantics of Programming Languages - Tomáš Jakl (Winter 2026/27)
An introduction to the study of PL semantics. We will look at denotational, operational and axiomatic semantics and the comparison of these. The problem of full abstraction will be also discussed.
Programming in Haskell - Miroslav Kratochvíl, MFF (Summer 2026/27)
Very pratically-oriented course about making realistic software in a high-level strictly-typed lazy programming language. Focuses on use of the most distinguishing features and ecosystem libraries.
Effective Software - Jakub Dupák & David Šišlák, FEL (Summer 2025/26, Mondays 12:45, KN:E-301)
Learn how to write effective software, from hardware, through operating systems, to compilers and programming languages.
Organizers and Supporters
Are you working on programming languages in Prague and want to join us? Feel free to drop us an email or add yourself and other information by editing this page on GitHub!
Pierre Donat-Bouillud
Assistant Professor at CTU
pierre.donat.bouillud@fit.cvut.cz
https://www.pdonatbouillud.com
Interested in programming languages, program analysis, and testing techniques, including fuzzing.
Filip Křikava
Associate Professor at CTU
Works on static and dynamic program analysis, compilers and virtual machine implementations.
Tomas Petricek
Assistant Professor at MFF
https://d3s.mff.cuni.cz/~petricek
Interested in interactive programming systems, functional languages, history and philosophy.
Jan Liam Verter
PhD Student at MFF
Builds small programming languages, theorem provers, and other systems related to PLT.
Tomáš Jakl
Assistant Professor at CTU
Interested in semantics properties of logics and programming languages.
Vít Šefl
Lecturer at MFF
https://ksvi.mff.cuni.cz/~sefl
Interested in functional programming, type systems, and theorem provers.
Petr Maj
Senior Compiler Engineer at Azul, Assistant Professor at CTU
Works on compilers, virtual machines and embedded systems.
Štěpán Šindelář
Language Runtimes Engineer at Oracle Labs
Works on dynamic language runtimes and virtual machines
Jakub Dupák
Lecturer at CTU, Compiler Engineer at Microsoft
Interested in compilers, programming languages, system programming, Zig, and Rust.