From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_00,FROM_WORDY, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,ea30c4e9c3d00b X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,ea30c4e9c3d00b X-Google-Attributes: gid103376,public From: "Nick Roberts" Subject: Re: Ultimate Language feature list Date: 1998/05/15 Message-ID: <6jhraq$pbm$2@plug.news.pipex.net>#1/1 X-Deja-AN: 353559899 References: <6jc18b$lug$1@news.eclipse.net> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: UUNET WorldCom server (post doesn't reflect views of UUNET WorldCom) Newsgroups: comp.lang.ada,comp.lang.eiffel Date: 1998-05-15T00:00:00+00:00 List-Id: My pet ideal language (called 'Babbage', I don't know if this is original), has the following essential features: * the 'core' is a byte-code interpreter (like JVM but lower-level and more general-purpose (very like P-code I suppose)), with the well-known attendant advantages; * the syntax is totally flexible, based on prefix, infix, and postfix operators (a bit like Prolog), with primitives only for literals (numeric, character, set, and vector); * in particular, there is no special syntax for code (e.g. a sequence of statements is simply implemented as a vector literal, and parallelism is achieved simply as a set literal); * only very low-level constructs are implemented directly (e.g. 'set value', 'jump', 'read value', 'add', 'subtract', etc.), and are directly equivalent to byte-codes; * a language of any level of power can be built up from these simple components (e.g. the functionality of LISP, Prolog, SmallTalk, and better, all in one); * in particular, (interpreted) Babbage programs would have the (ready) ability to modify themselves as they execute, giving rise to many interesting possibilities (e.g. program self-healing via the Internet, program end-stage development/refinement by tame users, intelligent 'learning' self-improving programs); * each programmer can build exactly his/her favourite 'language' and environment (this needn't be a disaster: conformity could be imposed as required, to the extent required, in specific circumstances); * suitable subsystems can be compiled native, and the compiler can (very conveniently!) be written in Babbage. Also, the intention is for the native character type to be Unicode, so that many (or most?) symbols which have to have clumsy equivalents (e.g. * for multiplication, / for division, as well as 'executional sequence' (a plus in a circle), 'executional parallelism' (I don't know), and any number of others) can all eventually be replaced by the proper symbols. I think it is perhaps interesting to note that, as I have it at the moment, this language tends towards very concise names. This is partly because the language is modelled somewhat on mathematical notation (which tends towards extreme 'conciseness'!), and partly, I think, because if you take real care with your nomenclature, you can achieve conciseness while still avoiding the pitfalls of ambiguity and confusion. I haven't yet solved the problem of name spaces (i.e. name clashes!). [Oh, and in case you're wondering, ThoughtWing Babbage will be available at a retailer near you anytime Real Soon Now!] PS: There was a language called 'POP' once. Has this language since died a death? PPS: Dubious claim to fame: Professor Popler, the great maths genius, after whom the above language was named, lives near me! -- Nick Roberts ThoughtWing Software, Croydon, UK ThoughtWing@dial.pipex.com MSG [ Michael Scott Garnett michael@pickles.org ] wrote in message <6jc18b$lug$1@news.eclipse.net>... |I do all my development in C++. Not necessarily because I want to, but |because I keep looking (and looking) for alternate languages/environments |and they ALWAYS come up short. I've decided that the language/environment |for me hasn't been created, so I'm starting a list of features that I |like/require. [...]