Software Engineering and Programming Languages



Research in this area focuses on the design of new formalisms and frameworks to improve the quality of software. Software is a solution to a computational problem using a formal programming language. The constructs of the language and the tools available to model, implement, and test a software system influence the quality of that solution, in terms of correctness, reliability, readability, computational efficiency, and efficiency in design and development. At the linguistic level, research focuses on constructing methods for extending existing languages with domain specific features, for example, and in exploiting logic and type theory based approaches in developing flexible and secure programs. At the implementation level, our work focuses on designing virtual machines and compilation techniques to support extensibility and to realize new and sophisticated programming language features.
Faculty






Labs and selected projects
- Abella: An Interactive Theorem Prover for Reasoning About Specifications of Computations Gopalan Nadathur
- CriSys: Critical Systems Research Group Mats Heimdahl
- Flowcheck Stephen McCamant
- MELT: Minnesota Extensible Language Tools Group Eric Van Wyk
- Teyjus: an efficient implementation of Lambda Prolog Gopalan Nadathur
Related centers and programs
Latest research projects, publications, and talks

About a Proof Pearl: A Purported Solution to a POPLMARK Challenge Problem that is Not One [preprint]
Posted December 17, 2021
Gopalan Nadathur (professor)

Composition of Fault Forests [conference paper]
Posted September 7, 2021
Danielle Stewart (Ph.D. 2020), Michael Whalen (adjunct assistant professor), Mats Heimdahl (professor), Jing Janet Liu, Darren Cofer (adjunct assistant professor)
40th International Conference on Computer Safety, Reliability and Security (SafeComp 2021)

On Encoding LF in a Predicate Logic over Simply-Typed Lambda Terms [preprint]
Posted August 24, 2021
Gopalan Nadathur (professor), Mary Southern (Ph.D. .2021)

Better Program Analysis for Security via Data Flow Tracking and Symbolic Execution [thesis]
Posted August 1, 2021
Navid Emamdoost (Ph.D. 2021)

Adelfa: A System for Reasoning about LF Specifications [preprint]
Posted July 16, 2021
Mary Southern (Ph.D. 2021), Gopalan Nadathur (professor)

A Logic for Reasoning About LF Specifications [preprint]
Posted June 30, 2021
Gopalan Nadathur (professor), Mary Southern (Ph.D. 2021)

Reflection of terms in attribute grammars: Design and applications [journal]
Posted June 1, 2021
Lucas Kramer (Ph.D. student), Ted Kaminski (Ph.D. 2017), Eric Van Wyk (professor)
Journal of Computer Languages

Identifying and Characterizing Silently-Evolved Methods in the Android API [conference paper]
Posted May 25, 2021
Pei Liu, Li Li, Yichun Yan (M.S. student), Mattia Fazzini (assistant professor), John Grundy
IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)

ANDROR2: A Dataset of Manually-Reproduced Bug Reports for Android apps [conference talk]
Posted May 18, 2021
Tyler Wendland (undergraduate research assistant), Jingyang Sun, Junayed Mahmud, SM Hasan Mansur, Steven Huang, Kevin Moran, Julia Rubin, Mattia Fazzini (assistant professor)
IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)

AADL-Based safety analysis using formal methods applied to aircraft digital systems [journal]
Posted April 20, 2021
Danielle Stewart (Ph.D. student), Jing Janet Liu, Darren Cofer, Mats Heimdahl (professor), Michael W Whalen (adjunct assistant professor), Michael Peterson
Reliability Engineering & System Safety
More About Research areas
- Architectures, Compiler Optimization, and Embedded Systems
- Bioinformatics and Computational Biology
- Data Mining, Databases, and Geographical Information Systems
- Graphics and Immersive Computing
- High Performance Computing
- Human Computer Interaction (HCI)
- Networks, Distributed Systems, and Security
- Robotics and Artificial Intelligence
- Theoretical Foundations