Electronic Notes in Theoretical Computer Science · 2004 · 31 citations · 21 references
ComputingComputer ScienceCompilersProgramming LanguagesTheory Of ComputationAbstract Syntax TreesControl-flow AnalysisData-flow AnalysisFunctional ProgrammingType CheckingType SystemsCompiler DesignConstant PropagationFormal ReasoningLambda CalculusLambda Calculus SemanticsProgram OptimizationStatic Single Assignment FormTyped Lambda Calculus
The static single assignment (SSA) form is central to a range of optimisation algorithms relying on data flow information, and hence, to the correctness of compilers employing those algorithms. It is well known that the SSA form is closely related to lambda terms (i.e., functional programs), and, considering the large amount of energy expended on theories and frameworks for formal reasoning in the lambda calculus, it seems only natural to leverage this connection to improve our capabilities to reason about compiler optimisations. In this paper, we discuss a new formalisation of the mapping from SSA programs to a restricted form of lambda terms, called administrative normal form (ANF). We conjecture that this connection improves our ability to reason about SSA-based optimisation algorithms and provide a first data point by presenting an ANF variant of a well known SSA-based conditional constant propagation algorithm.
21
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Imperative functional programming
Simon Jones, Philip Wadler · 1993 · 1.2K citations · Full text
From system F to typed assembly language
Greg Morrisett, David Walker, Karl Crary et al. · ACM Transactions on Programming Languages and Systems · 1999 · 587 citations · Full text