Abstract
The purpose of this paper is to present four basic methods for compositional separate modular static analysis of programs by abstract interpretation: - simplification-based separate analysis; - worst-case separate analysis; - separate analysis with (user-provided) interfaces; - symbolic relational separate analysis; as well as a fifth category which is essentially obtained by composition of the above separate local analyses together with global analysis methods.
This work was supported in part by the RTD project IST-1999-20527 daedalus of the european IST FP5 programme.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
G. Amato and F. Spoto. Abstract compilation for sharing analysis. In H. Kuchen and K. Ueda (eds), Proc. FLOPS 2001 Conf., LNCS 2024, 311–325. Springer, 2001.
B. Blanchet. Escape analysis: Correctness proof, implementation and experimental results. In 25 th POPL, 25–37, San Diego, 1998. ACM Press.
B. Blanchet. Escape analysis for object-oriented languages: Application to Java. In Proc. ACM SIGPLAN Conf. OOPSLA’ 99. ACM SIGPLAN Not. 34(10), 1999.
D. Boucher and M. Feeley. Abstract compilation: A new implementation paradigm for static analysis. In T. Gyimothy (ed), Proc. 6 th Int. Conf. CC’96, LNCS 1060, 192–207. Springer, 1996.
F. Bourdoncle. Efficient chaotic iteration strategies with widenings. In D. Bjørner, M. Broy, and I.V. Pottosin (eds), Proc. FMPA, LNCS 735, 128–141. Springer, 1993.
R. Chatterjee, B.G. Ryder, and W. Landi. Relevant context inference. In 26 th POPL, 133–146, San Antonio, 1999. ACM Press. 170
R. Chatterjee, B.G. Ryder, and W. Landi. Relevant context inference. Tech. rep. DCS-TR-360, Rutgers University, 1999. ftp://athos.rutgers.edu/pub/technical-reports/dcs-tr-360.ps.Z.
M. Codish, S. Debray, and R. Giacobazzi. Compositional analysis of modular logic programs. In 20th POPL, 451–464, Charleston, 1993. ACM Press.
M. Codish and B. Demoen. Deriving polymorphic type dependencies for logic programs using multiple incarnations of Prop. In B. Le Charlier (ed), Proc. 1 st Int. Symp. SAS’ 94, LNCS 864, 281–296. Springer, 1994.
P. Colette and C.B. Jones. Enhancing the tractability of rely/guarantee specifications in the development of interfering operations. In G. Plotkin, C. Stirling, and M. Tofte (eds), Proof, Language and Interaction, ch. 10, 277–307. MIT Press, 2000.
P. Cousot. Méthodes itératives de construction et d’approximation de points fixes d’opérateurs monotones sur un treillis, analyse sémantique de programmes. Thèse d’État ès sciences mathématiques, Université scientifique et médicale de Grenoble, 21 Mar. 1978.
P. Cousot. Semantic foundations of program analysis. In S.S. Muchnick and N.D. Jones (eds), Program Flow Analysis: Theory and Applications, ch. 10, 303–342. Prentice-Hall, 1981.
P. Cousot. Methods and logics for proving programs. In J. van Leeuwen (ed), Formal Models and Semantics, vol. B of Handbook of Theoretical Computer Science, ch. 15, 843–993. Elsevier, 1990.
P. Cousot. Types as abstract interpretations, invited paper. In 24 th POPL, 316–331, Paris, 1997. ACM Press.
P. Cousot. The calculational design of a generic abstract interpreter. In M. Broy and R. Steinbrüggen (eds), Calculational System Design, vol. 173, 421–505. NATO Science Series, Series F: Computer and Systems Sciences. IOS Press, 1999.
P. Cousot. Abstract interpretation based formal methods and future challenges, invited paper. In R. Wilhelm (ed), “Informatics — 10 Years Back, 10 Years Ahead”, LNCS 2000, 138–156. Springer, 2000.
P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In 4 th POPL, 238–252, Los Angeles, 1977. ACM Press.
P. Cousot and R. Cousot. Automatic synthesis of optimal invariant assertions: mathematical foundations. In ACM Symposium on Artificial Intelligence & Programming Languages, ACM SIGPLAN Not. 12(8):1–12, 1977.
P. Cousot and R. Cousot. Static determination of dynamic properties of generalized type unions. In ACM Symposium on Language Design for Reliable Software, AC M SIGPLAN Not. 12(3):77–94, 1977.
P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In E.J. Neuhold (ed), IFIP Conf. on Formal Description of Programming Concepts, St-Andrews, CA, 237–277. North-Holland, 1977.
P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In 6 th POPL, 269–282, San Antonio, 1979. ACM Press.
P. Cousot and R. Cousot. Relational abstract interpretation of higher-order functional programs. Actes JTASPEFL’ 91, Bordeaux, FR. BIGRE, 74:33–36, 1991.
P. Cousot and R. Cousot. Abstract interpretation and application to logic programs. J. Logic Programming, 13(2–3):103–179, 1992. (The editor of J. Logic Programming has mistakenly published the unreadable galley proof. For a correct version of this paper, see http://www.di.ens.fr/~cousot.).
P. Cousot and R. Cousot. Abstract interpretation frameworks. J. Logic and Comp., 2(4):511–547, Aug. 1992.
P. Cousot and R. Cousot. Galois connection based abstract interpretations for strictness analysis, invited paper. In D. Bjørner, M. Broy, and I.V. Pottosin (eds), Proc. FMPA, LNCS 735, 98–127. Springer, 1993.
P. Cousot and R. Cousot. Compositional and inductive semantic definitions in fixpoint, equational, constraint, closure-condition, rule-based and game-theoretic form, invited paper. In P. Wolper (ed), Proc. 7 th Int. Conf. CAV’95, LNCS 939, 93–308. Springer, 1995.
P. Cousot and R. Cousot. Formal language, grammar and set-constraint-based program analysis by abstract interpretation. In Proc. 7 th FPCA, 170–181, La Jolla, 1995. ACM Press.
P. Cousot and R. Cousot. Introduction to abstract interpretation. Course notes for the “NATO Int. Summer School 1998 on Calculational System Design”, Marktoberdorff, 1998.
P. Cousot and R. Cousot. Abstract interpretation based program testing, invited paper. In Proc. SSGRR 2000 Computer & eBusiness International Conference, Compact disk paper 248 and electronic proceedings http://www.ssgrr.it/en/ssgrr2000/proceedings.htm, 2000. Scuola Superiore G. Reiss Romoli.
P. Cousot and R. Cousot. Systematic Design of Program Transformation Frameworks by Abstract Interpretation. In 29 th POPL, 178–190, Portland, 2002. ACM Press.
P. Cousot and N. Halbwachs. Automatic discovery of linear restraints among variables of a program. In 5 th POPL, 84–97, Tucson, 1978. ACM Press.
M. Das, B. Liblit, M. Fähndrich, and J. Rehof. Estimating the impact of scalable pointer analysis on optimization. In P. Cousot (ed), Proc. 8> th Int. Symp. SAS’ 01, LNCS 2126, 259–277. Springer, 2001.
J. Dean, Grove D., and G. Chambers. Optimization of object-oriented programs using static class hierarchy analysis. In W.G. Olthoff (ed), Proc. 9 th Euro. Conf. ECOOP’95, LNCS 952, 77–101. Springer, 1995.
S.K. Debray and D.S. Warren. Automatic mode inference for logic programs. J. Logic Programming, 5(3):207–229, 1988.
M. Emami, R. Ghiya, and L. J. Hendren. Context-sensitive interprocedural pointsto analysis in the presence of function pointers. In Proc. ACM SIGPLAN’93 Conf. PLDI. ACM SIGPLAN Not. 28(6), 242–256, 1994. ACM Press.
M. Felleisen. Program analyses: A consumer’s perspective and experiences, invited talk. In J. Palsberg (ed), Proc. 7 th Int. Symp. SAS’ 2000, LNCS 1824. Springer, 2000. Presentation available at URL http://www.cs.rice.edu:80/~matthias/Presentations/SAS.ppt.
J. Feret. Confidentiality analysis of mobile systems. In J. Palsberg (ed), Proc. 7 th Int. Symp. SAS’ 2000, LNCS 1824, 135–154. Springer, 2000.
C. Flanagan and M. Felleisen. Componential set-based analysis. TOPLAS, 21(2):370–416, Feb. 1999.
C. Flanagan and J.B. Saxe. Avoiding exponential explosion: generating compact verification conditions. In 28 th POPL, 193–205, London, Jan. 2001. ACM Press.
R.W. Floyd. Assigning meaning to programs. In J.T. Schwartz (ed), Proc. Symposium in Applied Mathematics, vol. 19, 19–32. AMS, 1967.
R. Ghiya and L.J. Hendren. Putting pointer analysis to work. In 25 th POPL, 121–133, San Diego, Jan. 1998. ACM Press.
R. Giacobazzi. Abductive analysis of modular logic programs. In M. Bruynooghe (ed), Proc. Int. Symp. ILPS’ 1994, Ithaca, 377–391. MIT Press, 1994.
R. Giacobazzi and E. Quintarelli. Incompleteness, counterexamples and refinements in abstract model-checking. In P. Cousot (ed), Proc. 8 th Int. Symp. SAS’ 01, LNCS 2126, 356–373. Springer, 2001.
R. Giacobazzi and F. Ranzato. Refining and compressing abstract domains. In P. Degano, R. Gorrieri, and A. Marchetti-Spaccamela, editors, Proc. 24 th Int. Coll. ICALP’97, LNCS 1256, 771–781. Springer, 1997.
R. Giacobazzi, F. Ranzato, and F. Scozzari. Making abstract interpretations complete. J. ACM, 47(2):361–416, 2000.
N. Halbwachs. Détermination automatique de relations linéaires vérifiées par les variables d’un programme. Thèse de 3ème cycle d’informatique, Université scientifique et médicale de Grenoble, Grenoble, 12 Mar. 1979.
C. Hankin and D. Le Métayer. Lazy type inference and program analysis. Sci. Comput. Programming, 25(2–3):219–249, 1995.
M.J. Harrold, D. Liang, and S. Sinha. An approach to analyzing and testing component-based systems. In Proc. 1 st Int. ICSE Workshop on Testing Distributed Component-Based Systems. Los Angeles, 1999.
M.J. Harrold and M.L. Soffa. Efficient computation of interprocedural definitionuse chains. TOPLAS, 16(2):175–204, Mar. 1994.
M. Hind, M. Burke, P. Carini, and J.-D. Choi. Interprocedural pointer alias analysis. TOPLAS, 21(4):848–894, Jul. 1999.
M. Hind and A. Pioli. Assessing the effects of flow-sensitivity on pointer alias analyses. In G. Levi (ed), Proc. 5 th Int. Symp. SAS’ 98, LNCS 1503, 57–81. Springer, 1998.
S. Horwitz. Precise flow-insensitive may-alias analysis is NP-hard. TOPLAS, 19(1):1–6, Jan. 1997.
S. Jagannathan, P. Thiemann, S. Weeks, and A.K. Wright. Single and loving it: Must-alias analysis for higher-order languages. In 25 th POPL, 329–341, San Diego, Jan. 1998. ACM Press.
N. Jones, C.K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Int. Series in Computer Science. Prentice-Hall, June 1993.
V. Kuncak, P. Lam, and M. Rinard. Role analysis. In 29 th POPL, 17–32, Portland, Jan. 2002. ACM Press.
W.A. Landi. Undecidability of static analysis. ACM Lett. Prog. Lang. Syst., 1(4):323–337, Dec. 1992.
O. Lee and K. Yi. A proof method for the correctness of modularized kCFAs. Technical Memorandum ROPAS-2000-9, Research On Program Analysis System, Korea Advanced Institute of Science and Technology, Nov. 2000. http://ropas.kaist.ac.kr/~cookcu/paper/tr2000b.ps.gz.
D. Liang and M.J. Harrold. Efficient points-to analysis for whole-program analysis. In O. Nierstrasz and M. Lemoine (eds), Software Engineering-ESEC/FSE’99, 7 th European Software Engineering Conference, LNCS 1687, 199–215, 1999.
D. Liang and M.J. Harrold. Efficient computation of parameterized pointer information for interprocedural analyses. In P. Cousot (ed), Proc. 8th Int. Symp. SAS’ 01, LNCS 2126, 279–298. Springer, 2001.
F. Malésieux, O. Ridoux, and P. Boizumault. Abstract compilation of Lambda-Prolog. In J. Jaffar (ed), JICSLP’ 98, Manchester, 130–144. MIT Press, 1992.
D. Massé. Combining forward and backward analyzes of temporal properties. In O. Danvy and A. Filinski (eds), Proc. 2 nd Symp. PADO’2001, LNCS 2053, 155–172. Springer, 2001.
L. Mauborgne. Abstract interpretation using typed decision graphs. Sci. Comput. Programming, 31(1):91–112, May 1998.
A. Miné. A new numerical abstract domain based on difference-bound matrices. In O. Danvy and A. Filinski (eds), Proc. 2 nd Symp. PADO’2001, LNCS 2053, 155–172. Springer, 2001.
G. Ramalingam. The undecidability of aliasing. TOPLAS, 16(5):1467–1471, Sep. 1994.
F. Randimbivololona, J. Souyris, and A. Deutsch. Improving avionics software verification cost-effectiveness: Abstract interpretation based technology contribution. In Proceedings DASIA 2000-DAta Systems In Aerospace, Montreal. ESA Publications, May 2000.
A. Rountev and S. Chandra. Off-line variable substitution for scaling points-to analysis. In Proc. ACM SIGPLAN’00 Conf. PLDI. ACM SIGPLAN Not. 35(5), 47–56, Vancouver, June 2000.
A. Rountev and B. Ryder. Points-to and side-effect analyses for programs built with precompiled libraries. In R. Wilhelm (ed), Proc. 10 th Int. Conf. CC’2001, LNCS 2027, 20–36. Springer, 2001.
A. Rountev, B.G. Ryder, and W. Landi. Data-flow analysis of program fragments. In O. Nierstrasz and M. Lemoine (eds), Software Engineering-ESEC/FSE’99, 7th European Software Engineering Conference, LNCS 1687, 235–252. Springer, 1999.
B.G. Ryder, W. Landi, P.A. Stocks, S. Zhang, and R. Altucher. A schema for interprocedural side effect analysis with pointer aliasing. TOPLAS, 2002. To appear.
O. Shivers. The semantics of scheme control-flow analysis. In P. Hudak and N.D. Jones (eds), Proc. PEPM’91, ACM SIGPLAN Not. 26(9), 190–198. ACM Press, Sep. 1991.
Y.M. Tang and P. Jouvelot. Separate abstract interpretation for control-flow analysis. In M. Hagiya and J.C. Mitchell (eds), Proc. Int. Conf. TACS’95, LNCS 789, 224–243. Springer, 1994.
A. Venet. Automatic analysis of pointer aliasing for untyped programs. Sci. Comput. Programming, Special Issue on SAS’96, 35(1):223–248, Sep. 1999.
Z. Xu, T. Reps, and B.P. Miller. Typestate checking of machine code. In D. Sands (ed), Proc. 10 th ESOP’ 2001, LNCS 2028, 335–351. Springer, 2001.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cousot, P., Cousot, R. (2002). Modular Static Program Analysis. In: Horspool, R.N. (eds) Compiler Construction. CC 2002. Lecture Notes in Computer Science, vol 2304. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45937-5_13
Download citation
DOI: https://doi.org/10.1007/3-540-45937-5_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43369-9
Online ISBN: 978-3-540-45937-8
eBook Packages: Springer Book Archive