Damian Frolich is a first year PhD candidate at the University of Amsterdam. His research is in the area of programming language design, exploratory programming, and the intersection of the two. He is passionate about programming languages, functional programming and programmer productivity. In his free time, he likes to walk, mountain bike and play pool.
AUTHORS: Damian Frolich and Thomas van Binsbergen
Exploratory programming is a form of incremental program development in which the programmer can easily try and compare definitions, receive immediate feedback and simultaneously experiment with the language, the program and input data. Read-Eval-Print-Loop interpreters (REPLs) and computational notebooks are popular tools for exploratory programming. However, their usability, capabilities and user-friendliness are strongly dependent on the underlying interpreter and, in particular, on the ad hoc engineering required to ready the underlying interpreter for incremental program development. To break this dependency, a principled approach to REPL development can be adopted, using a so-called exploring interpreter for exploratory programming and applying software language engineering to carefully define the operational semantics of the underlying interpreter. This talk presents a generic Haskell implementation of the exploring interpreter - applicable to a large class of software languages - and demonstrates its usage to develop a variety of interfaces with a shared back-end, including command-line REPLs and a computational notebooks.
OBJECTIVE: Creating excitement for exploring interpreters by showing a generic implementation of the exploring interpreter and how it can be used to develop a variety of interfaces with a shared back-end.
AUDIENCE: Programming language creators, programmers and anyone in betweenSlides