|
ABSTRACT
In this article we present Jedd, a language extension to Java that supports a convenient way of programming with Binary Decision Diagrams (BDDs). The Jedd language abstracts BDDs as database-style relations and operations on relations, and provides static type rules to ensure that relational operations are used correctly. The article provides a description of the Jedd language and reports on the design and implementation of the Jedd translator and associated runtime system. Of particular interest is the approach to assigning attributes from the high-level relations to physical domains in the underlying BDDs, which is done by expressing the constraints as a SAT problem and using a modern SAT solver to compute the solution. Further, a runtime system is defined that handles memory management issues and supports a browsable profiling tool for tuning the key BDD operations. The motivation for designing Jedd was to support the development of interrelated whole program analyses based on BDDs. We have successfully used Jedd to build Paddle, a framework of context-sensitive program analyses, including points-to analysis and call graph construction, as well as several client analyses.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Behrmann, G. 2006. The interactive BDD environment. http://iben.sourceforge.net/.
|
| |
3
|
|
 |
4
|
Marc Berndl , Ondrej Lhoták , Feng Qian , Laurie Hendren , Navindra Umanee, Points-to analysis using BDDs, Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, June 09-11, 2003, San Diego, California, USA
|
| |
5
|
|
| |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
|
| |
10
|
|
 |
11
|
|
 |
12
|
|
| |
13
|
|
 |
14
|
Manuel Fähndrich , Jeffrey S. Foster , Zhendong Su , Alexander Aiken, Partial online cycle elimination in inclusion constraint graphs, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.85-96, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
15
|
|
| |
16
|
|
 |
17
|
|
| |
18
|
Hipp, D. R. 2006. SQLite: an embeddable database engine. http://www.sqlite.org/.
|
| |
19
|
Lhoták, O. 2002. Spark: A flexible points-to analysis framework for Java. M.S. thesis, McGill University.
|
| |
20
|
Lhoták, O. 2006. Program analysis using binary decision diagrams. Ph.D. thesis, McGill University.
|
| |
21
|
Lhoták, O. and Hendren, L. 2003. Scaling Java points-to analysis using Spark. In Proceedings of the 12th International Conference on Compiler Construction. G. Hedin, Ed. Lecture Notes in Computer Science, vol. 2622. Springer, 153--169.
|
 |
22
|
|
 |
23
|
|
| |
24
|
Lind-Nielsen, J. 2006. BuDDy, A Binary Decision Diagram Package. http://buddy.sourceforge.net/.
|
| |
25
|
Meijer, E. and Schulte, W. 2003. Unifying tables, objects, and documents. In Workshop on Declarative Programming in the Context of Object-Oriented Languages. 145--166.
|
| |
26
|
|
 |
27
|
Matthew W. Moskewicz , Conor F. Madigan , Ying Zhao , Lintao Zhang , Sharad Malik, Chaff: engineering an efficient SAT solver, Proceedings of the 38th conference on Design automation, p.530-535, June 2001, Las Vegas, Nevada, United States
[doi> 10.1145/378239.379017]
|
| |
28
|
Nilsson, M. 2006. GBDD -- A package for representing relations with BDDs. http://www.regularmodelchecking.com/software/docs/stable/gbdd/index.html.
|
| |
29
|
Nystrom, N., Clarkson, M. R., and Myers, A. C. 2003. Polyglot: An extensible compiler framework for Java. In Proceedings of the 12th International Conference on Compiler Construction. Lecture Notes in Computer Science, vol. 2622. 138--152.
|
| |
30
|
Poskanzer, J. 2006. thttpd: tiny/turbo/throttling HTTP server. http://www.acme.com/software/thttpd/.
|
| |
31
|
Qian, F. 2006. SableJBDD, A Java binary decision diagram package. http://www.sable.mcgill.ca/~fqian/SableJBDD/.
|
 |
32
|
Atanas Rountev , Ana Milanova , Barbara G. Ryder, Points-to analysis for Java using annotated constraints, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.43-55, October 14-18, 2001, Tampa Bay, FL, USA
|
 |
33
|
|
| |
34
|
|
 |
35
|
|
| |
36
|
Somenzi, F. 2006. CUDD: CU Decision Diagram Package. http://vlsi.colorado.edu/~fabio/CUDD/.
|
| |
37
|
|
| |
38
|
Tarjan, R. E. 1972. Depth first search and linear graph algorithms. J. Comput. 1, 2, 146--160.
|
| |
39
|
|
| |
40
|
|
| |
41
|
Vahidi, A. 2006. JBDD, a Java interface to CUDD and BuDDY. http://javaddlib.sourceforge.net/jbdd/index.html.
|
| |
42
|
Whaley, J. 2006a. bddbddb. http://bddbddb.sourceforge.net.
|
| |
43
|
Whaley, J. 2006b. JavaBDD. http://javabdd.sourceforge.net.
|
| |
44
|
|
 |
45
|
|
| |
46
|
|
 |
47
|
|
 |
48
|
|
|