This is the mail archive of the guile@sourceware.cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Language design values (Re: message primitive)


> -----Original Message-----
> From: Mikael Djurfeldt [mailto:mdj@mdj.nada.kth.se]
> Sent: Tuesday, January 11, 2000 12:38 PM
> 
> Per Bothner <per@bothner.com> writes:
> 
> > Telford Tendys <telford@eng.uts.edu.au> writes:
> > 
> > > Orthogonality is already defined in mathematics as 
> stating that the
> > > dot product of two vectors is zero. I hate to see the 
> word applied in
> > > a hazy way to computer languages since no one can give it a solid
> > > definition. If you are suggesting that any given computer 
> > 
> > I have never seen "orthogonality" to mean that.  Normally, it means
> > that two (or more) different features when used together make sense,
> > combine in positive ways, and the specification doesn't have strange
> > exceptions to deal with the combination.
> 
> I think this is a good description.  It is actually the natural
> extension of the mathematical concept:
> 
...etc...

With respect to language design, I'd avoid hewing too closely to the
mathematical definition of orthogonal.  Remember it's a metaphor employed by
mathematical language.  Ortho = correct, straight, -gon = angle.  To me the
metaphor only makes sense with reference to two or more related things, so
"orthogonality of a language" is a pretty murky phrase, to me.  What is
orthogonal to what in a language?  I think people usually use the term when
they want to say that two things don't overlap, so to speak.  Does it make
sense to say that the syntax and semantics of a language should be
orthogonal?  Or maybe that e.g. the string api is semantically orthogonal to
the number api?

Is "orthogonality" another way to say good old-fashioned "high-coherence,
low-coupling", a la structured programming?

I just saw John Daschbach's note defining orthogonality in terms of whether
or not the functions of one set could be expressed as combinations of
another.  I like this very much; I was trying to find a way to express this
but "minimality" is the best I could come up with.  So I take it back: maybe
hewing even more closely to the mathematical definition is the way to go.
But one could also call this "maximal simplicity" in a formal sense, right?
How would one say succinctly that a core language definition consists only
of the members of an orthogonal basis set, with no combinations?
"Orthogonality" doesn't seem to capture the complete idea.  Eureka!  Just
got a brainstorm: there's a term for this in evolutionary theory that might
work: parsimony.  A language is parsimonious if its primitives form an
orthogonal basis set.  Does that make sense?  

-gregg
(disclaimer: not a mathematician)



-gregg

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]