Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1411204.1411227acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Typed closure conversion preserves observational equivalence

Published: 20 September 2008 Publication History

Abstract

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.

Supplementary Material

JPG File (1411227.jpg)
index.html (index.html)
Slides from the presentation
ZIP File (p157-slides.zip)
Supplemental material for: Typed closure conversion preserves observational equivalence
Audio only (1411227.mp3)
Video (1411227.mp4)

References

[1]
M. Abadi. Protection in programming-language translations. In ICALP '98, pages 868--883, London, UK, 1998.
[2]
S. Abramsky, R. Jagadeesan, and P. Malacaria. Full abstraction for PCF. Inf. Comput., 163(2):409--470, 2000.
[3]
A. Ahmed. Step-indexed syntactic logical relations for recursive and quantified types. Technical Report TR-01-06, Harvard University, Mar. 2006. ttic.uchicago.edu/~amal.
[4]
A. Ahmed. Step-indexed syntactic logical relations for recursive and quantified types. In ESOP '06, Mar. 2006.
[5]
A. Ahmed and M. Blume. Typed closure conversion preserves observational equivalence. Technical Report TR-2008-07, Department of Computer Science, University of Chicago, July 2008.
[6]
K. Arnold, J. Gosling, and D. Holmes. Java(TM) Programming Language, The (4th Edition). Addison-Wesley, 2005.
[7]
M. Blume and D. McAllester. Sound and complete models of contracts. J. Funct. Prog., 16(4-5):375--414, 2006.
[8]
R. Cartwright and M. Felleisen. Observable sequentiality and full abstraction. In POPL '92, pages 328--342, 1992.
[9]
ECMA. ECMA-335: Common Language Infrastructure (CLI). ECMA (European Association for Standardizing Information and Communication Systems), Geneva, Switzerland, third edition, June 2005.
[10]
M. Felleisen and R. Hieb. A revised report on the syntactic theories of sequential control and state. Theor. Comput. Sci., 103(2):235--271, 1992.
[11]
R. B. Findler and M. Felleisen. Contracts for higher-order functions. In ICFP '02, pages 48--59. ACM Press, 2002.
[12]
N. Glew. Object closure conversion. In Higher-Order Operational Techniques in Semantics (HOOTS '99), Sept. 1999.
[13]
A. Jeffrey. A fully abstract semantics for a concurrent functional language with monadic types. In LICS '95, 1995.
[14]
A. Kennedy. Securing the .NET programming model. Theor. Comput. Sci., 364(3):311--317, 2006.
[15]
X. Leroy. Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In POPL'06, Jan. 2006.
[16]
X. Leroy. Unboxed objects and polymorphic typing. In POPL '92, pages 177--188. ACM Press, Jan. 1992.
[17]
I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. J. Funct. Prog., 1(3):287--327, 1991.
[18]
J. Matthews and R. B. Findler. Operational semantics for multi-language programs. In POPL '07, Jan. 2007.
[19]
A. R. Meyer and K. Sieber. Towards fully abstract semantics for local variables. In POPL '88, pages 191--203, 1988.
[20]
Y. Minamide, G. Morrisett, and R. Harper. Typed closure conversion. In POPL '96, pages 271--283, Jan. 1996.
[21]
G. Morrisett, D.Walker, K. Crary, and N. Glew. From System F to Typed Assembly Language. In POPL '98, pages 85--97, Jan. 1998.
[22]
K. Mulmuley. Full abstraction and semantic equivalence. MIT Press, 1987.
[23]
A. Nanevski, A. Ahmed, G. Morrisett, and L. Birkedal. Abstract predicates and mutable ADTs in Hoare Type Theory. In ESOP '07, pages 189--204, 2007.
[24]
A. M. Pitts. Existential types: Logical relations and operational equivalence. In ICALP '98, pages 309--326, 1998.
[25]
G. D. Plotkin. Lambda-definability and logical relations. Memorandum SAI-RM-4, Univ. of Edinburgh, Oct. 1973.
[26]
J. C. Reynolds. Types, abstraction, and parametric polymorphism. Information Processing, pages 513--523, 1983.
[27]
J. G. Riecke. Fully abstract translations between functional languages. In POPL '91, pages 245--254, 1991.
[28]
Z. Shao. Flexible representation analysis. In ICFP '97, pages 85--98. ACM Press, 1997.
[29]
W. W. Tait. Intensional interpretations of functionals of finite type I. J. of Symbolic Logic, 32(2):198--212, June 1967.

Cited By

View all
  • (2024)Call-by-Unboxed-ValueProceedings of the ACM on Programming Languages10.1145/36746548:ICFP(845-879)Online publication date: 15-Aug-2024
  • (2023)Closure Conversion in Little PiecesProceedings of the 25th International Symposium on Principles and Practice of Declarative Programming10.1145/3610612.3610622(1-13)Online publication date: 22-Oct-2023
  • (2022)Two Parametricities Versus Three Universal TypesACM Transactions on Programming Languages and Systems10.1145/353965744:4(1-43)Online publication date: 21-Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP '08: Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
September 2008
422 pages
ISBN:9781595939197
DOI:10.1145/1411204
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 43, Issue 9
    ICFP '08
    September 2008
    399 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1411203
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 September 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. equivalence-preserving compilation
  2. full abstraction
  3. step-indexed logical relations
  4. typed closure conversion

Qualifiers

  • Research-article

Conference

ICFP08
Sponsor:

Acceptance Rates

Overall Acceptance Rate 333 of 1,064 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Call-by-Unboxed-ValueProceedings of the ACM on Programming Languages10.1145/36746548:ICFP(845-879)Online publication date: 15-Aug-2024
  • (2023)Closure Conversion in Little PiecesProceedings of the 25th International Symposium on Principles and Practice of Declarative Programming10.1145/3610612.3610622(1-13)Online publication date: 22-Oct-2023
  • (2022)Two Parametricities Versus Three Universal TypesACM Transactions on Programming Languages and Systems10.1145/353965744:4(1-43)Online publication date: 21-Sep-2022
  • (2022)SecurePtrs: Proving Secure Compilation with Data-Flow Back-Translation and Turn-Taking Simulation2022 IEEE 35th Computer Security Foundations Symposium (CSF)10.1109/CSF54842.2022.9919680(64-79)Online publication date: Aug-2022
  • (2021)Securing Interruptible Enclaved Execution on Small MicroprocessorsACM Transactions on Programming Languages and Systems10.1145/347053443:3(1-77)Online publication date: 3-Sep-2021
  • (2021)Strictly capturing non-strict closuresProceedings of the 2021 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation10.1145/3441296.3441398(74-89)Online publication date: 18-Jan-2021
  • (2021)Robustly Safe Compilation, an Efficient Form of Secure CompilationACM Transactions on Programming Languages and Systems10.1145/343680943:1(1-41)Online publication date: 9-Feb-2021
  • (2021)CapablePtrs: Securely Compiling Partial Programs Using the Pointers-as-Capabilities Principle2021 IEEE 34th Computer Security Foundations Symposium (CSF)10.1109/CSF51468.2021.00036(1-16)Online publication date: Jun-2021
  • (2020)Coinductive Natural Semantics for Compiler Verification in CoqMathematics10.3390/math80915738:9(1573)Online publication date: 12-Sep-2020
  • (2020)A Reliability-Aware Vehicular Crowdsensing System for Pothole ProfilingProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/33698153:4(1-26)Online publication date: 14-Sep-2020
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media