Re: terminology

From: Tony D <tonyisyourpal_at_netscape.net>
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.

(You may also like to look for references to Russell, which I think is the only (if not only, then one of a very few) imperative language which tried incorporating the Milner type system, if you haven't come across it already. There was a paper on it in SIGPLAN, July 1986.)

> 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

Original text of this message