varaq-wasm-c/docs/current.html

142 lines
5.2 KiB
HTML

<title>var'aq Reference Implementation 9/20/2000</title>
<h1><i>var'aq</i> Release Notes</h1><p>
<hr>
<i>maintained by <a href="mailto:connorbd@yahoo.com">Brian Connors</a><br>
revised 2 January 2001</i><p>
<h3>Version Information</h3>
This is the status of the <i>var'aq</i> project as of 20 September 2000. <p>
This is the <b>Azetbur</b> release, after Chancellor Gorkon's daughter and successor in <i>Star Trek VI: The Undiscovered Country</i>.<p>
<h3>Status Summary</h3><p>
We are moving ahead! Console I/O (on a very rudimentary level) is here, as well as much of the mathematical functionality and string handling. Lists are not here yet, and a more robust I/O model must await a better understanding of Klingon hacker culture to understand issues like authentication and how distributed processing might be used. <p>
This release is approaching usability. Files are not here yet (still under discussion), but there is console-level I/O and enough string support to do something useful. <p>
<a href="mailto:jproctor@oit.umass.edu">j proctor</a> from the <i>varaq-dev</i> mailing list has contributed some sample code and a more flexible translator program than the one I wrote and distributed. His interpreter will be found in the <i>translators</i> directory.<p>
<h3>Interpreter Status</h3><p>
The interpreter is available with both Klingon and English keywords; however, keep in mind that maintenance is done mostly on the English version and the translator program is not ready for prime time. This will be fixed eventually.<p>
The following keywords are currently supported:<p>
<ul>
<li>Control Structures
<ul>
<li><b>ifyes/HIja'chugh</b>
<li><b>ifno/ghobe'chugh</b>
<li><b>choose/wIv</b>
<li><b>~ (quote/lI'moH)</b>
<li><b>name/pong</b>
<li><b>set/cher</b>
<li><b>repeat/vangqa'</b>
<li><b>eval/chov</b>
</ul>
<p>
<li>Stack Operations
<ul>
<li><b>pop/woD</b>
<li><b>dup/latlh</b>
<li><b>exch/tam</b>
<li><b>clear/chImmoH</b>
<li><b>remember/qaw</b>
<li><b>forget/qawHa'</b>
</ul>
<p>
<li>Arithmetic Operators
<ul>
<li><b>add/boq</b>
<li><b>sub/boqHa'</b>
<li><b>mul/boq'egh</b>
<li><b>div/boqHa'egh</b>
<li><b>mod/chuv</b>
<li><b>pow/law'qa'moH</b>
<li><b>rand/mIS</b>
<li><b>add1/wa'boq</b>
<li><b>sub1/wa'boqHa'</b>
<li><b>pi/HeHmI'</b>
<li><b>e/ghurmi'</b>
<li><b>clip/poD</b>
<li><b>smooth/Hab</b>
<li><b>howmuch/'ar</b>
</ul>
<p>
<li>Trig/Log operators
<ul>
<li><b>sin/joq</b>
<li><b>cos/joqHa'</b>
<li><b>tan/qojmI'</b>
<li><b>atan/qojHa'</b>
<li><b>ln/ghurtaH</b>
</ul>
<p>
<li>Relational Operators<p>
All relational operators have been implemented. Thanks to j proctor for <b>null?/pagh'a', negative?/taH'a', int?/HabmI''a'</b>, and <b>number/mI''a'</b>.<p>
<li>I/O Operators<p>
The <i>var'aq</i> I/O model remains to be defined, but the basic console I/O functions are now present. <p>
<li>List Operators<p>
List support does not exist yet.<p>
<li>String Operators<p>
The current set of operators is sufficient to implement the others in the spec, but they are a lower priority.</b>
<ul>
<li><b>strtie/tlheghrar</b>
<li><b>streq?/tlheghrap'a'</b>
<li><b>strcut/tlhleghpe'</b>
<li><b>strmeasure/tlheghjuv</b>
<li><b>compose/naQmoH</b>
</ul>
</ul>
<h4>Implementation Issues and/or Bug Fixes</h4><p>
<ul>
<li>The interpreter now knows to ignore hashbang (i.e. #!/usr/bin/varaq-whatever) lines. They can double as end-of-line comments if you like, but you really shouldn't; these are here primarily to allow the forthcoming <i>vqmake</i> program to spit out program files that a Unix shell can execute directly (which would be .vqx files on any other platform).
<li>Took the "\t" out of disp/cha' to facilitate a possible CGI conversion. Better formatted output will be a priority very shortly.
<li>The interpreter also doesn't see lines beginning with //. This is to allow for static linking of .vql files (though if someone wants to implement <i>var'aq</i> "shared libraries" I'll be glad to add the revs to the interpreter).
<li>Cleaned up the execution logic a bit -- the code to execute a proc object was already in there about four times and was about to go in again for compose/naqmoH, so I abstracted it into a routine called execblock() per Chris' advice (RTFC).
<li>Merged in j proctor's additions.
</ul>
<h3>Specification Status</h3><p>
A few changes:<p>
<ul>
<li>A number of operators have been added:
<ul>
<li><b>//<i>name</i></b> -- equivalent to C <code>#include</code>.
<li>Numerous "constants" (actually more like environment variables).
</ul>
<li>Several operators have been renamed:
<ul>
<li><b>strcat</b> is now <b>strtie</b> to bring it in line with the Klingon <b>tlheghrar</b>.
<li>The basic arithmetic operators have been given new
Klingon names to coincide with recent additions to the Klingon linguistic
canon.
</ul>
<li>More coinages in the section headings.
</ul>
<h3>Acknowledgements</h3><p>
The <a href="http://www.egroups.com/group/varaq-dev">varaq-dev</a> mailing
list, especially <a href="mailto:jproctor@oit.umass.edu">j proctor</a> for
his code contributions and Alan Anderson for providing the canonical
Klingon math operators, and to Glenn Gaslin for the impetus to finally
get this thing out the freakin' door. <p>
<hr>
Click <a href="http://www.geocities.com/connorbd/varaq">here</a> to go to the <i>var'aq</i> home page.