1998Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: Bruce Sterling on Virtual Community goals -->
<!--X-From-R13: Quevf Uenl <ptNnzv&#45;pt.UenlEntr.Sqzbagba.OP.QO> -->
<!--X-Date: Tue, 20 Oct 1998 22:29:51 &#45;0700 -->
<!--X-Message-Id: 199810210523.XAA00414@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: Bruce Sterling on Virtual Community goals</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00290.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00292.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00332.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00292.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00291">Author</A>
&nbsp;|&nbsp;<A HREF="#00291">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00291">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Subject</em>: [MUD-Dev] Re: Bruce Sterling on Virtual Community goals</LI>
<LI><em>From</em>: Chris Gray &lt;<A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A>&gt;</LI>
<LI><em>Date</em>: Tue, 20 Oct 1998 23:23:47 -0600</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
[Jon A. Lambert:]

[Grrr. I sat down to work on telnet stuff tonight! Oh well! :-)]

 &gt;But note the similarities between generating bytecode and 
 &gt;interpretive execution. I assuming one has to make at least a 
 &gt;scanning pass through any high level-code to do a syntax check, you 
 &gt;might as well build the byte-code.  And make the execution a 
 &gt;bytecode/pseudocode interpreter. Building an executable, even 
 &gt;platform optimized native is a snap once you have a common bytecode.  
 &gt;JIT anyone?

Nod. It all depends on how the interpretation is done, however. In
ToyMUD, I have no representation other than the raw strings, and do all
the work again and again and again. Makes for small system sources, but
it sure is slow! At the other end of the scale, AmigaMUD's initial
interpreter (before byte-code) uses a recursive routine that walks
the parse-trees in depth-first order, evaluating as it goes. It also
doesn't need to do any run-time type checking, since that was all done
by the parser. There is something to be said for having an extra
representation like that - it can be "pretty printed" back into source
form, whereas bytecode is a *lot* harder to do that with. If we allow
multiple languages, using something like a parse tree as a common
intermediate form could allow machine translation among the languages.
That may be more complexity than is warranted, however. But at least
it would let both of us have our favourite syntaxes - a flag on the
wizard character could indicate which form to use on output!

 &gt;I don't think anyone would want to.  My idea was multiple 
 &gt;compiler-flavors, and multiple targets 
 &gt;(interpretation/bytecode/native), eventually... Rather than tie it
 &gt;to a language with a fixed feature set, allow it to be extensible.

Nod. I'm not quite sure what it was you said that got me thinking you
had intended an assembler. Perhaps speaking of labels.

 &gt;Yes, built a very simple minimal language.  Let the minimal 
 &gt;language we come up with, self-document the bytecodes one needs to 
 &gt;execute it.  This bytecode would be same in any language 
 &gt;implementation. And then extend the operands as needed to support
 &gt;generic feature sets one would desire in different high level 
 &gt;languages.  Thoughts?

One thing to watch out for when designing a byte-code - don't waste
the opcodes! Either that or go with 16 bit (word-code) values right
away. Something that I think limits the kinds of optimizations that a
Java VM can do is that they are nearly out of byte-codes, and so the
system is restricted in the amount of extra ones they can invent. Also,
having everything be a 16 bit reference into the "constant table"
means that you can't replace instructions containing such references
with instructions containing a 32 bit run-time value. There are ways around
that, but it could be painfull.

(Why would you want to do that? Well, if you have a call from function
A to function B, such that you know at linkage time that the parameters
will always match, you can replace the function-call opcode with one
that just does a jump directly to the byte-code for the called function.
No indirection or lookup necessary. The assumption here is that once
loaded/compiled, byte-code will not move in memory.)

-- 
Chris Gray     cg#ami-cg,GraySage.Edmonton.AB.CA


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00290.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00292.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00332.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00292.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00291"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00291"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00286" HREF="msg00286.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Wed 21 Oct 1998, 03:52 GMT
</LI>
</ul>
<LI><strong><A NAME="00267" HREF="msg00267.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Tue 20 Oct 1998, 05:17 GMT
</LI>
<LI><strong><A NAME="00290" HREF="msg00290.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Wed 21 Oct 1998, 05:14 GMT
<UL>
<LI><strong><A NAME="00332" HREF="msg00332.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Thu 22 Oct 1998, 01:50 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00291" HREF="msg00291.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Wed 21 Oct 1998, 05:29 GMT
</LI>
<LI><strong><A NAME="00292" HREF="msg00292.html">[MUD-Dev] Re: Bruce Sterling on Virtual Community goals</A></strong>, 
Bruce Mitchener, Jr. <a href="mailto:bruce#puremagic,com">bruce#puremagic,com</a>, Wed 21 Oct 1998, 06:04 GMT
<UL>
<LI><strong><A NAME="00297" HREF="msg00297.html">[MUD-Dev] Recursive look</A></strong>, 
Ling <a href="mailto:K.L.Lo-94#student,lboro.ac.uk">K.L.Lo-94#student,lboro.ac.uk</a>, Wed 21 Oct 1998, 14:41 GMT
<UL>
<LI><strong><A NAME="00300" HREF="msg00300.html">[MUD-Dev] Re: Recursive look</A></strong>, 
Holly Sommer <a href="mailto:hsommer#micro,ti.com">hsommer#micro,ti.com</a>, Wed 21 Oct 1998, 15:10 GMT
<UL>
<LI><strong><A NAME="00305" HREF="msg00305.html">[MUD-Dev] Re: Recursive look</A></strong>, 
The Wildman <a href="mailto:wildman#microserve,net">wildman#microserve,net</a>, Wed 21 Oct 1998, 16:48 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>