Dissertation Talk: Design and Implementation of an Optionally-Typed Functional Programming Language
Seminar | December 3 | 3-4 p.m. | 405 Soda Hall
Patrick S. Li, U.C. Berkeley
This talk describes the design and implementation of L.B. Stanza (www.lbstanza.org), a general-purpose programming language aimed at tackling the complexity of architecting large programs and maximizing programmer productivity across the entire software development life cycle.
Stanza consists of five orthogonal subsystems: an optional type system, a multimethod object system, a targetable coroutine system, a programmatic macro system, and the LoStanza sublanguage. Each subsystem is responsible for a separate facet of software development: error detection, architecture, control flow and concurrency, syntactic abstraction, and low-level control. These subsystems work in concert to form a small but expressive language. Philosophically, Stanza is a synthesis of modern type system design with the ease-of-use and readability of Python combined with the power of the Lisp languages of yore.
From the onset, we designed Stanza to be a practical language that solves the problems we encounter in our daily work. To date, Stanza's productivity has helped us complete a number of significant projects at U.C. Berkeley including:
1. Feeny - a minimal virtual machine and language system for teaching CS294-113,
2. FIRRTL - an intermediate representation for digital circuitry that now forms the underlying engine of Chisel 3.0, and
3. Stanza's own compiler - an optimizing x86 compiler with garbage collector and foreign function interface.
The author will also share his experiences with using Stanza in an industrial setting at JITX Inc., an embedded systems design automation company he cofounded with his colleagues Austin Buchan, Duncan Haldane, and Jonathan Bachrach.