1999Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev] Properties of computer languages -->
<!--X-From-R13: Xba Zrbaneq <wyrbaneqNsebfg.fyvzl.pbz> -->
<!--X-Date: Thu, 17 Jun 1999 08:38:45 &#45;0700 -->
<!--X-Message-Id: 19990617021752.B20775#frost,slimy.com -->
<!--X-Content-Type: text/plain -->
<!--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:jleonard#frost,slimy.com">
</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="msg00829.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00832.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00826.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00835.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00828">Author</A>
&nbsp;|&nbsp;<A HREF="#00828">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00828">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>: Jon Leonard &lt;<A HREF="mailto:jleonard#frost,slimy.com">jleonard#frost,slimy.com</A>&gt;</LI>
<LI><em>Date</em>: Thu, 17 Jun 1999 02:17:52 -0700</LI>
<LI><em>Cc</em>: Jon Leonard &lt;<A HREF="mailto:jleonard#frost,slimy.com">jleonard#frost,slimy.com</A>&gt;</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>
On Wed, Jun 16, 1999 at 10:31:47PM -0700, Caliban Tiresias Darklock wrote:
&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 declaration.

The simplest list I'm aware of is:
1) Increment variable
2) Decrement variable (but not below 0)
3) Do block of code while variable != 0.

That's enough for Turing completeness...  There's lots of other sets of
operations that give Turing completeness, and many of them are more useful.

I suspect you're asking the wrong question, though.  Most of these minimal
systems are interesting only from a theoretical perspective.  They tend to
be a nightmare to program in, and terribly inefficient.  Who wants to use a
system where the simplest way to copy a variable uses three while loops?

It sounds as if you're trying to trying to design a simple (and yet usable?)
macro language...  I'd guess you may have other unstated constraints like:

* It should run reasonably efficiently
* It should be easy to understand even for non-CS majors
* It should be easy to implement

It might be a better idea to look at existing computer languages that have
small implementations (BASIC, Forth, Scheme, etc.), and then pick primitives
from those that seem like good ideas.  If it seems expressive enough, it
probably is...  There are essentially three classes of languages, roughly:
1) Way too primitive (Can't do anything interesting)
2) Primitive recursive (Can't do infinite loops, Ackermann's functions, etc.)
3) Turing complete (Can do anything any other language can)

Depending on what you're using macro languages for, a primitive recursive
language may be expressive enough, and has the advantage of never going into
infinite loops.  These can have for loops as long as the loop count is known
before entering the loop -- primitive recursive languages can do most of what
you might want to do.

I have a number of references at hand if the theory of computation stuff
is interesting.  My favorite is _Introduction to Automata Theory,
Languages, and Computation_ by John E. Hopcroft and Jeffrey D. Ullman.

If you look at this as a usability exercise, then I'm probably not of much
further use.  I like Scheme and Forth, which implies that most of my usability
opinions are suspect.

Jon Leonard



_______________________________________________
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="msg00829.html">[MUD-Dev] Different approaches?</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00832.html">Re: [MUD-Dev] Game Economies</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00826.html">[MUD-Dev] Properties of computer languages</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00835.html">Re: [MUD-Dev] Properties of computer languages</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00828"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00828"><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="00838" HREF="msg00838.html">Re: [MUD-Dev] i got's a question for yall on the best way to do something..</A></strong>, 
Jim Clark <a href="mailto:somewhere#sprint,ca">somewhere#sprint,ca</a>, Thu 17 Jun 1999, 21:48 GMT
</LI>
<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
</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>