Lambda (was: Refactoring in Tunes)
btanksley@hifn.com
btanksley@hifn.com
Thu, 20 Jan 2000 22:30:45 -0800
> From: Jim Little [mailto:jiml@inconnect.com]
> Subject: Re: Lambda (was: Refactoring in Tunes)
> btanksley@hifn.com wrote:
> > No, I don't know that -- in fact, I disagree stridently
> > with it. A computer
> > language is nothing BUT a UI. It's an interface between
> > the programmer and
> > the machine.
> I think what Laurent is getting at here is that the syntax of the
> language can be separated from the semantics of the language.
This statement makes sense from a certain point of view. I have recently
come to take a different point of view -- I don't talk so much about the
"semantics" versus the "syntax" of the language (unless the language
deliberately limits its own semantics, of course); rather, I talk about the
syntax of the language and the semantics of the machine it's running on.
> I think
> Laurent's further point is that type annotations do not affect the
> semantics of the language, and thus they shouldn't be a part
> of the core
> language. However, they are useful, so they should be a "standard"
> extension.
I'm not overly offended by that :-). It seems like an utter and complete
waste of time for everyone involved, but it's not offensive. For whom would
it save effort? Whose problem is it solving?
> When you think of having multiple syntaxes that are related to but
> separate from the semantics of the language, it all starts to make
> sense: most syntaxes could support the standard type annotation
> extension in whatever way is most useful, but for those
> implementations
> that are highly constrained, the annotation could be left out.
Anyone can write a language for my (nonexistant) VM, so that's true. They
can even use the language I provide to hitch a ride, thus resulting in a
very similar language.
However, at no point would the annotation be left out of a program written
in my language -- because those annotations are a part of the language. In
an implementation which didn't want to perform typechecking, those
annotations would be treated as comments.
> At least, that's my take on it. I think separating semantics from
> syntax (what Laurent calls "UI") is a very good approach, and I also
I agree, but remember that a language is nothing aside from its syntax and
its libraries.
> think identifying a core set of semantics with optional
> semantically-null standard extensions is also a good
> approach.
Hmm. I prefer a single definition for each language.
> (But I'm
> biased, because that's the approach I'm enabling with the Prism
> metacode. :) )
Right.
> Jim
> (The Prism metacode is described at
> http://www.teleport.com/~sphere/documents/001c/7/index.html.)
I've read it. Fun.
-Billy