Back to Search Start Over

From type checking by recursive descent to type checking with an abstract machine

Authors :
Dave Clarke
Ilya Sergey
Source :
LDTA
Publication Year :
2011
Publisher :
New York, NY, USA, 2011.

Abstract

Modern type systems for programming languages usually incorporate additional information useful for program analysis, e.g., effects, control flow, non-interference, strictness etc. When designing a typing predicate for such systems, a form of logical derivation rules is normally taken. Despite the expressivity of this approach, the straightforward implementation of an appropriate type checker is usually inefficient in terms of stack consumption and further optimisations. This leads to a significant gap between an analysis and program implementing the analysis. In this paper we demonstrate an application of techniques investigated by Danvy et al. to derive an abstract machine for typing from the traditional recursive descent approach. All used techniques are off-the-shelf and no appropriate correspondence theorems between an initial type system and the derived abstract machine needs to be proven: they are instead corollaries of the correctness of inter-derivation and of the initial specification. Whereas a recursive descent is something straightforward to implement based on declarative typing rules, the derived abstract machine exposes behaviour similar to Landin's SECD machine and gives a solid basis for further optimizations using abstract interpretation. ispartof: pages:1-7 ispartof: LDTA '11 Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications pages:1-7 ispartof: LDTA location:Saarbrucken, Germany date:26 Mar - 27 Mar 2011 status: published

Details

Language :
English
Database :
OpenAIRE
Journal :
LDTA
Accession number :
edsair.doi.dedup.....a1aca2a81dec22ffeb7f076f923564a4