Research group

Programming Languages and Tools Lab

Since its foundation in 2012 by Dmitri Boulytchev, the laboratory has been carrying out scientific research in the area of programming language theory, with the main focus on the following topics:

  • Relational and logic programming
  • Weak memory models and concurrency
  • Meta-programming, meta-computations, and partial evaluation
  • Programming language semantics and types
  • Certified programming and mechanized proofs
  • Functional programming
  • Formal languages theory

The other important focus of the laboratory is education. The laboratory, which is open to both undergraduates and graduate students, gets students involved in research projects and provides an opportunity to join related PhD programs. Also, the laboratory members have been designing, lecturing, and assisting courses on the following themes:

  • Compiler engineering
  • Meta-computations
  • Formal languages
  • Programming language semantics
  • Introduction to mechanized proof engineering in Coq

Additionally, the laboratory carries out the following activities:

  • A weekly seminar on programming language theory and practice.
  • Open free courses on topics relevant to the lab’s research interests.
  • Summer internships at JetBrains — they provide an opportunity for students to work at the company for 1-3 months.
  • An annual mini-conference. At this event, laboratory students present the results of their term papers, bachelor’s and master’s theses, and summer internships.
  • A seminar on reading and writing papers, where participants develop specific skills required for reading, analyzing, and writing research papers.

New members are always welcome at the laboratory. The best way to join the group is to attend either our weekly seminar or our open courses and then choose one of the available research topics to pursue.

Group Members