ChalkBoard: A Functional Image Description Language and Its Practical Applications

Kevin Matlage · KU ScholarWorks (The University of Kansas) · 2011

ChalkBoard is a domain specific language (DSL) for describing images. The ChalkBoard language is uncompromisingly functional and encourages the use of modern functional idioms. Unlike many similar systems, ChalkBoard uses off-the-shelf graphics cards to speed up the rendering of these functional descriptions. The speed gained from this efficient rendering has allowed the addition of animation to the language. The Active extension to ChalkBoard is another DSL, built on top of ChalkBoard, that captures the concept of animation inside a Haskell applicative functor. This allows for a clean, compositional approach to animation in ChalkBoard. Given both the efficiency and functional style of this animation, there are many possible applications. One of these is a system called Active Transformations, which uses the animation capabilities of ChalkBoard to animate code (and other tree-based) transformations. The Active Transformations system uses ChalkBoard animation in order to show how certain transformations and optimizations occur, instead of just providing before and after snapshots, making it an extremely useful educational tool. In this thesis, the design of each of these systems is described and explained, from the core ChalkBoard language, to the Active extension to ChalkBoard, and finally the Active Transformation system built on top of them.

Read the paper · More papers on PaperTik