Path: text.usenetserver.com!atl-c01.usenetserver.com!news.usenetserver.com!atl-c05.usenetserver.com!news.usenetserver.com!postnews.google.com!b68g2000cwa.googlegroups.com!not-for-mail
From: "Tony D" <tonyisyourpal@netscape.net>
Newsgroups: comp.databases.theory
Subject: Re: What databases have taught me
Date: 24 Jun 2006 18:39:24 -0700
Organization: http://groups.google.com
Lines: 54
Message-ID: <1151199564.481896.201850@b68g2000cwa.googlegroups.com>
References: <1151026488.310207.201890@m73g2000cwd.googlegroups.com>
   <1151031561.833094.70320@c74g2000cwc.googlegroups.com>
   <671tm3-m1t.ln1@pluto.downsfam.net>
   <1151077022.907639.173530@i40g2000cwc.googlegroups.com>
   <1151105305.728871.260830@p79g2000cwp.googlegroups.com>
   <1151112682.857645.63800@m73g2000cwd.googlegroups.com>
NNTP-Posting-Host: 84.65.183.129
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1151199569 10590 127.0.0.1 (25 Jun 2006 01:39:29 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sun, 25 Jun 2006 01:39:29 +0000 (UTC)
In-Reply-To: <1151112682.857645.63800@m73g2000cwd.googlegroups.com>
User-Agent: G2/0.2
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4,gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: b68g2000cwa.googlegroups.com; posting-host=84.65.183.129;
   posting-account=lQ02DQsAAADWoCQBAmE7gtE1ncXplDWA
Xref: usenetserver.com comp.databases.theory:155642
X-Received-Date: Sat, 24 Jun 2006 21:39:29 EDT (text.usenetserver.com)

Marshall wrote:
> Well, some. Lots of thinking. A trial syntax. Some ambitious
> ideas. There is an interpreter for it, but it's never fully functional,
> as I keep changing my mind about important design decisions.
> For example, a few months ago I ripped out default arguments
> when I realized they broke associativity of natural join. :-(

I have never been a fan of default arguments, since I first encountered
them in Ada. A function that needs default arguments is a function
that's trying to do too much, it seems to me.

> Sadly, I'm not very good with formal methods yet, so I don't
> have an operational semantics. But it's something I want to do.
>

"Pshaw" says I to operational semantics ;) Check out
http://www.cis.ksu.edu/~schmidt/text/densem.html for free PDF or
Postscript of David Schmidt's most excellent "Denotational Semantics: A
Methodology for Language Development". A very good (and when I wanted
to buy it in 1987, very *expensive*) book on denotational semantics.
Lloyd Allison's introductory book, "A Practical Introduction to
Denotational Semantics" (Cambridge Computer Science Texts No. 23) is a
short, quick and decent introduction which might get you going quicker,
but isn't available on line (it's quite cheap though - =A315 currently).
Lloyd Allison has a website at http://www.csse.monash.edu.au/~lloyd,
and his list of programming languages contains the excellent joke :

"The last good thing written in C was Franz Schubert's Ninth Symphony."
 -  Gregory V. Wilson

> Its primitive operators are those of the Tropaskho algebra:
> natural join and inner union. The language is pretty much
> just: those operators, scope and name binding, the type
> system,

Just ?! Languages are invented just to play with type systems, never
mind anything else :)

> the imperative commands,

Oh, boo ...

> and a few bits of
> miscellany, such as aggregates/group-by. High up on
> the wanted-feature list is constraints and updatable views.
> But the precise semantics of view updatability remain
> elusive.
>

Well, you've got to start *somewhere*. Pick the low-hanging fruit and
make sure you've designed the spec in such a way that adding the fun
stuff is easier later (even if someone else gets to do it). Design the
semantics first - an interpreter will surely follow :)

