The-Universal-Function.html 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
  2. <html>
  3. <!-- Created on November 8, 2012 by texi2html 1.82
  4. texi2html was written by:
  5. Lionel Cons <[email protected]> (original author)
  6. Karl Berry <[email protected]>
  7. Olaf Bachmann <[email protected]>
  8. and many others.
  9. Maintained by: Many creative people.
  10. Send bugs and suggestions to <[email protected]>
  11. -->
  12. <head>
  13. <title>avram - a virtual machine code interpreter: 3.1.8 The Universal Function</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: 3.1.8 The Universal Function">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: 3.1.8 The Universal Function">
  16. <meta name="resource-type" content="document">
  17. <meta name="distribution" content="global">
  18. <meta name="Generator" content="texi2html 1.82">
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <style type="text/css">
  21. <!--
  22. a.summary-letter {text-decoration: none}
  23. blockquote.smallquotation {font-size: smaller}
  24. pre.display {font-family: serif}
  25. pre.format {font-family: serif}
  26. pre.menu-comment {font-family: serif}
  27. pre.menu-preformatted {font-family: serif}
  28. pre.smalldisplay {font-family: serif; font-size: smaller}
  29. pre.smallexample {font-size: smaller}
  30. pre.smallformat {font-family: serif; font-size: smaller}
  31. pre.smalllisp {font-size: smaller}
  32. span.roman {font-family:serif; font-weight:normal;}
  33. span.sansserif {font-family:sans-serif; font-weight:normal;}
  34. ul.toc {list-style: none}
  35. -->
  36. </style>
  37. </head>
  38. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  39. <a name="The-Universal-Function"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="Indirection.html#Indirection" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="Characters-and-Strings.html#Characters-and-Strings" title="Next section in reading order"> &gt; </a>]</td>
  43. <td valign="middle" align="left"> &nbsp; </td>
  44. <td valign="middle" align="left">[<a href="Library-Reference.html#Library-Reference" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  45. <td valign="middle" align="left">[<a href="Lists.html#Lists" title="Up section"> Up </a>]</td>
  46. <td valign="middle" align="left">[<a href="Character-Table.html#Character-Table" title="Next chapter"> &gt;&gt; </a>]</td>
  47. <td valign="middle" align="left"> &nbsp; </td>
  48. <td valign="middle" align="left"> &nbsp; </td>
  49. <td valign="middle" align="left"> &nbsp; </td>
  50. <td valign="middle" align="left"> &nbsp; </td>
  51. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  52. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  53. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  54. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  55. </tr></table>
  56. <hr size="1">
  57. <a name="The-Universal-Function-1"></a>
  58. <h3 class="subsection">3.1.8 The Universal Function</h3>
  59. <a name="index-universal-function"></a>
  60. <p>A function computing the result of the invisible operator used to
  61. specify the virtual code semantics in <a href="Virtual-Code-Semantics.html#Virtual-Code-Semantics">Virtual Code Semantics</a>, is
  62. easily available by way of a declaration in &lsquo;<tt>apply.h</tt>&rsquo;.
  63. </p>
  64. <dl>
  65. <dt><a name="index-avm_005finitialize_005fapply"></a><u>Function:</u> void <b>avm_initialize_apply</b><i> ()</i></dt>
  66. <dd><p>This function should be called by the client program at least once prior
  67. to the first call to <code>avm_apply</code> or
  68. <code>avm_recoverable_apply</code>. It causes certain internal data structures
  69. and error message texts to be initialized.
  70. </p></dd></dl>
  71. <dl>
  72. <dt><a name="index-avm_005fcount_005fapply"></a><u>Function:</u> void <b>avm_count_apply</b><i> ()</i></dt>
  73. <dd><p>This function should be used at the end of a run for the purpose of
  74. detecting and reporting any unreclaimed storage associated with
  75. functions in this section. If the function <code>avm_count_lists()</code> is
  76. also being used, it should be called after this one.
  77. </p></dd></dl>
  78. <dl>
  79. <dt><a name="index-avm_005fapply"></a><u>Function:</u> list <b>avm_apply</b><i> (list <var>operator</var>, list <var>operand</var>)</i></dt>
  80. <dd><p>This is the function that evaluates the operator used to describe the
  81. virtual code semantics. For example, the value of <code><var>f</var> <var>x</var></code>
  82. can be obtained as the result returned by
  83. <code>avm_apply(<var>f</var>,<var>x</var>)</code>.
  84. </p>
  85. <p>Both parameters to this function are deallocated unconditionally and
  86. should not be referenced again by the caller. If the parameters are
  87. needed subsequently, then only copies of them should be passed to
  88. <code>avm_apply</code> using <code>avm_copied</code>.
  89. </p>
  90. <p>This function is not guaranteed to terminate, and may cause a memory
  91. overflow error. In the event of an exceptional condition, the error
  92. message is written to standard error and the program is halted. There is
  93. no externally visible distinction between different levels of error
  94. conditions.
  95. </p></dd></dl>
  96. <dl>
  97. <dt><a name="index-avm_005frecoverable_005fapply"></a><u>Function:</u> list <b>avm_recoverable_apply</b><i> (list <var>operator</var>, list <var>operand</var>, int *<var>fault</var>)</i></dt>
  98. <dd><p>This function is similar to <code>avm_apply</code> but leaves the
  99. responsibility of error handling with the caller. If any
  100. overflow or exceptional condition occurs, the result returned is a list
  101. representing the error message, and the <code><var>fault</var></code> flag is set to
  102. a non-zero value. This behavior contrasts with that of <code>avm_apply</code>,
  103. which will display the message to standard error and kill the process.
  104. </p></dd></dl>
  105. <hr size="1">
  106. <table cellpadding="1" cellspacing="1" border="0">
  107. <tr><td valign="middle" align="left">[<a href="Indirection.html#Indirection" title="Previous section in reading order"> &lt; </a>]</td>
  108. <td valign="middle" align="left">[<a href="Characters-and-Strings.html#Characters-and-Strings" title="Next section in reading order"> &gt; </a>]</td>
  109. <td valign="middle" align="left"> &nbsp; </td>
  110. <td valign="middle" align="left">[<a href="Library-Reference.html#Library-Reference" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  111. <td valign="middle" align="left">[<a href="Lists.html#Lists" title="Up section"> Up </a>]</td>
  112. <td valign="middle" align="left">[<a href="Character-Table.html#Character-Table" title="Next chapter"> &gt;&gt; </a>]</td>
  113. <td valign="middle" align="left"> &nbsp; </td>
  114. <td valign="middle" align="left"> &nbsp; </td>
  115. <td valign="middle" align="left"> &nbsp; </td>
  116. <td valign="middle" align="left"> &nbsp; </td>
  117. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  118. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  119. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  120. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  121. </tr></table>
  122. <p>
  123. <font size="-1">
  124. This document was generated on <i>November 8, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  125. </font>
  126. <br>
  127. </p>
  128. </body>
  129. </html>