Typed closure conversion preserves observational equivalence

Language-based security relies on the assumption that all potential attacks are bound by the rules of the language in question. When programs are compiled into a different language, this is true only if the translation process preserves observational equivalence. We investigate the problem of fully abstract compilation, i.e., compilation that both preserves and reflects observational equivalence. In particular, we prove that typed closure conversion for the polymorphic »-calculus with existential and recursive types is fully abstract. Our proof uses operational techniques in the form of a step-indexed logical relation and construction of certain wrapper terms that "back-translate" from target values to source values. Although typed closure conversion has been assumed to be fully abstract, we are not aware of any previous result that actually proves this.

[1]  William W. Tait,et al.  Intensional interpretations of functionals of finite type I , 1967, Journal of Symbolic Logic.

[2]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[3]  K. Mulmuley Full Abstraction and Semantic Equivalence , 1987 .

[4]  Albert R. Meyer,et al.  Towards fully abstract semantics for local variables , 1988, POPL '88.

[5]  Carolyn L. Talcott,et al.  1 Equivalence in Functional Languages with E ectsIan , 2007 .

[6]  Robert Hieb,et al.  The Revised Report on the Syntactic Theories of Sequential Control and State , 1992, Theor. Comput. Sci..

[7]  Matthias Felleisen,et al.  Observable sequentiality and full abstraction , 1992, POPL '92.

[8]  Xavier Leroy,et al.  Unboxed objects and polymorphic typing , 1992, POPL '92.

[9]  Jon G. Riecke,et al.  Fully abstract translations between functional languages , 1991, POPL '91.

[10]  Radha Jagadeesan,et al.  Full Abstraction for PCF , 1994, Inf. Comput..

[11]  Alan Jeffrey,et al.  A fully abstract semantics for a concurrent functional language with monadic types , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[12]  Robert Harper,et al.  Typed closure conversion , 1996, POPL '96.

[13]  Zhong Shao Flexible representation analysis , 1997, ICFP '97.

[14]  Martín Abadi,et al.  Protection in Programming-Language Translations , 1998, ICALP.

[15]  Andrew M. Pitts Existential Types: Logical Relations and Operational Equivalence , 1998, ICALP.

[16]  Neal Glew Object Closure Conversion , 1999, Electron. Notes Theor. Comput. Sci..

[17]  MorrisettGreg,et al.  From system F to typed assembly language , 1999 .

[18]  Matthias Felleisen,et al.  Contracts for higher-order functions , 2002, ICFP '02.

[19]  Ken Arnold,et al.  Java(TM) Programming Language, The (4th Edition) , 2005 .

[20]  Xavier Leroy,et al.  Formal certification of a compiler back-end or: programming a compiler with a proof assistant , 2006, POPL '06.

[21]  Amal Ahmed,et al.  Step-Indexed Syntactic Logical Relations for Recursive and Quantified Types , 2006, ESOP.

[22]  David A. McAllester,et al.  Sound and complete models of contracts , 2006, Journal of Functional Programming.

[23]  Andrew Kennedy Securing the .NET programming model , 2006, Theor. Comput. Sci..

[24]  Robert Bruce Findler,et al.  Operational semantics for multi-language programs , 2007, POPL '07.

[25]  Lars Birkedal,et al.  Abstract Predicates and Mutable ADTs in Hoare Type Theory , 2007, ESOP.

[26]  Matthias Blume,et al.  Typed closure conversion preserves observational equivalence , 2008, ICFP 2008.