SICSA DVF Assistant Professor Sam Tobin-Hochstadt “Languages as Libraries”

Date(s) - 27/01/2017
1:00 pm - 2:00 pm

Jack Cole Building, University of St Andrews

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.

Sam Tobin-Hochstadt is an Assistant Professor in the School of Informatics and Computing at Indiana University. He has worked on dynamic languages, type systems, module systems, and metaprogramming, including creating the Typed Racket system and popularizing the phrase “scripts to programs”. He is a member of the ECMA TC39 working group responsible for standardizing JavaScript, where he co-designed the module system for ES6, the next version of JavaScript. He received his PhD in 2010 from Northeastern University under Matthias Felleisen.

The host of this SICSA DVF is Dr Patrick Maier, University of Glasgow

This entry was posted in .