Publications

  • Torosyan, S., J. Zeppieri, and M. Flatt. Runtime and Compiler Support for HAMTs. Dynamic Languages Symposium (DLS) 2021. Published, 10/2021.
  • Musslick, S., A. Cherkaev, B. Draut, A. Butt, P. Darragh, V. Srikumar, M. Flatt, and J.D. Cohen. SweetPea: A Standard Language for Factorial Experimental Design. Behavioral Research Methods, Instruments, and Computers (2021). Published, 08/2021.
  • Flatt, M. and R.K. Dybvig. Compiler and Runtime Support for Continuation Marks. Programming Language Design and Implementation (PLDI) 2020. Published, 06/2020.
  • Flatt, M., C. Derici, R.K. Dybvig, A.W. Keep, G.E. Massaccesi, S. Spall, S. Tobin-Hochstadt, and J. Zeppieri. Rebuilding Racket on Chez Scheme (Experience Report). International Conference on Functional Programming (2019). Published, 08/2019.
  • Culpepper, R., M. Felleisen, M. Flatt, and S. Krishnamurthi. From Macros to DSLs: The Evolution of Racket. Summit oN Advances in Programming Languages (SNAPL). 2019. Published, 05/2019.
  • Hatch, W.G. and M. Flatt. Rash: From Reckless Interactions to Reliable Programs. Generative Programming: Concepts and Experience (GPCE). 2018. Published, 10/2018.
  • S. Florence, B. Fetscher, M. Flatt, W.H. Temps, T. Kiguradze, D.P. West, C. Niznik, P.R. Yarnold, R.B. Findler, and S.M. Belknap. POP-PL: A Patient-Oriented Prescription Programming Language. ACM Transations on Programming Languages, 40(3), pages 10:1-10:37, 2018. Published, 07/2018.
  • Matthias Felleisen & Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi (2018). How to Design Programs, Second Edition. (pp. 754). MIT Press. Published, 05/2018.
  • Felleisen, M., R.B. Findler, M. Flatt, S. Krishnamurthi, E. Barzilay, J. McCarthy, and S. Tobin-Hochstadt. A Programmable Programming Language. Communications of the ACM, 61(3), pages 62-71. 2018. Published, 03/2018.
  • Cherkaev, A., S. Musslick, J. Cohen, V. Srikumar, and M. Flatt. SweetPea: A Language for Designing Experiments. Off the Beaten Track. 2018. Published, 01/2018.
  • Li, X. and M. Flatt. Debugging with Domain-Specific Events via Macros. Software Language Engineering (SLE). 2017. Published, 10/23/2017.
  • Li, X. and M. Flatt. Debugging Domain-Specific Languages Defined with Macros. Domain-Specific Language Design and Implementation (DSLDI). 2017. Published, 10/08/2017.
  • Tobin-Hochstadt, S., M. Felleisen, R.B. Findler, M. Flatt, B. Greenman, A.M. Kent, V. St-Amour, T.S. Strickland, and A. Takikawa. Migratory Typing: Ten Years Later. Summit oN Advances in Programming Languages (SNAPL). 2017. Published, 05/07/2017.
  • Moore, S., C. Dimoulas, R.B. Findler, M. Flatt, and S. Chong. Extensible Access Control with Authorization Contracts. Object-Oriented Systems, Programming Languages, and Appllications (OOPSLA). 2016. Published, 10/2016.
  • Hasu, T., and M. Flatt. Source-to-Source Compilation via Submodules. European Lisp Symposium (ELS). 2016. Published, 04/2016.
  • M. Flatt. Binding as Sets of Scopes. Principles of Programming Languages (POPL). 2016. Published, 01/2016.
  • S. Florence, B. Fetscher, M. Flatt, W.H. Temps, T. Kiguradze, D.P. West, C. Niznik, P.R. Yarnold, R.B. Findler, and S.M. Belknap. POP-PL: A Patient-Oriented Prescription Programming Language. Generative Programming: Concepts and Experiences (GPCE). 2015. Published, 10/2015.
  • A. Takikawa, D. Feltey, E. Dean, R.B. Findler, M. Flatt, S. Tobin-Hochstadt, and M. Felleisen. Towards Practical Gradual Typing. European Conference on Object-Oriented Programming (ECOOP). 2015. Published, 07/2015.
  • M. Felleisen, R.B. Findler, M. Flatt, S. Krishnamurthi, J. McCarthy, S. Tobin-Hochstadt. The Racket Manifesto. Summit on Advances in Programming Languages (SNAPL). 2015. Published, 05/2015.
  • M. Flatt. "Submodules in Racket: You Want it When, Again?". Generative Programming: Concepts and Experiences, 2013. Published, 10/2013.
    http://www.cs.utah.edu/plt/publications/gpce13-f-c...
  • K. Tew, J. Swain, M. Flatt, R.B. Findler, and P. Dinda. "Distributed Places". Trends in Functional Programming, 2013. Published, 05/2013.
  • C. Klein, M. Flatt, and R.B. Findler. "The Racket Virtual Machine and Randomized Testing". Higher Order and Symbolic Programming, 2013. Published, 02/2013.
    http://plt.eecs.northwestern.edu/racket-machine/
  • T.S. STRICKLAND, S. TOBIN-HOCHSTADT, R.B. FINDLER, AND M. FLATT. Chaperones and Impersonators: Run-time Support for Reasonable Interposition. In Proc. ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). Published, 10/2012.
    http://www.cs.utah.edu/plt/publications/oopsla12-s...
  • J. RAFKIND AND M. FLATT. Honu: Syntactic Extension for Algebraic Notation through Enforestation. In Proc. Conference on Generative Programming and Component Engineering (GPCE). Published, 10/2012.
    http://www.cs.utah.edu/plt/publications/gpce12-rf....
  • J. SWAINE, B. FETSCHER, R.B. FINDLER, AND M. FLATT Seeing the Futures: Profiling Shared-Memory Parallel Racket. In Workshop on Functional High-Performance Computing. Published, 09/2012.
    http://www.eecs.northwestern.edu/~robby/pubs/paper...
  • M. FLATT, R. CULPEPPER, D. DARAIS, AND R.B. FINDLER. Macros that Work Together: Compile-Time Bindings, Partial Expansion, and Definition Contexts. Journal of Functional Programming, 22(2), pages 181–216. Published, 03/2012.
    http://www.cs.utah.edu/plt/publications/jfp12-draf...
  • V. ST-AMOUR, S. TOBIN-HOCHSTADT, M. FLATT, AND M. FELLEISEN. Typing the Numeric Tower. In Proc. Practical Aspects of Declarative Languages (PADL). Published, 01/2012.
    http://www.ccs.neu.edu/racket/pubs/padl12-stff.pdf
  • C. KLEIN, J. CLEMENTS, C. DIMOULAS, C. EASTLUND, M. FELLEISEN, M. FLATT, J. MCCARTHY, J. RAFKIND, S. TOBIN-HOCHSTADT, AND R.B. FINDLER. Run Your Re- search: On the Effectiveness of Lightweight Mechanization. In Proc. ACM Symposium on Principles of Programming Languages (POPL). Published, 01/2012.
    http://eecs.northwestern.edu/~robby/lightweight-me...
  • C. Klein, M. Flatt, and R.B. Findler. Random Testing for Higher-Order, Stateful Programs. Proc. ACM Conference on Object-Oriented Programming Systems, Languages, and Applications. 2010. Published, 10/2010.
  • Atkinson, Flatt, and Lindstrom. Using Macros to Address ABI Compatibility. Proc. Conference on Generative Programming and Component Engineering. 2010. Published, 10/2010.
  • J. Swaine, K. Tew, P. Dinda, R.B. Findler, and M. Flatt. Back to the Futures: Incremental Parallelization of Existing Sequential Runtime Systems. Proc. ACM Conference on Object-Oriented Programming Systems, Languages, and Applications. 2010. Published, 10/2010.
  • M. Sperber, R.K. Dybvig, M. Flatt, and A. van Straaten, editors. Revised^6 Report on the Algorithmic Language Scheme. Cambridge University Press. 2010. Published, 06/2010.
  • Semantics Engineering with PLT Redex. Felleisen, Findler, and Flatt. MIT Press. Published, 2009.
  • Scribble: Closing the Book on Ad Hoc Documentation Tools. Flatt, Barzilay, Findler. Intl Conference on Functional Programming. Published, 2009.
  • A Functional I/O System (or Fun for Freshman Kids). Felleisen, Findler, Flatt, Krishnamurthi. Intl Conference on Functional Programming. Published, 2009.
  • Precise Garbage Collection for C. Rafkind, Wick, Flatt. Intl Symposium on Memory Management. Published, 2009.

