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

Reply via email to