Single-Threaded Objects in ACL2

  • Authors:
  • Robert S. Boyer;J. Strother Moore

  • Affiliations:
  • -;-

  • Venue:
  • PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.