Stay Informed:

COVID-19 (coronavirus) information
Zoom Links: Zoom Help | Teaching with Zoom | Zoom Quick Guide

New Perspectives in Programming Language Design

Speaker Name: 
Yizhou Zhang
Speaker Title: 
Ph.D Candidate
Speaker Organization: 
Cornell University
Start Time: 
Tuesday, February 26, 2019 - 11:00am
End Time: 
Tuesday, February 26, 2019 - 12:15pm
Cormac Flanagan


Programming language design is more active than ever: existing language designs—including Rust, Swift, Go, Java, C#, Scala, Haskell, and JavaScript, to name a few—are evolving continually and rapidly, and new languages keep springing up. While this constant iteration of language design aims to help programmers manage a growing software complexity, programmers are still frequently frustrated by poor design decisions in even the most essential aspects (e.g., generics and exceptions) of modern languages. The inadequacy of current solutions to these problems has even forced language designers to abandon these problematic language features. This is an unfortunate state of affairs.

Language design does not have to be just about abandoning old features or piling on new ones. Viewing the design space from new perspectives allows probing open problems in surprisingly effective ways. As an example, I will describe exception handling in the Genus programming language. The exception mechanism of Genus is an important step towards settling the long-running debate over checked vs. unchecked exceptions: it combines the benefits of static checking with the flexibility of unchecked exceptions. The payoff is safer, cleaner, and faster code. I will also discuss how this mechanism can be generalized to solve a fundamental modularity problem in algebraic effects, a unifying language abstraction that is quickly gaining popularity among programmers and language designers.



Yizhou Zhang is a doctoral candidate in the Computer Science Department at Cornell University, advised by Andrew Myers. His research interests are in programming languages and software engineering. He designs and implements programming languages that help improve programmer productivity and software reliability. He was an undergraduate student at Shanghai Jiao Tong University.