Asynchronous message-passing systems are employed frequently to implement distributed mechanisms, protocols, and processes. This paper addresses the problem of precise data flow analysis for such systems. To obtain good precision, data flow analysis needs to somehow skip execution paths that read more messages than the number of messages sent so far in the path, as such paths are infeasible at run time. Existing data flow analysis techniques do elide a subset of such infeasible paths, but have the restriction that they admit only finite abstract analysis domains. In this paper we propose a generalization of these approaches to admit infinite abstract analysis domains, as such domains are commonly used in practice to obtain high precision. We have implemented our approach, and have analyzed its performance on a set of 14 benchmarks. On these benchmarks our tool obtains significantly higher precision compared to a baseline approach that does not elide any infeasible paths and to another baseline that elides infeasible paths but admits only finite abstract domains.
翻译:分散式信息传递系统经常被用来实施分布式机制、协议和进程。本文件讨论了这类系统精确数据流分析的问题。为了获得准确的准确性,数据流分析需要某种方式跳过读信息多于路径中迄今发送的信息数量的执行路径,因为这种路径在运行时是行不通的。现有的数据流分析技术可以绕过这种不可行的路径的子集,但限制它们只接受有限的抽象分析域。在本文件中,我们建议对这些方法进行概括化,以接受无限的抽象分析域,因为这类域在实践中通常用于获取高精确度。我们实施了我们的方法,并根据一套14个基准分析了其性能。在这些基准上,我们的工具比一个不爱任何不可行路径的基线法更加精确,而另一条基线则无法避免任何不可行的路径,只能接受有限的抽象域。