Abstract
Safe and secure reuse is only achievable by deploying formally verified software components. This paper presents essential design objectives for languages for building such components and highlights key features in RESOLVEāa prototype for such languages. It explains why the language must include specifications as an integral constituent and must have clean and rich semantics, which preclude unconstrained aliasing and other unwanted side-effects. In order that arbitrarily complex components can be given concise and verification amenable specifications, an adequate language must also include an open-ended mechanism for incorporating additional mathematical theories. Given these essential characteristics, safe and secure reuse cannot be attained within popular languages, such as C++ or Java, either by constraining them or by extending them. Better languages are necessary.
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
Hoare, C.A.R.: The Verifying Compiler. A Grand Challenge for Computing Research. JACMĀ 50(1), 63ā69 (2003)
Klebanov, V., et al.: The 1st Verified Software Competition: Experience Report. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol.Ā 6664, pp. 154ā168. Springer, Heidelberg (2011)
Sitaraman, M., et al.: Reasoning About Software-Component Behavior. In: Frakes, W.B. (ed.) ICSR 2000. LNCS, vol.Ā 1844, pp. 266ā283. Springer, Heidelberg (2000)
Sitaraman, M., Adcock, B., Avigad, J., Bronish, D., Bucci, B., Frazier, D., Friedman, H.M., Harton, H.K., Heym, W., Kirschenbaum, J., Krone, J., Smith, H., Weide, B.W.: Building a Push-Button RESOLVE Verifier: Progress and Challenges. Formal Aspects of ComputingĀ 23(5), 607ā626 (2011)
Adcock, B.: Working Towards the Verified Software Process. Ph. D. thesis, Computer Science and Engineering, The Ohio State University (2010)
Harton, H.K.: Mechanical and Modular Verification Condition Generation for Object-Based Software. Ph. D. Dissertation, Clemson University, 305 pages (2011)
Cook, C.T., Harton, H.K., Smith, H., Sitaraman, M.: Specification engineering and modular verification using a web-integrated verifying compiler. In: Proceedings of the International Conference on Software Engineering (ICSE), pp. 1379ā1382 (2012)
Kulczycki, G.: Direct Reasoning. Ph. D. Dissertation, Clemson University, 183 pages (2004)
Smith, H.: Engineering Specifications and Mathematics for Verified Software. Ph. D. Dissertation, Clemson University, (to appear, 2013)
Kirschenbaum, J., Adcock, B., Bronish, D., Smith, H., Harton, H., Sitaraman, M., Weide, B.W.: Verifying Component-Based Software: Deep Mathematics or Simple Bookkeeping? In: Edwards, S.H., Kulczycki, G. (eds.) ICSR 2009. LNCS, vol.Ā 5791, pp. 31ā40. Springer, Heidelberg (2009)
Harms, D.E., Weide, B.W.: Copying and Swapping: Influences on the Design of Reusable Software Components. IEEE Transactions on Software EngineeringĀ 17(5), 424ā435 (1991)
Kulczycki, G., Smith, H., Harton, H., Sitaraman, M., Ogden, W.F., Hollingsworth, J.E.: The Location Linking Concept: A Basis for Verification of Code Using Pointers. In: Joshi, R., MĆ¼ller, P., Podelski, A. (eds.) VSTTE 2012. LNCS, vol.Ā 7152, pp. 34ā49. Springer, Heidelberg (2012)
DeMillo, R.A., Lipton, R.J., Perlis, A.J.: Social Processes and Proofs of Theorems and Programs. Comm. ACMĀ 22(5), 271ā280 (1979)
Cook, C.T., Drachova, S., Sun, Y.-S., Sitaraman, M., Carver, J., Hollingsworth, J.E.: Specification and reasoning in SE Projects Using a Web IDE. In: Proceedings Conference on Software Engineering Education & Technology, CSEE&T (2013)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kulczycki, G. et al. (2013). A Language for Building Verified Software Components. In: Favaro, J., Morisio, M. (eds) Safe and Secure Software Reuse. ICSR 2013. Lecture Notes in Computer Science, vol 7925. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38977-1_23
Download citation
DOI: https://doi.org/10.1007/978-3-642-38977-1_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-38976-4
Online ISBN: 978-3-642-38977-1
eBook Packages: Computer ScienceComputer Science (R0)