Improving the Representation of Infinite Trees to Deal with Sets of Trees
In order to deal efficiently with infinite regular trees (or other pointed graph structures), we give new algorithms to store such structures. The trees are stored in such a way that their representation is unique and shares as much as possible. This maximal sharing allows substantial memory gain and speed up. For example, equality testing becomes constant time. The algorithms are incremental, and as such allow good reactive behavior. This new algorithms are then applied to the representation of sets of trees. The expressive power of this new representation is exactly what is needed by set-based analysis.
KeywordsBoolean Function Unique Representation Regular Tree Binary Decision Diagram Tree Automaton
- Aho, A. V., Hopcroft, J. E., and Ullman, J. D. Data Structures and Algorithms. Addison-Wesley, 1983.Google Scholar
- Bryant, R. E. Graph based algorithms for boolean function manipulation. IEEE Transactions on Computers C-35 (August 1986), 677–691.Google Scholar
- Cai, J., and Paige, R. Using multiset discrimination to solve language processing without hashing. Theoretical Computer Science (1994). also, U. of Copenhagen Tech. Report, DIKU-TR Num. D-209, 94/16, URL ftp:ftp://ftp.diku.dk/diku/semantics/papers/D-209.ps.Z.
- Colmerauer, A. PROLOG and infinite trees. In Logic Programming (1982), K. L. Clark and S.-A. Tärnlund, Eds., vol. 16 of APIC Studies in Data Processing, Academic Press, pp. 231–251.Google Scholar
- Devienne, P., Talbot, J., and Tison, S. Solving classes of set constraints with tree automata. In 3th International Conference on Principles and Practice of Constraint Programming (October 1997), G. Smolka, Ed., vol. 1330 of Lecture Notes in Computer Science, Springer-Verlag, pp. 62–76.CrossRefGoogle Scholar
- Gécseg, F., and Steinby, M. Tree Automata. Akadémia Kiadó, 1984.Google Scholar
- Heintze, N. Set Based Program Analysis. PhD thesis, School of Computer Science, Carnegie Mellon University, October 1992.Google Scholar
- Hopcroft, J. An n log n algorithm for minimizing states in a finite automaton. In Theory of machines and computations (1971), Z. Kohavi and A. Paz, Eds., Academic Press, pp. 189–196.Google Scholar
- Jones, N. D., and Muchnick, S. S. Flow analysis and optimization of LISP-like structures. In 6th POPL (January 1979), ACM Press, pp. 244–256.Google Scholar
- Knuth, D. E. Sorting and Searching, vol. 3 of The Art of Computer Programming. Addison-Wesley, 1973.Google Scholar
- Liu, Y. A. Dependence analysis for recursive data. In IEEE International Conference on Computer Languages (May 1998), pp. 206–215.Google Scholar
- Reynolds, J. Automatic computation of data set definitions. In Information Processing’ 68 (1969), Elsevier Science Publisher, pp. 456–461.Google Scholar