LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Deriving algorithms from type inference systems: application to strictness analysis
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A syntactic approach to type soundness
Information and Computation
Types and programming languages
Types and programming languages
The Definition of Standard ML
Principles of Program Analysis
Principles of Program Analysis
Definitional Interpreters Revisited
Higher-Order and Symbolic Computation
Strictness Analysis in Logical Form
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
A functional correspondence between evaluators and abstract machines
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Theoretical Computer Science - Applied semantics: Selected topics
Types and trace effects of higher order programs
Journal of Functional Programming
A rewriting semantics for type inference
ESOP'07 Proceedings of the 16th European conference on Programming
From reduction-based to reduction-free normalization
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Towards deriving type systems and implementations for coroutines
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Three syntactic theories for combinatory graph reduction
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
Higher-order abstract non-interference
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Defunctionalized interpreters for call-by-need evaluation
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
A correspondence between type checking via reduction and type checking via evaluation
Information Processing Letters
Hi-index | 0.00 |
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.