Abstract
Many tools allow programmers to develop applications in high-level languages and deploy them in web browsers via compilation to JavaScript. 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 JavaScript contexts. This paper presents a compiler with such guarantees. We compile an ML-like language with higher-order functions and references to JavaScript, 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 JavaScript contexts. We evaluate our compiler on sample programs, including a series of secure libraries.
| Original language | English |
|---|---|
| Pages (from-to) | 371-383 |
| Number of pages | 13 |
| Journal | ACM SIGPLAN Notices |
| Volume | 48 |
| Issue number | 1 |
| DOIs | |
| Publication status | Published - 1 Jan 2013 |
| Externally published | Yes |
Keywords
- Full abstraction
- Program equivalence
- Refinement types
Fingerprint
Dive into the research topics of 'Fully abstract compilation to JavaScript'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver