public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: dewar@gnat.com (Robert Dewar)
To: aph@redhat.com, dewar@gnat.com
Cc: gcc@gcc.gnu.org
Subject: Re: c++ "with" keyword
Date: Sun, 05 Jan 2003 12:44:00 -0000	[thread overview]
Message-ID: <20030105122822.02E54F2D5D@nile.gnat.com> (raw)

> Believe that if you wish.  I'm not a betting man.  The Algol 68
> language had no implementations when it was standardized -- AFAIK the
> first delivery was 1977!

Right, but so what? Neither did Algol-60, and that was hugely successful.
The advantage of prototyping as you go along is to validate language
design features, as was done for example with Ada, but in practice the
design of Algol-68 went very smoothly (this standard appeared only 8
years after Algol-60, contrast the period of time between C and C++, or
for that matter between Ada-83 and Ada-95. 

There was in fact quite a lot of prototyping activity (AlgolW/X/Y). If you
look at C++ it is also the case that there was no implementation of C++
when it was standardized (I am not sure that there is a 100% conforming
implementation at the current time). Yes, there were prototypes of subsets,
but that was also true of Algol-68. 

> To quote Lindsey's official history: "...why it did not come into more
> widespread use, and the answer here is simple enough: because it was
> not implemented widely enough, or soon enough.  And the reason for
> that is that implementation was too hard..."  This would not have been
> the case if implementations had existed at the time of
> standardization.

The difficulty of implementing Algol-68 exists whether or not the standard
had waited to be issued till the first implementation. In fact the first
implementation appeared in the early 70's, more or less at the same time
as the revised report (really the revised report is Algol-68).

Of course if implementations had existed in 1968 that would have been nice,
but that's fantasy if you look at the history. Complex languages have always
taken a lot of time and effort to implement. 

Charles is quite right that it was not implemented widely enough or soon
enough, but that was a matter of market forces and resources (the one csae
in which a major manufacturer implemented Algol-68, which was CDC in response
to Dutch university tenders -- they invested about 100 person years of effort.
This compiler was widely used and very successful -- it was by the way the
first general purpose procedural language to have a full garbage collector).

There was certainly no phenomenon of people somehow delaying work on the
implementation of Algol-68 waiting for the standard. On the contrary, the
existence of an accurate standard early on was an enormous help in the
implementation effort (for example, our effort on the 1108 started in 1969
and would have been impossible without the standard).

The real reason for involving language design folks as early as possible is
to avoid half baked extensions that are not properly documented. I still have
not seen proper complete formal definitions of some of the GCC extensions
for example. 

What you need is language design people working hand in hand with implementors
to ensure that new features are properly designed and at the same time
implementable.

The first incarnation of a new language idea should be a fully developed
reasonably formal description of the idea, in the context of the existing
standard. This description should be developed with input from implementors
as to what is or is not implementable. Then trial implementations can be
carried out. It is also reasonable to do prototype implementations to verify
implentability as part of the initial development. This approach has been
followed very successfully in the Ada context for example.

So for me, if anyone is seriously interested in the WITH proposal (so far
I see only one advocate), the next step is to write a reasonably precise
description of what the feature is, including reasonably precise semantics
and syntax. Then that design needs to be evaulated by language design folks,
implementors and application developers to see if it makes sense. Only then
is an implementation reasonable. In the case of WITH, I think the idea is
so badly flawed that the proposal would fail at the first stage, avoiding
wasted implentation effort.

             reply	other threads:[~2003-01-05 12:28 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-05 12:44 Robert Dewar [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-01-06 13:07 Robert Dewar
2003-01-05 18:41 Robert Dewar
2003-01-05 13:03 Robert Dewar
2003-01-05 13:39 ` Toon Moene
2003-01-05 12:56 Robert Dewar
2003-01-06 12:18 ` Andrew Haley
2003-01-05 12:56 Robert Dewar
2003-01-05 18:22 ` Joseph S. Myers
2003-01-05  3:16 Robert Dewar
2003-01-05  0:38 Robert Dewar
2003-01-05  0:29 Robert Dewar
2003-01-05  0:37 ` Kevin Handy
2003-01-04 23:27 Robert Dewar
2003-01-04 23:36 ` Lynn Winebarger
2003-01-05  2:55 ` Gianni Mariani
2003-01-04 22:13 Robert Dewar
2003-01-04 20:59 Robert Dewar
2003-01-04 22:36 ` Gianni Mariani
2003-01-04 20:09 Robert Dewar
2003-01-04 19:36 Robert Dewar
2003-01-04 19:59 ` Tolga Dalman
2003-01-04 19:13 Robert Dewar
2003-01-04 20:58 ` Gianni Mariani
2003-01-04 18:11 Robert Dewar
2003-01-04 18:47 ` Gianni Mariani
2003-01-04 17:52 Robert Dewar
2003-01-04 17:59 ` Gianni Mariani
2003-01-04 17:06 Robert Dewar
2003-01-04 17:22 ` Daniel Berlin
2003-01-05 11:33 ` Andrew Haley
2003-01-05 11:36   ` Toon Moene
2003-01-04 14:29 Robert Dewar
2003-01-04 15:00 ` Momchil Velikov
2003-01-04 15:24   ` Andrew Haley
2003-01-04 16:25     ` Neil Booth
2003-01-04 17:35     ` Gianni Mariani
2003-01-04 17:59       ` Tolga Dalman
2003-01-04 18:36         ` Gianni Mariani
2003-01-04 18:54           ` Tolga Dalman
2003-01-04 23:32         ` Kevin Handy
2002-12-29  8:32 Norman Jonas
2002-12-29 12:46 ` Russ Allbery
2002-12-29  6:49 Erik Schnetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030105122822.02E54F2D5D@nile.gnat.com \
    --to=dewar@gnat.com \
    --cc=aph@redhat.com \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).