Jeff Smits

I am a PhD student in the Programming Languages Research Group at Delft University of Technology. I have various research interests around language design and compiler technology. I’ve worked on declarative specification of data-flow analysis, practical incremental compilation for existing languages, and gradual types. I’ve designed FlowSpec, a domain-specific language for the specification of data-flow analysis. For incremental compilation I’ve taken apart the compiler of the Stratego term transformation language, and reassembled it as an incremental compiler. I’m currently working on introducing a gradual type system to Stratego. FlowSpec and Stratego are part of the Spoofax Language Workbench. I am supervised by Eelco Visser.


Conference articles

  • Jeff Smits, Eelco Visser. Gradually Typing Strategies. In Proceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2020, Virtual, USA, November 16-17, 2020. ACM, 2020. preprint doi
  • Jeff Smits, Eelco Visser. FlowSpec: declarative dataflow analysis specification. In Benoît Combemale, Marjan Mernik, Bernhard Rumpe, editors, Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2017, Vancouver, BC, Canada, October 23-24, 2017. pages 221-231, ACM, 2017. doi

Journal articles

  • Jeff Smits, Gabriël D.P. Konat, Eelco Visser. Constructing Hybrid Incremental Compilers for Cross-Module Extensibility with an Internal Build System. In The Art, Science, and Engineering of Programming, 2020. Vol. 4, Issue 3, Article 16. doi
  • Jeff Smits, Guido Wachsmuth, Eelco Visser. FlowSpec: A Declarative Specification Language for Intra-Procedural Flow-Sensitive Data-Flow Analysis. In: Journal of Computer Language, 2020. Vol. 57, April 2020, 100924. doi


  • Jeff Smits. The Static Semantics of the Green-Marl Graph Analysis Language: Formal Specification, Declarative Implementation and Integration with a Compiler Back-end. Master’s thesis, Delft University of Technology, February 2016.