Single-Threaded Objects in ACL2
ACL2 is a first-order applicative programming language based on Common Lisp. It is also a mathematical logic for which a mechanical theorem-prover has been implemented in the style of the Boyer-Moore theorem prover. The ACL2 system is used primarily in the modeling and verification of computer hardware and software, where the executability of the language allows models to be used as prototype designs or “simulators.” To support efficient execution of certain kinds of models, especially models of microprocessors, ACL2 provides “singlethreaded objects,” structures with the usual “copy on write” applicative semantics but for which writes are implemented destructively. Syntactic restrictions insure consistency between the formal semantics and the implementation. The design of single-threaded objects has been influenced both by the need to make execution efficient and the need to make proofs about them simple. We discuss the issues.
Unable to display preview. Download preview PDF.
- 3.R. S. Boyer and J S. Moore. A Computational Logic Handbook, Second Edition. Academic Press, New York, 1997.Google Scholar
- 5.D. Greve, M. Wilding, and D. Hardin. High-speed, analyzable simulators. In Kaufmann et al. , pages 113–136.Google Scholar
- 7.David Hardin, Matthew Wilding, and David Greve. Transforming the theorem prover into a digital design tool: From concept car to off-road vehicle. In Alan J. Hu and Moshe Y. Vardi, editors, Computer-Aided Verification-CAV’ 98, volume 1427 of Lecture Notes in Computer Science. Springer-Verlag, 1998. See URL http://pobox.com/users/hokie/docs/concept.ps.CrossRefGoogle Scholar
- 8.P. Hudak. Continuation-based mutable abstract data types, or how to have your state and munge it too. Technical Report YaleU/DCS/RR-914, Department of Computer Science, Yale University, July 1992.Google Scholar
- 9.M. Kaufmann, P. Manolios, and J S. Moore, editors. Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Press, 2000.Google Scholar
- 10.M. Kaufmann, P. Manolios, and J. S. Moore. Computer-Aided Reasoning: An Approach. Kluwer Academic Press, 2000.Google Scholar
- 11.Matt Kaufmann and J. Moore. A precise description of the acl2 logic. In http://www.cs.utexas.edu/users/moore/publications/km97a.ps.Z. Department of Computer Sciences, University of Texas at Austin, 1997.
- 12.J. S. Moore. Rewriting for symbolic execution of state machine models. In Computer-Aided Verification-CAV’01, volume 2102 of Lecture Notes in Computer Science. Springer-Verlag, 2001. See URL http://www.cs.utexas.edu/users/moore/publications/nu-rewriter.Google Scholar
- 15.G. L. Steele, Jr. Common Lisp The Language, Second Edition. Digital Press, 30 North Avenue, Burlington, MA 01803, 1990.Google Scholar
- 17.P. Wadler. Monads for functional programming. In Advanced Functional Programming. Springer Verlag, LNCS 925, 1995.Google Scholar