Abstract Domains for Type Juggling

Abstract Domains for Type Juggling
复制标题

类型杂耍的抽象域

DOI:
10.1016/j.entcs.2017.02.003
复制
发表时间:
2017
影响因子:
--
通讯作者:
Arceri V
Arceri V
中科院分区:
--
文献类型:
--
作者:
Arceri V

文献摘要

相似文献

Web脚本语言,如PHP和JavaScript,提供了广泛的动态特性,使它们既灵活又容易出错。为了防止Web应用程序中的错误,迫切需要强大的静态分析工具。在本文中,我们研究了如何利用抽象解释来提供精确的值分析,从而提供丰富的类型信息,这些信息可以成为此类工具的有用组件。特别地,我们定义了PHP核心的形式语义,说明了类型杂耍,PHP典型的隐式类型转换,并研究了抽象域和操作的设计,尽管仍然是可扩展的,都有足够的表现力来科普类型转换。我们相信,我们的方法也可以应用到其他语言的隐式类型转换。
Web scripting languages, such as PHP and JavaScript, provide a wide range of dynamic features that make them both flexible and error-prone. In order to prevent bugs in web applications, there is a sore need for powerful static analysis tools. In this paper, we investigate how Abstract Interpretation may be leveraged to provide a precise value analysis providing rich typing information that can be a useful component for such tools.In particular, we define the formal semantics for a core of PHP that illustratestype juggling, the implicit type conversions typical of PHP, and investigate the design of abstract domains and operations that, while still scalable, are expressive enough to cope with type juggling. We believe that our approach can also be applied to other languages with implicit type conversions.