Hoppa till huvudinnehållet
Institutionen för informationsteknologi

Building Programming Languages with Composable Language Fragments

Presenter
Elias Castegren, KTH

Date and Time
May 27th 2020, 14:15 - 15:00

Location
Zoom: https://uu-se.zoom.us/j/61827085769

Abstract
Programming languages come in all shapes and sizes. However, even
languages with widely different features and purposes often have
some overlapping features in their implementation. For example,
most languages support some set of primitives and operations on
them, have some notion of scoped name-binding, perform standard
optimization passes, and so on. Unfortunately, because language
implementations are typically monolithic, there is little hope of
allowing different language implementations to share or reuse each
other's implementations.

In this talk I will give an overview of our ongoing work designing
and implementing a language based on composable language
fragments. Instead of viewing the pipeline of a compiler or an
interpreter as a series of transformations on a single monolithic
data type representing the abstract syntax tree, we think of it as
syntactic fragments (e.g. the abstract syntax of numbers and
arithmetic operations) being operated on by semantic fragments
(e.g. typechecking or evaluation of arithmetics) which can later
be composed into bigger fragments. In this way, we can implement
full languages by mixing and matching existing fragments and
providing new functionality only where our language is different.

I will focus on how to statically reason about composition of
language fragments and describe some of the subtle issues that
arise in this style of programming.

Back to the seminar page

Uppdaterad  2020-05-18 14:53:10 av Albin Stjerna.