Abstract
DATALOG can be used to specify a variety of class analyses for object-oriented programs as variations of a common framework. In this framework, the result of analysing a class is a set of DATALOG clauses whose least fixpoint is the information analysed for. Modular class analysis of program fragments is then expressed as the resolution of openDATALOG programs. We provide a theory for the partial resolution of sets of open clauses and define a number of operators for reducing such open clauses.
This work was partially funded by the IST FET/Open project “Secsafe”.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
O. Agesen. Constraint-Based Type Inference and Parametric Polymorphism. In B. Le Charlier, editor, Proc. of the 1st International Static Analysis Symposium, volume 864 of LNCS, pages 78–100. Springer-Verlag, 1994.
K. R. Apt. Introduction to logic programming. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science: Volume B: Formal Models and Semantics, pages 493–574. Elsevier, Amsterdam, 1990.
D. F. Bacon and P. F. Sweeney. Fast Static Analysis of C++ Virtual Function Calls. In Proc. of OOPSLA’96, volume 31(10) of ACM SIGPLAN Notices, pages 324–341, New York, 1996. ACM Press.
A. Bossi, M. Gabbrielli, G. Levi, and M. C. Meo. A Compositional Semantics for Logic Programs. Theoretical Computer Science, 122(1–2):3–47, 1994.
M. G. Burke and B. G. Ryder. A critical analysis of incremental iterative data flow analysis algorithms. IEEE Transactions on Software Engineering, 16(7):723–728, 1990.
A. K. Chandra and P. M. Merlin. Optimal implementation of conjunctive queries in relational data bases. In Proc. of the 9th ACM symposium on Theory of computing, pages 77–90, 1977.
M. Codish, S. K. Debray, and R. Giacobazzi. Compositional analysis of modular logic programs. In Proc. of the 20th ACM symposium on Principles of programming languages, pages 451–464. ACM Press, 1993.
M. Codish, M. Falaschi, and K. Marriott. Suspension analysis for concurrent logic programs. ACM Transactions on Programming Languages and Systems, 16(3):649–686, 1994.
P. Cousot and R. Cousot. Comparing the Galois connection and widening/narrowing approaches to abstract interpretation, invited paper. In M. Bruynooghe and M. Wirsing, editors, Proc. of the International Workshop Programming Language Implementation and Logic Programming, volume 631 of LNCS, pages 269–295. Springer, 1992.
P. Cousot and R. Cousot. Modular static program analysis, invited paper. In R.N. Horspool, editor, Proc. of the 11th International Conference on Compiler Construction, volume 2304 of LNCS, pages 159–178, Grenoble, France, April 2002. Springer.
F. Denis and J-P Delahaye. Unfolding, procedural and fixpoint semantics of logic programs. In Proc. of the 8th Annual Symposium on Theoretical Aspects of Computer Science, volume 480 of LNCS, pages 511–522, Hamburg, Germany, February 1991. Springer.
A. Diwan, J. E. B. Moss, and K. S. McKinley. Simple and Effective Analysis of Statically Typed Object-Oriented Programs. In Proc. of OOPSLA’96, volume 31(10) of ACM SIGPLAN Notices, pages 292–305, New York, 1996. ACM Press.
C. Flanagan and M. Felleisen. Componential set-based analysis. ACM Transactions on Programming Languages and Systems, 21(2):370–416, 1999.
H. Gaifman, H. Mairson, Y. Sagiv, and M. Y. Vardi. Undecidable optimization problems for database logic programs. In Proc. Symposium on Logic in Computer Science, pages 106–115, Ithaca, New York, jun 1987. IEEE Computer Society.
D. Grove and C. Chambers. A framework for call graph construction algorithms. ACM Transactions on Programming Languages and Systems, 23(6):685–746, 2001.
R. R. Hansen. Flow logic for carmel. Technical Report Secsafe-IMM-001, IMM, Technical U. of Denamrk, 2002.
P. M. Hill and F. Spoto. Logic Programs as Compact Denotations. Proc. of the Fifth International Symposium on Practical Aspects of Declarative Languages, PADL’ 03, 2003.
L. Hornof and J. Noyé. Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity. Theoretical Computer Science, 248(1–2):3–27, 2000.
T. Jensen and F. Spoto. Class analysis of object-oriented programs through abstract interpretation. In F. Honsell and M. Miculan, editors, Proc. of Foundations of Software Science and Computation Structures (FoSSaCS’01), pages 261–275. Springer LNCS vol. 2030, 2001.
G. Levi. Models, unfolding rules and fixpoint semantics. In Robert A. Kowalski and Kenneth A. Bowen, editors, Proc. of the 5th International Conference and Symposium on Logic Programming, pages 1649–1665, Seatle, 1988. ALP, IEEE, The MIT Press.
J. F. Naughton. Data independent recursion in deductive databases. Journal of Computer and System Sciences, 38(2):259–289, April 1989.
F. Nielson and H. Seidl. Control-flow analysis in cubic time. In Proc. of European Symp. on Programming (ESOP’01), pages 252–268. Springer LNCS vol. 2028, 2001.
J. Palsberg and M. I. Schwartzbach. Object-Oriented Type-Systems. John Wiley & Sons, 1994.
J. Plevyak and A. Chien. Precise Concrete Type Inference for Object-Oriented Languages. In Proc. of OOPSLA’94, volume 29(10) of ACM SIGPLAN Notices, pages 324–340. ACM Press, October 1994.
T. Reps. Demand interprocedural program analysis using logic databases. In Applications of Logic Databases, pages 163–196, Boston, MA, 1994. Kluwer.
A. Rountev, B. G. Ryder, and W. Landi. Data-flow analysis of program fragments. In Proc. of the 7th international symposium on Foundations of software engineering, pages 235–252. Springer-Verlag, 1999.
Y. Sagiv and M. Yannakakis. Equivalences among relational expressions with the union and difference operators. Journal of the ACM, 27(4):633–655, 1980.
O. Shmueli. Decidability and expressiveness aspects of logic queries. In Proc. of the 6th ACM symposium on Principles of database systems, pages 237–249. ACM Press, 1987.
J. D. Ullman. Principles of database and knowledge-base systems, volume 2, volume 14 of Principles of Computer Science. Computer Science Press, 1988.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Besson, F., Jensen, T. (2003). Modular Class Analysis with DATALOG . In: Cousot, R. (eds) Static Analysis. SAS 2003. Lecture Notes in Computer Science, vol 2694. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44898-5_2
Download citation
DOI: https://doi.org/10.1007/3-540-44898-5_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40325-8
Online ISBN: 978-3-540-44898-3
eBook Packages: Springer Book Archive