Fully Abstract Compilation to JavaScript

Abstract : Many tools allow programmers to develop applications in high-level languages and deploy them in web browsers via compilation to JS. While practical and widely used, these compilers are ad hoc: no guarantee is provided on their correctness for whole programs, nor their security for programs executed within arbitrary JS contexts. This paper presents a compiler with such guarantees. We compile an ML-like language with higher-order functions and references to JS, while preserving all source program properties. Relying on type-based invariants and applicative bisimilarity, we show full abstraction: two programs are equivalent in all source contexts if and only if their wrapped translations are equivalent in all JS contexts. We evaluate our compiler on sample programs, including a series of secure libraries.
Document type :
Conference papers
40th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL'13 (2013), Jan 2013, Roma, Italy


https://hal.inria.fr/hal-00780803
Contributor : Pierre-Yves Strub <>
Submitted on : Thursday, January 24, 2013 - 6:50:09 PM
Last modification on : Thursday, February 5, 2015 - 4:26:02 PM

File

js-star-popl-2013.pdf
fileSource_public_author

Identifiers

  • HAL Id : hal-00780803, version 1

Collections

Citation

Cédric Fournet, Nikhil Swamy, Juan Chen, Pierre-Evariste Dagand, Pierre-Yves Strub, et al.. Fully Abstract Compilation to JavaScript. 40th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL'13 (2013), Jan 2013, Roma, Italy. <hal-00780803>

Export

Share

Metrics

Consultation de
la notice

245

Téléchargement du document

107