【24h】

Fully Abstract Compilation to JavaScript

机译:完全抽象到JavaScript的编译

获取原文

摘要

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.
机译:许多工具允许程序员使用高级语言开发应用程序,并通过编译为JavaScript将其部署在Web浏览器中。这些实用程序虽然实用且广泛使用,但它们是临时的:不能保证它们对整个程序的正确性,也不保证在任意JavaScript上下文中执行的程序的安全性。本文提出了具有这种保证的编译器。我们在保留所有源程序属性的同时,编译了具有更高阶函数和对JavaScript的引用的类ML语言。依靠基于类型的不变量和应用双相似性,我们展示了完整的抽象:当且仅当它们的包装翻译在所有JavaScript上下文中等效时,两个程序在所有源上下文中才等效。我们在示例程序(包括一系列安全库)上评估编译器。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号