The Racket doctrine tells developers to narrow the
gap between the terminology of a problem domain and general
programming constructs by creating languages instead of just
plain programs. This pearl illustrates this point with the
creation of a relatively simple domain-specific language for
editing videos. To produce the video proceedings of a
conference, for example, video professionals traditionally
use "non-linear" GUI editors to manually edit each talk,
despite the repetitive nature of the process. As it turns
out, video editing naturally splits the work into a
declarative phase and an imperative rendering phase at the end. Hence
it is natural to create a functional-declarative language
for the first phase, which reduces a lot of manual labor.
This user-facing DSL utilizes a second, internal DSL to
implement the second phase, which is an interface to a
general, low-level C library. Finally, we inject type
checking into our language via another DSL that supports
programming in the language of type formalisms. In short,
the development of the video editing language cleanly
demonstrates how the Racket doctrine naturally leads to the
creation of language hierarchies, analogous to the
hierarchies of modules found in conventional functional
languages.
Mon 4 SepDisplayed time zone: Belfast change
10:30 - 12:00 | |||
10:30 22mTalk | Super 8 Languages for Making Movies (Functional Pearl) Research Papers Leif Andersen Northeastern University, USA, Stephen Chang Northeastern University, USA, Matthias Felleisen Northeastern University, USA DOI | ||
10:52 22mTalk | Testing and Debugging Functional Reactive Programming Research Papers DOI | ||
11:15 22mTalk | Lock-Step Simulation Is Child's Play (Experience Report) Research Papers DOI | ||
11:37 22mTalk | Scaling up Functional Programming Education: Under the Hood of the OCaml MOOC Research Papers Benjamin Canou OCamlPro, n.n., Roberto Di Cosmo Inria, France / University of Paris Diderot, France, Grégoire Henry OCamlPro, n.n. DOI |