Concrete-Syntax.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
  2. <html>
  3. <!-- Created on December 10, 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: 2.2 Concrete Syntax</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: 2.2 Concrete Syntax">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: 2.2 Concrete Syntax">
  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="Concrete-Syntax"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="Raw-Material.html#Raw-Material" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="Bit-String-Encoding.html#Bit-String-Encoding" 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="Virtual-Machine-Specification.html#Virtual-Machine-Specification" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  45. <td valign="middle" align="left">[<a href="Virtual-Machine-Specification.html#Virtual-Machine-Specification" title="Up section"> Up </a>]</td>
  46. <td valign="middle" align="left">[<a href="Library-Reference.html#Library-Reference" 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="Concrete-Syntax-1"></a>
  58. <h2 class="section">2.2 Concrete Syntax</h2>
  59. <p>The previous section has developed a basic vocabulary for statements
  60. such as &ldquo;the virtual machine code for the identity function is
  61. <a name="index-identity-function"></a>
  62. <code>(nil,(nil,nil))</code>&rdquo;, which are elaborated extensively in the
  63. subsequent sections on code and data formats. However, a description in
  64. this style would be inadequate without an explanation of how such an
  65. entity as <code>(nil,(nil,nil))</code> is communicated to <code>avram</code> in a
  66. virtual machine code file. The purpose of this section is to fill the
  67. gap by explaining exactly how any given tree would be transformed to its
  68. concrete representation.
  69. </p>
  70. <p>The syntax is based on a conversion of the trees to bit strings,
  71. <a name="index-bit-strings"></a>
  72. followed by grouping the bits into blocks of six, which are then encoded
  73. by printable characters. Although anyone is free to modify <code>avram</code>,
  74. it is recommended that the concrete syntax described here be maintained
  75. for the sake of portability of virtual machine code applications.
  76. </p>
  77. <p>Building a tree by reading the data from a file requires a more
  78. difficult algorithm than the one presented in this section, and is not
  79. considered because it&rsquo;s not strictly necessary for a
  80. compiler. Procedures for both reading and writing are available to C and
  81. C++ users as part of the <code>avram</code> library, and are also easily
  82. invoked on the virtual code level.
  83. </p>
  84. <table class="menu" border="0" cellspacing="0">
  85. <tr><td align="left" valign="top"><a href="Bit-String-Encoding.html#Bit-String-Encoding">2.2.1 Bit String Encoding</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  86. </td></tr>
  87. <tr><td align="left" valign="top"><a href="Blocking.html#Blocking">2.2.2 Blocking</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
  88. </td></tr>
  89. </table>
  90. <hr size="1">
  91. <table cellpadding="1" cellspacing="1" border="0">
  92. <tr><td valign="middle" align="left">[<a href="Raw-Material.html#Raw-Material" title="Previous section in reading order"> &lt; </a>]</td>
  93. <td valign="middle" align="left">[<a href="Bit-String-Encoding.html#Bit-String-Encoding" title="Next section in reading order"> &gt; </a>]</td>
  94. <td valign="middle" align="left"> &nbsp; </td>
  95. <td valign="middle" align="left">[<a href="Virtual-Machine-Specification.html#Virtual-Machine-Specification" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  96. <td valign="middle" align="left">[<a href="Virtual-Machine-Specification.html#Virtual-Machine-Specification" title="Up section"> Up </a>]</td>
  97. <td valign="middle" align="left">[<a href="Library-Reference.html#Library-Reference" title="Next chapter"> &gt;&gt; </a>]</td>
  98. <td valign="middle" align="left"> &nbsp; </td>
  99. <td valign="middle" align="left"> &nbsp; </td>
  100. <td valign="middle" align="left"> &nbsp; </td>
  101. <td valign="middle" align="left"> &nbsp; </td>
  102. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  103. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  104. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  105. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  106. </tr></table>
  107. <p>
  108. <font size="-1">
  109. This document was generated on <i>December 10, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  110. </font>
  111. <br>
  112. </p>
  113. </body>
  114. </html>