-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcurrent.html
141 lines (114 loc) · 5.25 KB
/
current.html
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<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:[email protected]">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:[email protected]">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:[email protected]">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.