Publication | Closed Access
Fully abstract compilation to JavaScript
85
Citations
17
References
2013
Year
Unknown Venue
EngineeringCompiler TechnologyVerificationSoftware EngineeringInterpreter (Computing)Software AnalysisFormal VerificationJavascript ContextsAbstract CompilationHardware SecurityArbitrary Javascript ContextsCompilersDynamic CompilationComputer EngineeringComputer ScienceSecure LibrariesStatic Program AnalysisLanguage-based SecurityData SecuritySoftware SecurityProgram AnalysisFormal MethodsProgram Synthesis
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1