Abstract interpretation is a technique extensively used for global dataflow analyses of logic programs. Existing implementations of abstract interpretation are slow due to interpretive or transforming overhead and the inefficiency in manipulation of global information. Since abstract interpretation mimics standard interpretation, it is a promising alternative to compile abstract interpretation into the framework of the WAM (Warren Abstract Machine) for better performance. In this paper, we show how this approach can be effectively implemented in a low-cost manner. To evaluate the possible benefits of this approach, a prototype dataflow analyzer has been implemented for inference of mode, type and variable aliasing information of logic programs. For a subset of benchmark programs in [15], it significantly improves the performance by a factor of over 150 on the average.
抽象解释是一种广泛用于逻辑程序的全局数据流分析的技术。由于解释性或转换性开销以及对全局信息的操作效率低下,抽象解释的现有实现速度很慢。由于抽象解释模仿了标准解释,因此它是将抽象解释编译到WAM(沃伦抽象机)的框架中以提高性能的一种有前途的选择。在本文中,我们展示了如何以低成本方式有效实施此方法。为了评估这种方法可能带来的好处,已实现了原型数据流分析器,用于推断逻辑程序的模式,类型和变量别名信息。对于[15]中的部分基准测试程序,它的性能平均提高了150倍以上。 P>
机译:平铺程序的动态数据流并行化的编译器/运行时框架
机译:流系统的数据流编程语言及其编译器
机译:YAP编译器的设计:用于逻辑编程语言的优化编译器
机译:逻辑程序的高效数据流分析
机译:静态分析,用于从具有所有权域批注的面向对象的程序中提取数据流边缘。
机译:DataFlow编程用于分析AVIS分析和可视化软件应用程序
机译:普通逻辑程序的自下而上的数据流分析
机译:分析逻辑程序中编译时垃圾收集的共享数据结构。