SWAT seminar: Eric van Wyk (University of Minnesota)

Everyone is welcome to attend the SWAT lecture of Eric van Wyk with the title 'Attribute Grammars: Composable and Modular Language Specifications'.
  • What Software Analysis & Transformation English Seminars
  • When 13-06-2019 from 14:00 to 16:00 (Europe/Amsterdam / UTC200)
  • Where Room L120 at CWI, Science Park 123 in Amsterdam
  • Add event to calendar iCal

Everyone is welcome to attend the SWAT lecture of Eric van Wyk with the title 'Attribute Grammars: Composable and Modular Language Specifications'

Abstract:
Attribute grammars were invented in 1968 by Donald Knuth as a formalism for specifying the semantics of context free languages. Attributes decorate syntax tree nodes to indicate, for example, the type of an expression or the environment for looking up identifier types or values. Equations over attributes determine these values. Since then the formalism's popularity had waxed and waned but has been continually extended with new features to become an expressive paradigm for specifying many kinds of analyses and translations of programming languages.  This talk will cover several of these extensions; including higher-order attributes, in which attributes can themselves be syntax trees, reference attributes, in which attributes are references to other nodes in the decorated tree, and forwarding, a mechanism that supports the composition of language extension specifications.

This talk will demonstrate several of these features as they are realized in the Silver attribute grammar system.  Examples are drawn
from ableC, an extensible specification of C written in Silver, and several language extensions that add new syntax and static semantics to the C host language.  These include extensions for parallel programming inspired the by Cilk, Halide, and Taco systems, ML-style algebraic data types with pattern matching, regular expression literals and matching, and others.  Silver was designed to support the automatic composition of independently-developed language extensions such as these.  This allows programmers to import new features into their compilers with the same ease as which they import libraries into their programs.  Static analyses and constructs in Silver that support this style of modular language design are a focus of the demonstrations.