Brown PLT


Welcome to Brown PLT!

Located in beautiful, historic Providence, our work unifies under themes of design and linguistics. 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 join us,

get in touch

Pyret

Pyret is our current main programming language. 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.

Flowlog

Flowlog is our tierless language for programming networks. Flowlog is also a basis for several projects on compiling legacy router specifications, program verification, configuration differential analysis, network monitoring, and so on.

Blog

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

Papers

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

Repositories

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.

PAPL

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.

PLAI

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.

Pedagogy

We have created and studied several other pedagogic innovations. These range from detailed investigations of student peer review to better machinery for teaching garbage collection. Many of these have resulted in published research, so you can learn about and use them through our papers and accompanying artifacts.