Lau B. Jensen wrote: > If you got your hands on an initial release of a C compiler which didn't include > 'and' or 'if' or similar, you'd be stuck waiting for the next release. In Lisp > however, we can freely extend the language because we decide what gets evaluated > and when.
This is an intriguing idea. I enjoy games like this in J (as far as the language will allow me to take them [1]). Recently, I came across a novel and amusing example of programming language extension: Lingua Romana Perligata [2]. Writing Perl programs in Latin! When I first saw it, I assumed it was just a simple joke, such as suffixing the keywords with "-ium", or something similarly trivial. Not so. Perligata is Perl as it would be rendered in Latin, whose grammar (apparently) attaches no special meaning to word order, because each word is marked with its role. So to instruct the computer in Perligata, one must use the correct inflexion and mood (e.g. accusative, dative, genitive). But having done that, you can rearrange the words in a sentence to your heart's desire! A non-positional programming language! So, when I said [3]: > But I do think it should be consistent (no implied operators!) and > linear (no overloading position/location with semantics!). I was just advertising my ignorance. I never even considered that a language could be agnostic regarding word order; and I'm very glad J isn't. I wouldn't want to mark every word for its role [4]; this would be like implementing an array (sequence) as a set, with every item marked with its index. I do like that location carries semantics! -Dan [1] In the context of this thread, programming language extension means using in-language tools to change the spelling/grammar/semantics of the (same) language, as opposed to e.g. writing a specialized interpreter or altering the source of the interpreter. I hear Perl6 will be very flexible in this regard, and I'm anxious for its release. [2] http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html [3] http://www.jsoftware.com/pipermail/chat/2009-December/002655.html [4] Well, J does have inflection, but in a much more limited sense. We inflect graphemes with . or : to create new words. But from my POV these characters are simply new letters appended to the end of a word to create a new word, with a possibly different meaning (but so far, always the same part of speech), e.g. fat + e => fate, hat + e => hate, etc. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
