1999Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev] Properties of computer languages -->
<!--X-From-R13: [nex Uevggre <znexNreqbf.Egnasbeq.SRG> -->
<!--X-Date: Thu, 17 Jun 1999 08:39:50 &#45;0700 -->
<!--X-Message-Id: 199906170919.CAA02545#erdos,Stanford.EDU -->
<!--X-Content-Type: text -->
<!--X-Reference: 4.1.19990616222815.00c62720#pop,darklock.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev] Properties of computer languages</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:mark#erdos,Stanford.EDU">
</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="msg00830.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00836.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00828.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00836.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00835">Author</A>
&nbsp;|&nbsp;<A HREF="#00835">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00835">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev] Properties of computer languages</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>: Re: [MUD-Dev] Properties of computer languages</LI>
<LI><em>From</em>: Mark Gritter &lt;<A HREF="mailto:mark#erdos,Stanford.EDU">mark#erdos,Stanford.EDU</A>&gt;</LI>
<LI><em>Date</em>: Thu, 17 Jun 1999 02:19:45 -0700 (PDT)</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Sender</em>: <A HREF="mailto:mud-dev-admin#kanga,nu">mud-dev-admin#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>
Caliban Tiresias Darklock writes:
&gt; 
&gt; I'm in the process of redesigning the macro language of my game, and I
&gt; recall seeing at one time a list... a very short list... of things that a
&gt; computer language absolutely required. Sort of a bare-bones "what you need
&gt; to do everything you need to do in any given program". Two of the things on
&gt; the list were conditionals (if/then/else) and iteration (for/next and
&gt; do/while). There were either two or three other things listed, but I don't
&gt; remember what they were. Does anyone here have a memory spark going off as
&gt; to what list I'm talking about and where I can find it? I think one of the
&gt; other things was something along the lines of subroutine/function 
&gt; declaration.
&gt; 

I don't have the document you refer to, but I can take a swing at answering 
your question.

In theoretical (rather than practical) terms, you need conditionals,
branching (or iteration), and arbitrarily large state.  An example of the 
last is an array--- just allowing multiple variables isn't sufficient, 
unless your values can be arbitrarily large.  (In which case you can
play number-theoretical games and implement an array using a single
variable.)

These can even be combined--- for example, Hennessy &amp; Patterson give an
example of a one-instruction computer in their architecture textbook.
The presence of these features can be very subtle, too: "pure" untyped lambda
calculus has only one rule, substitution, but you can implement 
conditionals and recursion by being sufficiently clever.

The question to ask is "can I implement any given Turing machine in my 
language?"  If you can, your language is strong enough to implement any 
other programming language.

Practically speaking, though, you probably want to implement more than
the minimum, for efficiency.  So, rather than just getting by with
"increment" and "decrement" instructions (or "set to 0" and "set to 1"), 
most languages offer addition and subtraction, less-than and greater-than,
etc.  

Adding arrays or lists is generally the easiest way to make a language 
complete, although note that you have to implement dynamic arrays
to truly do so.  Staticly-sized arrays are no more powerful than some
proportional number of variables--- but in practice, you're limited
by the machine's memory anyway.

Mark Gritter
mark#erdos,stanford.edu



_______________________________________________
MUD-Dev maillist  -  MUD-Dev#kanga,nu
<A  HREF="http://www.kanga.nu/lists/listinfo/mud-dev">http://www.kanga.nu/lists/listinfo/mud-dev</A>


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00826" HREF="msg00826.html">[MUD-Dev] Properties of computer languages</A></STRONG>
<UL><LI><EM>From:</EM> Caliban Tiresias Darklock &lt;caliban#darklock,com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00830.html">[MUD-Dev] Properties of computer languages</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00836.html">Re: [MUD-Dev] Properties of computer languages</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00828.html">Re: [MUD-Dev] Properties of computer languages</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00836.html">Re: [MUD-Dev] Properties of computer languages</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00835"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00835"><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>Re: [MUD-Dev] i got's a question for yall on the best way to do something..</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00840" HREF="msg00840.html">Re: [MUD-Dev] i got's a question for yall on the best way to do something..</A></strong>, 
Marc Hernandez <a href="mailto:marc#ias,jb.com">marc#ias,jb.com</a>, Thu 17 Jun 1999, 21:48 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00827" HREF="msg00827.html">[MUD-Dev] 3D Anarchy</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Thu 17 Jun 1999, 15:37 GMT
<LI><strong><A NAME="00826" HREF="msg00826.html">[MUD-Dev] Properties of computer languages</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Thu 17 Jun 1999, 08:19 GMT
<UL>
<LI><strong><A NAME="00828" HREF="msg00828.html">Re: [MUD-Dev] Properties of computer languages</A></strong>, 
Jon Leonard <a href="mailto:jleonard#frost,slimy.com">jleonard#frost,slimy.com</a>, Thu 17 Jun 1999, 15:38 GMT
</LI>
<LI><strong><A NAME="00835" HREF="msg00835.html">Re: [MUD-Dev] Properties of computer languages</A></strong>, 
Mark Gritter <a href="mailto:mark#erdos,Stanford.EDU">mark#erdos,Stanford.EDU</a>, Thu 17 Jun 1999, 15:39 GMT
</LI>
<LI><strong><A NAME="00836" HREF="msg00836.html">Re: [MUD-Dev] Properties of computer languages</A></strong>, 
Travis S. Casey <a href="mailto:efindel#io,com">efindel#io,com</a>, Thu 17 Jun 1999, 16:24 GMT
</LI>
<LI><strong><A NAME="00839" HREF="msg00839.html">Re: [MUD-Dev] Properties of computer languages</A></strong>, 
Hans-Henrik Staerfeldt <a href="mailto:hhs#cbs,dtu.dk">hhs#cbs,dtu.dk</a>, Thu 17 Jun 1999, 21:48 GMT
<UL>
<LI><strong><A NAME="00845" HREF="msg00845.html">Re: [MUD-Dev] Properties of computer languages</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Thu 17 Jun 1999, 23:56 GMT
<UL>
<LI><strong><A NAME="00846" HREF="msg00846.html">Re: [MUD-Dev] Properties of computer languages</A></strong>, 
Joey Hess <a href="mailto:joey#kitenet,net">joey#kitenet,net</a>, Fri 18 Jun 1999, 00:34 GMT
</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>