Re: terminology
Date: 18 Jun 2006 16:10:22 -0700
Message-ID: <1150672222.168062.256990_at_r2g2000cwb.googlegroups.com>
Marshall wrote:
> TTM is extremely well developed in the RT part. Indeed, it
> is the most thorough treatment of the topic I know of, and
> probably the only one to give it its due importance. But it is
> fairly uninspired in the PLT part. There is no mention of
> closures (in the PLT sense,) lambda, higher-order functions,
> recursion or tail-call optimization, process calculi or even
> message passing, type inference, parametric polymorphism
> (outside of its built-in use with relations) or metaprogramming
> anywhere in the book that I can find. (Although I only have
> the 2nd ed.; haven't gotten to the 3rd ed. yet.)
>
>From what I can remember of asking Chris Date about this, I think the
idea was to show the ideas in something approaching a familiar
framework, which meant hanging on to the baggage of variables,
assignments and procedural programming. I think the idea was that
moving wholesale to functional or declarative programming might have
scared the horses too much. This was three or more years ago, so I may
not have remembered this correctly; I do remember that Chris said that
they had explicitly rejected functional programming for Tutorial D.
>From a later conversation with Hugh Darwen, I think at that time they
also accepted that Tutorial D wasn't a full blown production language,
and that things would have to be added to it to make it one (hence the
Tutorial in the name).
All that said, I still think that Haskell + relations-as-first-class-citizens = Nirvana-of-a-sort.
> The thing is, I think the goal (or at least *a* goal) is to produce
> a great general-purpose programming language with first-class
> support for RT. I don't think that producing a relational algebra
> system with support for general purpose computation is quite
> as interesting. So in that sense, I think what I really want to
> see is RT embedded into PLT, and not the other way around,
> although I agree that the RT part is foundational and therefor
> crucial.
>
It depends what you think the PLT part is going to bring to the party; the last two programming languages that made me sit up and take notice were Prolog and Haskell (I learned Standard ML first; but it has normal order evaluation and (gasp) updateable variables (shhhh !)). Most of the rest of it has just been fiddling with Algol-60. (If I'm feeling charitable, I might give you Smalltalk as almost new; I might even concede some specialised languages like Snobol or Logo, and applaud the efforts of the APL family.) Received on Mon Jun 19 2006 - 01:10:22 CEST