Two classes of Boolean functions for dependency analysis

被引:47
作者
Armstrong, T
Marriott, K [1 ]
Schachte, P
Sondergaard, H
机构
[1] Monash Univ, Dept Comp Sci, Clayton, Vic 3168, Australia
[2] Univ Melbourne, Dept Comp Sci, Parkville, Vic 3052, Australia
关键词
D O I
10.1016/S0167-6423(96)00039-1
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Many static analyses for declarative programming/database languages use Boolean functions to express dependencies among variables or argument positions. Examples include groundness analysis, arguably the most important analysis for logic programs, finiteness analysis and functional dependency analysis for databases. We identify two classes of Boolean functions that have been used: positive and definite functions, and we systematically investigate these classes and their efficient implementation for dependency analyses. On the theoretical side, we provide syntactic characterizations and study the expressiveness and algebraic properties of the classes. In particular, we show that both are closed under existential quantification. On the practical side, we investigate various representations for the classes based on reduced ordered binary decision diagrams (ROBDDs), disjunctive normal form, conjunctive normal form, Blake canonical form, dual Blake canonical form, and a form specific to definite functions. We compare the resulting implementations of groundness analyzers based on the representations for precision and efficiency. (C) 1998 Elsevier Science B.V. All rights reserved.
引用
收藏
页码:3 / 45
页数:43
相关论文
共 45 条
[1]  
ARMSTRONG T, 1994, LECT NOTES COMPUTER, V864, P266
[2]  
Armstrong W. W., 1980, ACM Transactions on Database Systems, V5, P404, DOI 10.1145/320610.320620
[3]  
BAKER N, 1993, P 16 AUSTR COMP SCI, P321
[4]   A GENERAL FRAMEWORK FOR SEMANTICS-BASED BOTTOM-UP ABSTRACT INTERPRETATION OF LOGIC PROGRAMS [J].
BARBUTI, R ;
GIACOBAZZI, R ;
LEVI, G .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1993, 15 (01) :133-181
[5]  
BIGOT P, 1992, LOGIC PROGRAMM, P735
[6]  
BLONIARZ PA, 1984, J ACM, V31, P879, DOI 10.1145/1634.1639
[7]  
BOSSI A, 1991, LECT NOTES COMPUT SC, V494, P153
[8]  
BRACE KS, 1990, P 27 ACM IEEE DES AU, P40
[9]  
Brown F.M., 1990, Boolean Reasoning: The Logic of Boolean Equations
[10]  
BRYANT RE, 1992, COMPUT SURV, V24, P293, DOI 10.1145/136035.136043