Classically, CS curricula address language design, implementation, metaprogramming (analysis, transformation, generation) in undergraduate courses on compiler construction and programming languages and maybe also software re-/reverse engineering. More recently, the discipline of software language engineering (SLE) has suggested to bundle a related skill set. In this tutorial, SLE is presented in a broad manner on the grounds of the presenter’s emerging SLE textbook. The tutorial integrates language syntax, semantics, types, implementation, and various aspects and applications of metaprogramming. The presenter’s approach can be further characterized as follows: i) do not pull in too much of compiler construction so that a separate course remains viable; ii) approach programming language theory (interpreters, type systems, etc.) in a metaprogramming-oriented manner, as it is also useful for DSLs; iii) commit to one central programming language for illustration which is Haskell by the presenter’s choice; iv) prioritize runnable, representative illustrations over formal content; v) provide extensive further reading pointers so that one can easily scale up to a more research-oriented Master-level course; vi) point out and encourage exploration of SLE technology options without trying to cover various technologies in one book.
Wed 2 NovDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:30 - 15:10
|Define Your App, Don’t Implement It: Building a Scalable Social Network in 45 minutes
|The basic skill set of software language engineering
Ralf Laemmel University of Koblenz-Landau, GermanyMedia Attached