Abstract
The techniques of classical abstract interpretation are extended to the big- and small-step operational semantics of higher-order and communicative languages: Well-known techniques, such as memoization, and lesser-known ones, such as abstraction on program syntax, are employed to generate finite abstract interpretations of source programs based on their formal operational semantic definitions. The result is a clear methodology for generating semantically safe (and live) abstract, regular trees for programs that do not possess obvious, finite, state-transition diagram depictions. The primary application of the research is to the validation of program properties; in particular, the application of model checking to validate safety properties in the box-mu calculus and liveness properties in the diamond-mu calculus is discussed.
Supported by NSF CCR-9302962 and ONR N00014-94-1-0866.
Preview
Unable to display preview. Download preview PDF.
References
S. Bensalem, A. Bouajjani, C. Loiseaux, and J. Sifakis. Property preserving simulations. In G. vanBochman and D. Probst, editors, Computer Aided Verification: CAV'92, number 663 in Lecture Notes in Computer Science, pages 260–273. Springer-Verlag, 1992.
O. Burkart and B. Steffen. Model checking for context-free processes. In Proc. CONCUR92, Lecture Notes in Computer Science 630, pages 123–137. Springer, 1992.
E.M. Clarke, O. Grumberg, and D.E. Long. Model checking and abstraction. ACM Transactions on Programming Languages and Systems, 16(5):1512–1542, 1994.
R. Cleaveland, P. Iyer, and D. Yankelevich. Optimality in abstractions of model checking. In SAS'95: Proc. 2d. Static Analysis Symposium, Lecture Notes in Computer Science 983, pages 51–63. Springer, 1995.
M. Codish, S. Debray, and R. Giacobazzi. Compositional analysis of modular logic programs. In Proc. 20th ACM Symp. on Principles of Programming Languages, pages 451–464. ACM Press, 1993.
M. Codish, M. Falaschi, and K. Marriott. Suspension analysis for concurrent logic programs. In Proc. 8th Int'l. Conf. on Logic Programming, pages 331–345. MIT Press, 1991.
C. Colby. Analyzing the communication topology of concurrent programs. In ACM Symp. on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'95), pages 202–214, 1995.
P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs. In Proc. 4th ACM Symp. on Principles of Programming Languages, pages 238–252. ACM Press, 1977.
P. Cousot and R. Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511–547, 1992.
P. Cousot and R. Cousot. Inductive definitions, semantics, and abstract interpretation. In Proc. 19th ACM Symp. on Principles of Programming Languages, pages 83–94. ACM Press, 1992.
R. Cridlig. Implementing a static analyzer of concurrent programs: problems and perspectives. In M. Dam and F. Orava, editors, Proc. LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages, Lecture Notes in Computer Science. Springer, 1996.
D. Dams. Abstract interpretation and partition refinement for model checking. PhD thesis, Technische Universiteit Eindhoven, The Netherlands, 1996.
D. Dams, O. Grumberg, and R. Gerth. Abstract intepretation of reactive systems. In E.-R. Olderog, editor, Proc. IFIP Working Conference on Programming Concepts, Methods, and Calculi. North-Holland, 1994.
N. DeFrancesco, A. Fantechi, S. Gnesi, and P. Inverardi. Model checking of nonfinite state processes by finite approximations. In Proc. Tools and Algorithms for the Construction and Analysis of Systems (TACAS'95), Lecture Notes in Computer Science 1019, pages 195–215. Springer, 1995.
M. Dwyer and L. Clark. Data flow analysis for verifying properties of concurrent programs. In Proc. 2d ACM SIGSOFT Symposium on Foundations of Software Engineering, pages 62–75. ACM Press, 1994.
F. Giannotti and D. Latella. Gate splitting in LOTOS specifications using abstract interpretation. In M.-C. Gaudel and J.-P. Jouannaud, editors, TAPSOFT'93, number 668 in Lecture Notes in Computer Science, pages 437–452. Springer-Verlag, 1993.
H. Hungar and B. Steffen. Local model checking for context-free processes. In Proc. ICALP93, Lecture Notes in Computer Science 700, pages 593–605. Springer, 1993.
J. W. Klop. Term rewriting systems. In S. Abramsky, D. Gabbay, and T. Maibaum, editors, Handbook of Logic in Computer Science, volume 2, pages 2–117. Oxford University Press, 1992.
R. Milner. The polyadic π-calculus: a tutorial. Technical Report ECS-LFCS-91-180, Lab. for Foundations of Computer Science, University of Edinburgh, 1991. Also in Logic and Algebra of Specification, F.L.Bauer, ed., Springer, 1993.
Robin Milner. Communication and Concurrency. Prentice-Hall, 1989.
F. Nielson and H. R. Nielson. Higher-order concurrent programs with finite communication topology. In Proc. ACM POPL'94, pages 84–97, 1994.
F. Nielson and H. R. Nielson. From CML to its process algebra. Theoretical Computer Science, 155(1):179–220, 1996.
H. R. Nielson and F. Nielson. Semantics with Applications, a formal introduction. Wiley Professional Computing. John Wiley and Sons, 1992.
J. Palsberg. Global program analysis in constraint form. In M. P. Fourman, P. T. Johnstone, and A. M. Pitts, editors, Proc. CAAP'94, Lecture Notes in Computer Science, pages 258–269. Springer-Verlag, 1994.
D.A. Schmidt. Natural-semantics-based abstract interpretation. In A. Mycroft, editor, Static Analysis Symposium, number 983 in Lecture Notes in Computer Science, pages 1–18. Springer-Verlag, 1995.
P. Sestoft. Analysis and Efficient Implementation of Functional Programs. PhD thesis, Copenhagen University, 1991.
O. Shivers. Control-flow analysis in Scheme. In Proc. SIGPLAN88 Conf. on Prog. Language Design and Implementation, pages 164–174, 1988.
B. Steffen. Generating data-flow analysis algorithms for modal specifications. Science of Computer Programming, 21:115–139, 1993.
B. Steffen. Property-oriented expansion. In R. Cousot and D. Schmidt, editors, Static Analysis Symposium: SAS'96, volume 1145 of Lecture Notes in Computer Science, pages 22–41. Springer-Verlag, 1996.
C. Stirling. Modal and temporal logics. In S. Abramsky, D. Gabbay, and T.S.E. Maibaum, editors, Handbook of Logic in Computer Science, volume 2, pages 477–563. Oxford University Press, 1992.
A. Venet. Abstract interpretation of the pi-calculus. In M. Dam and F. Orava, editors, Proc. LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages, Lecture Notes in Computer Science. Springer, 1996.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Schmidt, D.A. (1997). Abstract interpretation of small-step semantics. In: Dam, M. (eds) Analysis and Verification of Multiple-Agent Languages. LOMAPS 1996. Lecture Notes in Computer Science, vol 1192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62503-8_4
Download citation
DOI: https://doi.org/10.1007/3-540-62503-8_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62503-2
Online ISBN: 978-3-540-68052-9
eBook Packages: Springer Book Archive