Date(s) - 27/01/2017
1:00 pm - 2:00 pm
SICSA DVF Assistant Professor Sam Tobin-Hochstadt from Indiana University, Bloomington will be giving a talk on “Languages as Libraries” on Friday 27 January at the University of St Andrews
Programming language design benefits from constructs for extending the syntax and semantics of a host language. While C’s string-based macros empower programmers to introduce notational short-hands, the parser-level macros of Lisp encourage experimentation with domain-specific languages. The Scheme programming language improves on Lisp with macros that respect lexical scope.
The design of Racket – a descendant of Scheme – goes even further with the introduction of a full-fledged interface to the static semantics of the language. A Racket extension programmer can thus add constructs that are indistinguishable from “native” notation, large and complex embedded domain-specific languages, and even optimizing transformations for the compiler backend. This power to experiment with language design has been used to create a series of sub-languages for programming with first-class classes and modules, numerous languages for implementing the Racket system, and the creation of Typed Racket, a complete and fully integrated typed sister language to Racket’s untyped base language.
In this talk, I’ll review the power of Lisp macros for metaprogramming, describe how Scheme introduced lexical scope for macros, and then show how Racket builds upon these foundation to support the development of full-fledged languages as libraries.
The host of this SICSA DVF is Dr Patrick Maier, University of Glasgow