Abstract
The evaluation of post-conditions requires the computation of old attribute values. Until recently, existing computation methods were not efficient in terms of time- and space-complexity. Moreover they were applicable only to a restricted form of post-conditions. Recently a new algorithm was proposed to overcome those deficiencies.In this paper, an abstract machine corresponding to this algorithm is defined. Its transitions simulate steps of object-oriented systems and preserve an invariant implying properties needed to compute old attribute values. The machine is based on a kind of structure called here sufficiently persistent, as opposed to persistent and partially persistent structures. A space-bound on the structure size is given. It is also demonstrated that methods which do not have post-conditions can be abstracted away.
This research has been partially supported by grant No PBZ-MNiSW-DBO-02/I/2007/.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Barnett, M., M. Leino, K.R., Schulte, W.: The Spec# Programming System: An Overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)
Conchon, S., Fillitre, J.-C.: Semi-persistent Data Structures. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 322–336. Springer, Heidelberg (2008)
Dzidek, W., Briand, L., Labiche, Y.: Lessons learned from developing a dynamic OCL constraint enforcement tool for java. In: Bruel, J.-M. (ed.) MoDELS 2005. LNCS, vol. 3844, pp. 9–19. Springer, Heidelberg (2006)
Darvas, A., Müller, P.: Reasoning About Method Calls in JML Specifications. In: Proceedings of the 7th Workshop on Formal Techniques for Java-like Programs (FTfJP’05), Glasgow, Scotland (July 2005)
Driscoll, J.R., Sarnak, N., Sleator, D.D., Tarjan, R.E.: Making Data Structures Persistent. Journal of Computer and System Sciences 38(1) (1989)
Floyd, R.W.: Assigning meanings to programs, in Mathematical Aspects of Computer Science. In: Proceedings of Symposium in Applied Mathematics, vol. 19, pp. 19–32. American Mathematical Society, Providence (1967)
Fowler, M.: Refactoring: improving the design of existing code. Addison-Wesley, Reading (2000)
Hussmann, H., Finger, F., Wiebicke, R.: Using Previous Property Values in OCL Postconditions: An Implementation Perspective. In: Int. Workshop UML 2.0 - The Future of the UML Constraint Language OCL, York, UK (October 2, 2000)
Kosiuczenko, P.: On the implementation of @pre. In: Chechik, M., Wirsing, M. (eds.) FASE 2009. LNCS, vol. 5503, pp. 246–261. Springer, Heidelberg (2009)
Meyer, B.: Applying design by contract. Computer 25(10), 40–51 (1992)
Meyer, B.: Eiffel: The Language. Object-Oriented Series. Prentice Hall, New York (1992)
OMG, OCL 2.0 Specification, Version 2005-06-06 (June 2005)
Toval, A., Requena, V., Fernandez, J.: Emerging OCL Tools. Journal of Software and System Modelling 2(4), 248–261 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kosiuczenko, P. (2010). An Abstract Machine for the Old Value Retrieval. In: Bolduc, C., Desharnais, J., Ktari, B. (eds) Mathematics of Program Construction. MPC 2010. Lecture Notes in Computer Science, vol 6120. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13321-3_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-13321-3_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13320-6
Online ISBN: 978-3-642-13321-3
eBook Packages: Computer ScienceComputer Science (R0)