Copenhagen Programming Language Seminar
In this talk, I will describe our research in extensible languages. An extensible programming language allows a programmer to import into her extensible "host" programming language a unique combination of domain-specific language features. The resulting extended language raises the level of abstraction of the language to that of the problem domain. These imported features may be (i) new language constructs describing high-level abstractions in a domain, (ii) semantic analyses that, for example, check that the programmer has used the new language constructs correctly, or (iii) optimizing program transformations that rewrite a program into a more efficient form.
Silver is our attribute grammar specification language that, along with its supporting tools, provides the underlying language processing mechanisms that our extensible compiler framework employs. I will discuss two key aspects of Silver. The first is the use of "forwarding" in attribute grammars that provides the high degree of modularity in language implementation that we seek. The second is an extension to Silver that provides mechanisms for building control flow graphs of imperative programs and performing data flow analysis on these graphs via model checking. A data-flow analysis, like dead-assignment identification, can be specified as a temporal logic formula written in either CTL or LTL-FV and carried out by the appropriate model checker. Thus, in Silver one can specify both syntax-directed analyses and control flow-based analyses, such as data flow analysis, in a single declarative framework.
Neil Jones. Administrative host:
Camilla Jensen. All are welcome.
The Copenhagen Programming Language Seminar (COPLAS) is a collaboration between DIKU, ITU and KVL.
COPLAS is sponsored by FIRST Graduate School.
To receive information about COPLAS talks by email, send a message to firstname.lastname@example.org with the word 'subscribe' as subject or in the body.
For more information about COPLAS, see http://www.coplas.org