Abstract
Can a programming language really help programmers write better programs?
- Barnes, J. High-Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley, 2003. Google ScholarDigital Library
- Barnett, M., Chang, B.-Y. E., DeLine, R., Jacobs, B., and Leino, K.R.M. Boogie: A modular reusable verifier for object-oriented programs. In Proceedings of Formal Methods for Components and Objects, Volume 4111 LNCS (Amsterdam, The Netherlands, Nov. 1--4, 2005). Springer, 2006, 364--387. Google ScholarDigital Library
- Barnett, M., Leino, K.R.M., and Schulte, W. The Spec# programming system: An overview. In Proceedings of Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, Volume 3362 LNCS (Nice, France, Mar. 8--11). Springer, 2005, 49--69. Google ScholarDigital Library
- Burdy, L., Cheon, Y., Cok, D. R., Ernst, M. D., Kiniry, J. R., Leavens, G. T., Leino, K.R.M., and Poll, E. An overview of JML tools and applications. Electronic Notes in Theoretical Computer Science 80 (2003), 212--232. Google ScholarDigital Library
- Chatterjee, S., Lahiri, S. K., Qadeer, S., and Rakamaric, Z. A reachability predicate for analyzing low-level software. In Proceedings of Tools and Algorithms for Construction and Analysis of Systems, Volume 4424 LNCS (Braga, Portugal, Mar. 24--Apr. 1). Springer, 2007, 19--33. Google ScholarDigital Library
- Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., and Tobies, S. VCC: A practical system for verifying concurrent C. In Proceedings of Theorem Proving in Higher Order Logics, Volume 5674 LNCS (Munich, Aug. 17--20). Springer, 2009, 23--42. Google ScholarDigital Library
- de Moura, L. and Bjørner, N. Z3: An efficient SMT solver. In Proceedings of Tools and Algorithms for Construction and Analysis of Systems, Volume 4963 LNCS (Budapest, Mar. 29--Apr. 6). Springer, 337--340. Google ScholarDigital Library
- Detlefs, D. L., Leino, K.R.M., Nelson, G., and Saxe, J. B. Extended Static Checking Research Report 159. Compaq Systems Research Center, Palo Alto, CA, 1998.Google Scholar
- Dhara, K. K. and Leavens, G. T. Forcing behavioral subtyping through specification inheritance. In Proceedings of the International Conference on Software Engineering (Berlin, Mar. 25--30). IEEE Computer Society Press, 1996, 258--267. Google ScholarDigital Library
- Fähndrich, M. and Leino, K.R.M. Declaring and checking non-null types in an object-oriented language. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (Anaheim, CA, Oct. 26--30). ACM Press, New York, 2003, 302--312. Google ScholarDigital Library
- Fähndrich, M. and Xia, S., Establishing object invariants with delayed types. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (Montrél, Oct. 21--25). ACM Press, New York, 2007, 337--350. Google ScholarDigital Library
- Filliâtre, J.-C. and Marché, C. The Why/Krakatoa/Caduceus platform for deductive program verification. In Proceedings of Computer Aided Verification, Volume 4590 LNCS (Berlin, July 3--7). Springer, 2007, 173--177. Google ScholarDigital Library
- Flanagan, C., Leino, K.R.M., Lillibridge, M., Nelson, G., Saxe, J. B., and Stata, R. Extended static checking for Java. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation (Berlin, June 17--19). ACM Press, New York, 2002, 234--245. Google ScholarDigital Library
- Floyd, R. W. Assigning meanings to programs. In Mathematical Aspects of Computer Science, Volume 19 of Proceedings of Symposia in Applied Mathematics. American Mathematical Society, 1967, 19--32.Google ScholarCross Ref
- Hoare, C., Misra, J., Leavens, G. T., and Shankar, N. The verified software initiative: A manifesto. ACM Computing Surveys 41, 4 (2009), 1--8. Google ScholarDigital Library
- Jacobs, B., Leino, K.R.M., Piessens, F., Smans, J., and Schulte, W. A programming model for concurrent object-oriented programs. ACM Transactions on Programming Languages and Systems 31, 1 (2008), 1--48. Google ScholarDigital Library
- Kassios, I. T. Dynamic frames: Support for framing, dependencies and sharing without restrictions. In Proceedings of World Congress on Formal Methods, Volume 4085 LNCS (Hamilton, Canada, Aug. 21--27). Springer, 2006, 268--283. Google ScholarDigital Library
- Leavens, G. T., Baker, A. L., and Ruby, C. Preliminary design of JML: A behavioral interface specification language for Java. ACM SIGSOFT Software Engineering Notes 31, 3 (2006), 1--38. Google ScholarDigital Library
- Leino, K.R.M. This is Boogie 2. Microsoft Research Technical Report (June 2008).Google Scholar
- Leino, K.R.M. and Müller, P. Using the Spec# language, methodology, and tools to write bug-free programs. Advanced Lectures on Software Engineering: LASER Summer School 2007/2008, Volume 6029 LNCS. Springer, 2010. Google ScholarDigital Library
- Liskov, B. H. and Wing, J. M. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems 16, 6 (1994), 1811--1841. Google ScholarDigital Library
- Meyer, B. Object-oriented Software Construction. Prentice-Hall, 1988. Google ScholarDigital Library
- Müller, P. Modular Specification and Verification of Object-Oriented Programs, Volume 2262 LNCS. Springer, 2002.Google ScholarCross Ref
- Parkinson, M. J. and Bierman, G. M. Separation logic and abstraction. In Proceedings of the Symposium of Principles of Programming Languages (Long Beach, CA, Jan. 12--14). ACM Press, New York, 2005, 247--258. Google ScholarDigital Library
Index Terms
- Specification and verification: the Spec# experience
Recommendations
Specification, Refinement and Verification of Concurrent Systems—An Integration of Object-Z and CSP
This paper presents a method of formally specifying, refining and verifying concurrent systems which uses the object-oriented state-based specification language Object-Z together with the process algebra CSP. Object-Z provides a convenient way of ...
On the verification of VDM specification and refinement with PVS
ASE '97: Proceedings of the 12th international conference on Automated software engineering (formerly: KBSE)Although the formal method VDM has been in existence since the 1970s, there are still no satisfactory tools to support verification in VDM. The paper deals with one possible means of approaching this problem by using the PVS theorem-prover. It describes ...
Specification of Iterators
Iterators are defined, and previously published methods for defining their meanings are outlined. It is shown how to use trace specifications to define a common form of iterator module (Alphard-style iterators). A form of specification for an iterator ...
Comments