Research Statement

My research interests include programming languages and programming environments. I am especially interested in programming environments and tools for extensible and interoperating programming languages.

Presentations

  • Clojure/conj. Invited Talk/Keynote, Presented, 11/2019.
  • European Lisp Symposium. Invited Talk/Keynote, Presented, 03/2019.
  • Scheme and Functional Programming Workshop. Invited Talk/Keynote, Presented, 09/2018.
  • DSL Design and Implementation Summer School. Invited Talk/Keynote, Presented, 07/2015.
    http://vjovanov.github.io/dsldi-summer-school/
  • University of Cambridge seminar. Other, Presented, 05/2014.
  • Keyword and Optional Arguments in PLT Scheme. Flatt, Barzilay. Scheme Workshop. Conference Paper, Refereed, Other, 2009.

Research Groups

  • Chris Brooks, Graduate Student. 08/2015 - 08/2016.
  • William Hatch, Graduate Student. 05/2015 - present.
  • Xiangqi Li, Graduate Student. 08/2011 - present.

Geographical Regions of Interest

  • Eastern Asia

Software Titles

  • Racket. programming environment. Release Date: 01/01/2023. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • SweetPea. domain-specific language for describing and synthesizing cognitive-science experiments. Release Date: 01/01/2023. Inventors: Butt, Cherkaev, Cohen, Darragh, Draut, Flatt, Musslick, Srikumar.
  • Racket. programming environment. Release Date: 01/01/2022. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • SweetPea. domain-specific language for describing and synthesizing cognitive-science experiments. Release Date: 01/01/2022. Inventors: Butt, Cherkaev, Cohen, Darragh, Draut, Flatt, Musslick, Srikumar .
  • Racket. programming environment. Release Date: 01/01/2020. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • Racket. programming environment. Release Date: 01/01/2019. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • Racket. Programming environment. Release Date: 01/2018. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • Racket. programming environment. Release Date: 01/01/2017. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • Racket. programming environment. Release Date: 01/2015. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • Racket. Programming language and environment. Release Date: 06/2013. Inventors: PLT (Flatt, Findler, Felleisen, McCarthy, Tobin-Hochstadt, et al.).
  • Racket. Programming language and environment. Release Date: 11/2012. Inventors: PLT (Flatt, Findler, Felleisen, Barzilay, McCarthy, et al.).
  • Racket. Programming language and environment. Release Date: 11/2010. Inventors: PLT (Flatt, Findler, Felleisen, Barzilay, McCarthy, et al.).
  • PLT Scheme. programming language and development environment. Release Date: 2009. Inventors: Flatt, Findler, Felleisen, et al.
  • PLT Scheme. Scheme programming environment and libraries. Release Date: 12/01/2008.