Skip to main content

Modular Class Analysis with DATALOG

  • Conference paper
  • First Online:
Static Analysis (SAS 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2694))

Included in the following conference series:

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”.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Article  MATH  MathSciNet  Google Scholar 

  5. 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.

    Article  Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Article  Google Scholar 

  9. 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.

    Chapter  Google Scholar 

  10. 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.

    Chapter  Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. C. Flanagan and M. Felleisen. Componential set-based analysis. ACM Transactions on Programming Languages and Systems, 21(2):370–416, 1999.

    Article  Google Scholar 

  14. 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.

    Google Scholar 

  15. D. Grove and C. Chambers. A framework for call graph construction algorithms. ACM Transactions on Programming Languages and Systems, 23(6):685–746, 2001.

    Article  Google Scholar 

  16. R. R. Hansen. Flow logic for carmel. Technical Report Secsafe-IMM-001, IMM, Technical U. of Denamrk, 2002.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Article  MATH  Google Scholar 

  19. 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.

    Chapter  Google Scholar 

  20. 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.

    Google Scholar 

  21. J. F. Naughton. Data independent recursion in deductive databases. Journal of Computer and System Sciences, 38(2):259–289, April 1989.

    Article  MATH  MathSciNet  Google Scholar 

  22. 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.

    Google Scholar 

  23. J. Palsberg and M. I. Schwartzbach. Object-Oriented Type-Systems. John Wiley & Sons, 1994.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. T. Reps. Demand interprocedural program analysis using logic databases. In Applications of Logic Databases, pages 163–196, Boston, MA, 1994. Kluwer.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. Y. Sagiv and M. Yannakakis. Equivalences among relational expressions with the union and difference operators. Journal of the ACM, 27(4):633–655, 1980.

    Article  MATH  MathSciNet  Google Scholar 

  28. 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.

    Google Scholar 

  29. J. D. Ullman. Principles of database and knowledge-base systems, volume 2, volume 14 of Principles of Computer Science. Computer Science Press, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics