The Programming Languages Laboratory Toggle navigation The Programming Languages Laboratory at The Johns Hopkins University Members Seminars Spring 2022 Fall 2021 Spring 2021 Fall 2020 Summer 2020 Spring 2020 Fall 2019 Spring 2019 Fall 2018 Summer 2018 Spring 2018 Fall 2017 Spring 2017 Fall 2016 Spring 2016 Fall 2015 Projects Current DDSE DDPA Previous Big Bang BSJ NesT Coqa Nuggetizer NewArch Security Type Constraints Specification Diagrams Foundations of Actor Computation Foundations of Operational Semantics Hardware Verification Constructive Type Theory Courses Principles of Programming Languages Principles of Programming Languages II Object-Oriented Software Engineering Functional Programming in Software Engineering Contact The Programming Languages Laboratory focuses on fundamental problems in programming languages. We are interested in addressing challenging problems which can also have practical impact within a ten year time frame. A common thread of much of our research is the extraction of static (compile-time) properties of programs. This can include type information, flow information, security information, and other program properties. Efforts involve both solving of fundamental problems, and implementation to justify the usefulness of the solution. Projects Current DDSE Demand-Driven Symbolic Execution DDPA Demand-Driven Program Analysis Previous Big Bang Typed scripting language design BSJ Backstage Java: Difference-based metaprogramming for Java NesT Staged programming for sensor networks Coqa Improving atomicity and programmability for multi-core machienes Nuggetizer Extracting inductive definitions from arbitrary programs for automated program reasoning NewArch Rethinking classes, modules, and component boundaries and interactions Security Securing programs by using programming language methodology to track data Type Constraints Specification Diagrams Foundations of Actor Computation Foundations of Operational Semantics Hardware Verification Constructive Type Theory