Brown PLT

Welcome to
Brown PLT!

Located in beautiful, historic Providence, our work unifies under themes of design, learning, and languages. We build languages, analyze them, and take them apart. We create environments and other tools for working with them, as well as books for understanding them. If you want to learn more or join us,

get in touch


Pyret is the main language we're currently working on. We combine the best of functional and scripting languages to create an outstanding language for teaching and, down the road, general-purpose programming. Pyret is an umbrella for several efforts in compilation, type systems, error-reporting, language design, and much more.


Bootstrap is our outreach program for middle- and high-school computing. We work in schools across the US and in several other countries. Our curricula teach algebra, data science, and physics in addition to computing, and are embedded into courses in several subjects, enabling us to achieve our three goals of equity, rigor, and scale.

Other Systems

We view research and building systems as complementary and mutually-reinforcing. We have worked (and in some cases continue to work) on research-driven systems used by many other people, including JavaScript and Web tools, Flowlog and related tools, Racket and DrRacket, WeScheme, Margrave, Flapjax, FrTime, Continue, Captain Teach, and PerMission.


We have three faculty members (Shriram Krishnamurthi, Kathi Fisler, Tim Nelson), four PhD students (Justin Pombrio, Jack Wrenn, Tasha Danas, Preston Tunnell Wilson), several undergraduates, three Bootstrap employees (Emmanuel Schanzer, Emma Youndtsmith, Ed Campos Jr.), and a research programmer (Dorai Sitaram). We also collaborate with several faculty at other universities (most notably, Dan Dougherty, Ben Lerner, Joe Politz, Matthias Felleisen).


We often blog about our work. Our blog is a convenient, lightweight way to learn about our research.


All of our papers are online. They have associated repositories of code, data, proofs, and other artifiacts, as appropriate.


Most of our recent work is in our github repository, although individual papers have their own repositories elsewhere. In general, a paper's page above is the best source for material about that paper.

Computing Education Research

We are actively conducting research on topics like scope and aliasing, plan composition, examples and peer review, creativity and customization, semantics for learning, and transfer between programming and math.


Programming and Programming Languages is the book in which we best explain our approach to the study of programming, and the interaction between programming and the languages we use to describe it.


Programming Languages: Application and Interpretation is our older book, still in widespread use, focused on programming languages. The first edition and second edition are both still available.


We have created and studied several other pedagogic innovations. These range from student peer review to better machinery for teaching garbage collection to new ways to teach programming languages.