
Overview
The Programming Languages group studies the design, implementation, and formalization of programming languages. Our research includes work on language design, type systems, functional programming, and visual languages. We specialize in developing domain-specific languages that support solving and communicating difficult problems in a particular area by raising the level of abstraction, focusing on essential complexity, and empowering domain experts who may not be professional programmers. We also apply programming language techniques to solve problems in software engineering and end-user programming.
Sub Areas
- Functional Programming
- Domain-Specific Languages
- Type Systems
- Language Design
- Visual Languages
Related Courses
- CS 581: Programming Languages I
- CS 582: Programming Languages II
- CS 583: Advanced Functional Programming
- CS 584: Human Factors of Programming Languages
- CS 585: Domain-Specific Languages
- CS 589: Special Topics in Programming Languages
Faculty
Martin Erwig
Language design and domain-specific languages; functional programming; visual languages; end-user software engineering
Eric Walkingshaw
Domain-specific languages; functional programming; type systems; variability; extensibility; human factors
Affiliated Faculty
Margaret Burnett
Human issues of programming & software engineering: end-user programming, end-user software engineering, information foraging theory as applied to programming, how gender issues relate to software
Liang Huang
Natural language processing, including parsing and translation; structured machine learning; programming languages; automata and formal language theory