1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
<html>
<head><title>Functions_for_Manipulating_these_Objects.html -- ACL2 Version 3.1</title></head>
<body text=#000000 bgcolor="#FFFFFF">
<h2>Functions for Manipulating these Objects</h2>
<p>
Consider a typical ``stack'' of control frames.<p>
<img src=stack.gif><p>
Suppose the model required that we express the idea of ``the most recent
frame whose return program counter points into <code>MAIN</code>.''<p>
The natural expression of this notion involves<p>
<b>function application</B> -- ``fetch the <code>return-pc</code> of this frame''<p>
<b>case analysis</B> -- ``<b>if</B> the pc is <code>MAIN</code>, <b>then</B> ...''<p>
<b>iteration</B> or <b>recursion</B> -- ``pop this frame off and repeat.''<p>
The designers of ACL2 have taken the position that a <b>programming</B>
<b>language</B> is the natural language in which to define such notions,
<b>provided</B> the language has a mathematical foundation so that
models can be analyzed and properties derived logically.<p>
<img src=common-lisp.gif> is the language supported by ACL2.
Click <a href="Common_Lisp.html">here</a> for an optional and very brief introduction
to Common Lisp.<p>
<a href="Modeling_in_ACL2.html"><img src=flying.gif></a>
<br><br><br><a href="acl2-doc.html"><img src="llogo.gif"></a> <a href="acl2-doc-index.html"><img src="index.gif"></a>
</body>
</html>
|