Skip to content (access key 's')
Logo of Technion
Logo of CS Department

The Taub Faculty of Computer Science Events and Talks

Thapl - A Theaterical Programming Language
event speaker icon
Matan Peled (M.Sc. Thesis Seminar)
event date icon
Tuesday, 03.09.2019, 12:30
event location icon
Room 601 Taub Bld.
event speaker icon
Advisor: Prof. Y. Gil and Prof. D. H. Lorenz
The purpose of this research is to explore an innovative approach to the declarative and imperative paradigms of programming languages. To demonstrate this approach, we have developed a prototype domain-specific language inspired by the scripts of theatrical plays, hence dubbed Tʜᴀᴘʟ. Tʜᴀᴘʟ's intended use is in the context of animation generation in “slide-show” presentations. There are two different ways to integrate animations in a presentation. The first is to embed an animation within a single slide, so that the animation starts when that slide starts and stops when continuing to the next slide, as if it were a video. The other is to present the animation as a series of slides, where each slide is static, like a flip book or a kinetoscope; Tʜᴀᴘʟ embraces this latter approach. The theatrical play metaphor encompasses the concept of a classical theatrical play script (e.g., Shakespearean play), enumerating the “Dramatis Personæ,” scenery, text, and actions (e.g., “exit chased by a bear”). Tʜᴀᴘʟ expands the declarative and imperative paradigm by introducing a declarative vocabulary for describing actors and actions on those actors, as well as a behavior language with specialised constructs for describing sequential and concurrent actions. Although programming languages that create presentations and animations already exist, they either operate at unreasonably low levels of abstraction which are ill-suited for creating animations or are aimed at authoring other media types (e.g., films), and only support slide-show creation as an after-thought. Conversly, existing software tools for creating slide-shows are not designed for animations. Modifying an existing animation is hard, and for solutions that utilize binary formats, fundamental software-engineering tools such as source control and are impractical. Tʜᴀᴘʟ is useful whenever one would like to graphically elucidate concepts with on-screen visual objects that dynamically change. Examples include academic courses (especially those that deal with graphs and algorithms), product presentations, and fiscal reviews.