<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Language design --> <!--X-From-R13: Xrss Yrffryzna <wrssxNgrargjbex.pbz> --> <!--X-Date: Tue, 26 Aug 1997 06:29:12 +0000 --> <!--X-Message-Id: 3.0.2.32.19970825153941.008c5db0#mail,tenetwork.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 3.0.2.32.19970821122620.00b4d3f0#mail,tenetwork.com --> <!--X-Reference: Pine.LNX.3.91.970825160607.20359G-100000@uni-corn.demon.co.uk --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] Language design</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:jeffk#tenetwork,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> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00739.html">Previous</a> | <a href="msg00741.html">Next</a> ] Thread: [ <a href="msg00722.html">Previous</a> | <a href="msg00781.html">Next</a> ] Index: [ <A HREF="author.html#00740">Author</A> | <A HREF="#00740">Date</A> | <A HREF="thread.html#00740">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Language design</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI> <LI><em>Subject</em>: Re: [MUD-Dev] Language design</LI> <LI><em>From</em>: Jeff Kesselman <<A HREF="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</A>></LI> <LI><em>Date</em>: Mon, 25 Aug 1997 15:39:41 -0700</LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> At 03:09 PM 8/25/97 PST8PDT, you wrote: >I seem to remember that someone (Jeff Kesselman, I think) stated that when >designing a language, they always went via one of two routes: > > 1. The language is tightly-bound to the task at hand > 2. The language is very generic in nature > >What are the (dis)advantages of each? I suspect that a non-generic >language would not be too extensible (and may cause problems if it went As a general rule this is ture, more or less. I qualify because a while back I did a multi-media authoring system with a non-generic language. It was nonetheless simply and uniformly structured and there was a logical place in the syntax tree for hanging new operations. This DID still require some new coding and modification of a YACC script but I purposely designed it to be easy and more or less modular to do so. >on to a public ftp-able release), what are your opinions on this? A >generic language with libraries for specific purposes seems better than >tying everything to the language itself, but this is pretty much 'the C/C++ >route'; I'm anxious to avoid making decisions solely on the basis of >"It's all I know." Well I have a bias, but I think its a reasonable one. When designing a "generic" (or probably more correctly termed "ful lfeatured" or "complete") language, I go for simplicity and purity in the core. I personally believe this tends to yield better working and faster executing code. My current little language Kelvin is probably the ultimate expression of this as even the expression 2+2 ends up mapping to int(2).plus(int(2)) This treatment of everything as an object and message ends up yielding a very simple core. I then use standard library objects for all fucntionality, even accessing the internals of the VM for stack trace and such is done though an instance of the VMinterface class, which is implemented a a piece of library code that calls into hooks in the VM itself. In re application specific v. complete language... the biggest issue IMO is the scope of the problems you are trying to solve, and the programming skill of those who will be solving them. Application specific languages tend to be better for non programmers because the very high level concepts they are dealing with are presented as part of the structure of the language itself. Complete languages win in flexability, which is particularly important when your scope is not clearly and rigidly defined. JK Jeff Kesselman Snr. Game Integration Engineer TEN -- The Total Entertainment Network -- www.ten.net -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/CC/E/IT/MC d+(++)@ s: a C++++$ ULSC+++(++++)$ P++(+++)$ L++ E--- W++$ N++$ o+ K--? w++(+++)$@>--- O+(++)>$ M+>$ !V PS++ PE+ Y+ PGP- t+ 5+ X- R+(++)$>+++* tv+ b+>++ DI+++ !D G e++ h r+++ y+++ ------END GEEK CODE BLOCK------ Speak Geek! <A HREF="http://krypton.mankato.msus.edu/~hayden/geek.html">http://krypton.mankato.msus.edu/~hayden/geek.html</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="00705" HREF="msg00705.html">Re: [MUD-Dev] Re:</A></STRONG> <UL><LI><EM>From:</EM> Jeff Kesselman <jeffk#tenetwork,com></LI></UL></LI> <LI><STRONG><A NAME="00722" HREF="msg00722.html">Language design</A></STRONG> <UL><LI><EM>From:</EM> Greg Munt <greg#uni-corn,demon.co.uk></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00739.html">Re: [MUD-Dev] Alignment</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00741.html">[MUD-Dev] Alignment & Introductions</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00722.html">Language design</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00781.html">Re: [MUD-Dev] Re:</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00740"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00740"><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] Character evolution [off topic]</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00999" HREF="msg00999.html">Re: [MUD-Dev] Character evolution [off topic]</A></strong>, Miroslav Silovic <a href="mailto:silovic#mare,zesoi.fer.hr">silovic#mare,zesoi.fer.hr</a>, Tue 02 Sep 1997, 09:38 GMT </LI> </ul> </ul> <LI><strong><A NAME="00839" HREF="msg00839.html">Re: [MUD-Dev] Character evolution</A></strong>, Adam Wiggins <a href="mailto:nightfall#user1,inficad.com">nightfall#user1,inficad.com</a>, Fri 29 Aug 1997, 08:24 GMT </LI> </ul> </ul> <LI><strong><A NAME="00705" HREF="msg00705.html">Re: [MUD-Dev] Re:</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Thu 21 Aug 1997, 19:23 GMT <UL> <LI><strong><A NAME="00722" HREF="msg00722.html">Language design</A></strong>, Greg Munt <a href="mailto:greg#uni-corn,demon.co.uk">greg#uni-corn,demon.co.uk</a>, Mon 25 Aug 1997, 22:10 GMT <UL> <LI><strong><A NAME="00740" HREF="msg00740.html">Re: [MUD-Dev] Language design</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Tue 26 Aug 1997, 06:29 GMT </LI> </UL> </LI> <LI><strong><A NAME="00781" HREF="msg00781.html">Re: [MUD-Dev] Re:</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Wed 27 Aug 1997, 22:47 GMT <UL> <LI><strong><A NAME="00782" HREF="msg00782.html">Re: [MUD-Dev] Re:</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Wed 27 Aug 1997, 23:34 GMT <UL> <LI><strong><A NAME="00886" HREF="msg00886.html">Re: [MUD-Dev] Re:</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sun 31 Aug 1997, 16:49 GMT <UL> <LI><strong><A NAME="00907" HREF="msg00907.html">Re: [MUD-Dev] Re:</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Sun 31 Aug 1997, 19:52 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL> </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>