Colloquium: Extensible Programming Languages: Language Specifications for the Reliable Composition of Language Features

September 21, 2020 - 11:15am to 12:15pm
Dr. Eric Van Wyk
Dr. Gopalan Nadathur
Abstract: Extensible programming languages offer a dramatic departure from traditional programming languages.  Instead of viewing languages as monolithic and fixed, extensible programming languages allow programmers to add new domain-specific features to a host language. These may introduce new notations (syntax) and new analyses and optimizations (semantics).  This type of extensibility is possible when the specifications of the host language and the extensions are modular and composable.  When specifications are modular, different parties can define new language features independently; when they are composable, a programmer can pick and choose the extensions they want to suit their task at hand.

We have developed new language formalisms and new interpretations of existing ones so that it is feasible for independently-developed language extension specifications to be automatically composed to form a coherent specification for a new custom extended language.  We have also articulated the composability criteria that extension specifications must satisfy individually to ensure that the eventual composition of several extensions meeting these criteria will be successful.  These criteria are checked by modular analyses run by extension developers on a single extension specification with respect to the host language being extended.

We demonstrate this in ableC, an extensible specification of C, with extensions for various models of parallel programming, database access, tensor manipulation, regular expression matching, inductive data types, and several others.
Bio: Eric Van Wyk is an Associate Professor in the Department of Computer Science and Engineering at the University of Minnesota.  He earned a Ph.D. at the University of Iowa and was a post-doctoral researcher at the Oxford University Computing Laboratory.  His research focuses on language formalisms and their modular and composoable specification, often with the aim of developing new tools and techniques for specifying extensible programming languages. He was the recipient of a National Science Foundation CAREER Award in 2004 and the College of Science and Engineering Charles E. Bowers Faculty Teaching Award in 2017.