Re: Conca : a small interpreter
<[email protected]> 30 Apr 2014 03:11:54 -0700
| Newsgroups | gmane.comp.lang.concatenative |
|---|---|
| Message-ID | <[email protected]> |
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Tm8sIG15IG93biBGdXJwaHkgKHNlZSBodHRwOi8vdXNlcnMuYmVhZ2xlLmNvbS5hdS9wZXRl
cmwvZnVycGh5Lmh0bWwgaHR0cDovL3VzZXJzLmJlYWdsZS5jb20uYXUvcGV0ZXJsL2Z1cnBo
eS5odG1sKSB1c2VzIHBvc3RmaXggKFJldmVyc2UgUG9saXNoKSBuYW1pbmcgZHVyaW5nIGNv
bXBpbGF0aW9uLCBhbmQgaXQgZG9lc24ndCBoYXZlIGFueSBkaXN0aW5jdCBydW4gdGltZSBz
dHVmZiBkdXJpbmcgY29tcGlsYXRpb24gYXBhcnQgZnJvbSB3aGF0IGlzIGltcGxlbWVudGVk
IGJ5IGltbWVkaWF0ZSB3b3Jkcy4gSW4gZmFjdCwgdGhhdCB3YXMgdGhlIG1vc3QgbmF0dXJh
bCB3YXkgdG8gd29yayBpdCB3aXRoIGEgc2ltcGxlIGNvbXBpbGUtYW5kLWdvIGNvbXBpbGVy
LCBzbyBhcyBub3QgdG8gbmVlZCBhbnkgc3BlY2lhbCBjb25zdHJ1Y3QgdG8gYmUgYWN0aW9u
ZWQgZHVyaW5nIGNvbXBpbGF0aW9uIHRvIGNhcnJ5IG91dCBhIGRlZmluaXRpb24gLSBhbmQs
IHdpdGhvdXQgYSBkZWZpbmluZyB3b3JkIGF0IGFsbCwgdGhlcmUgaXNuJ3QgYSBkZWZpbmlu
ZyB3b3JkIGF2YWlsYWJsZSBsYXRlciBhdCBydW4gdGltZS4gV2l0aCB0aGF0IGFwcHJvYWNo
LCB0aGUgY29tcGlsZXIgc3RhcnRzIGEgbmV3IHdvcmQgYW5kIHRoZW4gY29tcGlsZXMgdG9r
ZW5zIGFuZCBudW1iZXJzIGZyb20gdGhlIHNvdXJjZSBpbnRvIGEgbmV3IHdvcmQgdW50aWwg
aXQgcmVhY2hlcyB0aGUgZW5kIG9yIGFuIHVucmVjb2duaXNlZCB0b2tlbiwgZWl0aGVyIG9m
IHdoaWNoIHRlcm1pbmF0ZXMgdGhlIGN1cnJlbnQgd29yZCB3aXRoIGEgcmV0dXJuIG9yIHRh
aWwgY2FsbCBvcHRpbWlzYXRpb24uIEFuIHVucmVjb2duaXNlZCB0b2tlbiBpcyBhc3NpZ25l
ZCBhcyB0aGUgY3VycmVudCB3b3JkJ3MgbmFtZSBhbmQgdGhlbiB0aGUgY29tcGlsZXIgc3Rh
cnRzIGEgbmV3IHdvcmQgYW5kIGNvbnRpbnVlcyBhcyBiZWZvcmU7IGF0IHRoZSBlbmQgb2Yg
dGhlIHNvdXJjZSB0aGVyZSBpcyBvbmUgZmluYWwgYW5vbnltb3VzIHdvcmQsIGFuZCB0aGF0
IGlzIGp1c3QgcnVuIChpdCBjYW4gc2F2ZSBhbiBleGVjdXRhYmxlIGFuZCBoYWx0IGJlZm9y
ZSBmYWxsaW5nIHRocm91Z2ggaW50byBhcHBsaWNhdGlvbiB3b3JkcyB0aGF0IHRoZSBleGVj
dXRhYmxlIHdpbGwgc3RhcnQgYXQsIGlmIHlvdSB3YW50IGNvbXBpbGUtYW5kLXNhdmUgYmVo
YXZpb3VyKS4=
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body style="background-color: #fff;">
<span style="display:none"> </span>
<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->
<div id="ygrp-text" >
<p>No, my own Furphy (see <a rel="nofollow" target="_blank" href="http://users.beagle.com.au/peterl/furphy.html">http://users.beagle.com.au/peterl/furphy.html</a>) uses postfix (Reverse Polish) naming during compilation, and it doesn't have any distinct run time stuff during compilation apart from what is implemented by immediate words. In fact, that was the most natural way to work it with a simple compile-and-go compiler, so as not to need any special construct to be actioned during compilation to carry out a definition - and, without a defining word at all, there isn't a defining word available later at run time. With that approach, the compiler starts a new word and then compiles tokens and numbers from the source into a new word until it reaches the end or an unrecognise
d token, either of which terminates the current word with a return or tail call optimisation. An unrecognised token is assigned as the current word's name and then the compiler starts a new word and continues as before; at the end of the source there is one final anonymous word, and that is just run (it can save an executable and halt before falling through into application words that the executable will start at, if you want compile-and-save behaviour).</p>
</div>
<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>
<div style="clear:both"> </div>
<table cellspacing=4px style="margin-top: 20px; margin-bottom: 10px; color: #2D50FD;">
<tbody>
<tr>
<td style="font-size: 12px; font-family: arial; font-weight: bold; padding: 7px 5px 5px;" >
<a style="text-decoration: none; color: #2D50FD" href="https://groups.yahoo.com/neo/groups/concatenative/conversations/messages/4977;_ylc=X3oDMTJwMDgzaTRuBF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzQ5NzcEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMzk4ODUyNzE1?act=reply&messageNum=4977">Reply via web post</a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="mailto:[email protected]?subject=Re%3A%20Conca%20%3A%20a%20small%20interpreter" style="text-decoration: none; color: #2D50FD;">
Reply to sender </a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;">
<a href="mailto:[email protected]?subject=Re%3A%20Conca%20%3A%20a%20small%20interpreter" style="text-decoration: none; color: #2D50FD">
Reply to group </a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;" >
<a href="https://groups.yahoo.com/neo/groups/concatenative/conversations/newtopic;_ylc=X3oDMTJlbjlrNWptBF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTM5ODg1MjcxNQ--" style="text-decoration: none; color: #2D50FD">Start a New Topic</a>
</td>
<td>•</td>
<td style="font-size: 12px; font-family: arial; padding: 7px 5px 5px;color: #2D50FD;" >
<a href="https://groups.yahoo.com/neo/groups/concatenative/conversations/topics/4969;_ylc=X3oDMTM0MWI4bG9nBF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzQ5NzcEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMzk4ODUyNzE1BHRwY0lkAzQ5Njk-" style="text-decoration: none; color: #2D50FD;">Messages in this topic</a>
(8)
</td>
</tr>
</tbody>
</table>
<div id="megaphoneModule">
<hr style="height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E3;">
</div>
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #f2f2f2; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; "><a href="https://groups.yahoo.com/neo/groups/concatenative/info;_ylc=X3oDMTJla2s5bDhwBF9TAzk3MzU5NzE0BGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTM5ODg1MjcxNQ--" style="text-decoration: none;">Visit Your Group</a></span>
<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
</ul>
</div>
<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="https://groups.yahoo.com/neo;_ylc=X3oDMTJkaGhsbnNrBF9TAzk3NDc2NTkwBGdycElkAzE4MzkyNzQEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMzk4ODUyNzE1" style="float: left;"><img src="http://l.yimg.com/ru/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
<div style="color: #747575; float: right;"> • <a href="https://info.yahoo.com/privacy/us/yahoo/groups/details.html" style="text-decoration: none;">Privacy</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="https://info.yahoo.com/legal/us/yahoo/utos/terms/" style="text-decoration: none;">Terms of Use</a> </div>
</div>
<!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">
<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->
</div> <!-- |**|end egp html banner|**| -->
<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>
<img src="http://geo.yahoo.com/serv?s=97359714/grpId=1839274/grpspId=1705006764/msgId=4977/stime=1398852715" width="1" height="1"> <br>
<img src="http://y.analytics.yahoo.com/fpc.pl?ywarid=515FB27823A7407E&a=10001310322279&js=no&resp=img" width="1" height="1">
<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}
#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}
#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}
#ygrp-mkp #ads {
margin-bottom: 10px;
}
#ygrp-mkp .ad {
padding: 0 0;
}
#ygrp-mkp .ad p {
margin: 0;
}
#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}
#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}
#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}
#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}
#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}
#activity span {
font-weight: 700;
}
#activity span:first-child {
text-transform: uppercase;
}
#activity span a {
color: #5085b6;
text-decoration: none;
}
#activity span span {
color: #ff7900;
}
#activity span .underline {
text-decoration: underline;
}
.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}
.attach div a {
text-decoration: none;
}
.attach img {
border: none;
padding-right: 5px;
}
.attach label {
display: block;
margin-bottom: 5px;
}
.attach label a {
text-decoration: none;
}
blockquote {
margin: 0 0 0 4px;
}
.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}
.bold a {
text-decoration: none;
}
dd.last p a {
font-family: Verdana;
font-weight: 700;
}
dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}
dd.last p span.yshortcuts {
margin-right: 0;
}
div.attach-table div div a {
text-decoration: none;
}
div.attach-table {
width: 400px;
}
div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}
div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
text-decoration: none;
}
div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}
.green {
color: #628c2a;
}
.MsoNormal {
margin: 0 0 0 0;
}
o {
font-size: 0;
}
#photos div {
float: left;
width: 72px;
}
#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}
#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}
#reco-category {
font-size: 77%;
}
#reco-desc {
font-size: 77%;
}
.replbq {
margin: 4px;
}
#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}
#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}
#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}
#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}
#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}
#ygrp-mlmsg * {
line-height: 1.22em;
}
#ygrp-mlmsg #logo {
padding-bottom: 10px;
}
#ygrp-msg p a {
font-family: Verdana;
}
#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}
#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}
#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}
#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}
#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}
#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}
#ygrp-text {
font-family: Georgia;
}
#ygrp-text p {
margin: 0 0 1em 0;
}
#ygrp-text tt {
font-size: 120%;
}
#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
--9nlWnTS9ocNmxdhsK3FKVLWiM6a5jwOaA8HvrLV--