Lukas Lazarek


Hi! I’m a grad student studying Programming Languages at Northwestern. This page provides information about myself and what I have been doing recently. The other half of the site is a blog that I use to practice writing about technical things, my research, and my interests.

Research Interests

Broadly, I’m interested in Programming Languages approaches to improving software development. This concretely means investigating how language features can improve program robustness, understandability, and maintainability. My work involves understanding the fundamental meanings of those features, how they interact, and how they impact programmers. To those ends, I use reduction semantics as a primary tool for modeling and understanding various languages and their features. Additionally, I work on the Racket programming language as a test bed for implementing, using, and evaluating new features or languages.

Contact information

My github profile is llazarek.

I can be reached by email at

(or (concat "lukas" "." "lazarek" "@" "")

    (concat "lukas" "a" "lazarek" "@" ""))



Does Blame Shifting Work? (POPL 2020)
Lukas Lazarek, Alexis King, Samanvitha Sundar, Robert Bruce Findler, Christos Dimoulas
[doi] [artifact] [video] [bibtex] [pdf]
Proposes the first empirical methodology to evaluate the pragmatic value of blame in contract systems. At an intuitive level, the methodology evaluates the hypothesis that blame is systematically related to bugs in programs, using a controlled experiment performed with real programs. We evaluate Racket’s contract system using this approach and find that blame mostly does have the desired relationship with bugs, with some interesting caveats.


Faster Variational Execution with Transparent Bytecode Transformation (OOPSLA 2018)
Chu-Pan Wong, Jens Meinicke, Lukas Lazarek, Christian Kästner
[doi] [bibtex] [pdf]
Introduces an approach to implement variational execution as a compilation strategy by rewriting Java bytecode. This approach significantly improves upon the performance of existing (interpreted) engines, and opens the opportunity to explore new optimization techniques.


Does Blame Shifting Work? (POPL 2020, New Orleans 2020-01-22)

[slides] [video]
For the POPL20 paper by the same name.

Posters and Extended Abstracts

How to Efficiently Process 2100 List Variations (SPLASH 2017, Vancouver 2017-10-22)

[poster] [abstract]
Extended abstract and poster, won first place in student research competition.