comp.lang.ada
 help / color / mirror / Atom feed
From: stt@spock.camb.inmet.com (Tucker Taft)
Subject: Re: "Beaujolais Effect" -- what is it?
Date: Fri, 18 Nov 1994 21:37:30 GMT
Date: 1994-11-18T21:37:30+00:00	[thread overview]
Message-ID: <CzHG2J.MK1@inmet.camb.inmet.com> (raw)
In-Reply-To: CzF2oo.5wH@swlvx2.msd.ray.com

In article <CzF2oo.5wH@swlvx2.msd.ray.com>,
John Volan <jgv@swl.msd.ray.com> wrote:

>In the AARM9X (5.0), I've noticed occasional references (e.g.
>8.6(22.a)) to something called the "Beaujolais Effect."  I take it
>that this effect is detrimental, and language designers should try to
>avoid it.  However, I haven't been able to find a definition for it
>anywhere, and it isn't referenced in the AARM9X index. (I suppose
>that's reasonable, since it's only mentioned in annotations, not the
>main text of he RM).  Can anyone supply a definition for this, and/or
>give some pointers to relevant literature about this (especially
>ftp-able stuff)?  Thanks in advance.

The term "Beaujolais Effect" comes from a prize (a bottle of Beaujolais)
offered by Jean Ichbiah during the original Ada design process to anyone
who could find a situation where adding or removing a single
"use" clause could change a program from one legal interpretation
to a different legal interpretation.  (Or equivalently, adding
or removing a single declaration from a "use"d package.)

At least one bottle was awarded, and if the offer was still open,
a few more might have been awarded during the Ada 9X process.
However, thanks to some very nice analysis by the Ada 9X Language
Precision Team (based at Odyssey Research Associates) we were
able to identify the remaining cases of this effect in Ada 83, 
and remove them as part of the 9X process.

The existing cases in Ada 83 had to do with implicit conversion
of expressions of a universal type to a non-universal type.
The rules in Ada 9X are subtly different, making any case
that used to result in a Beaujolais effect in Ada 83, illegal
(due to ambiguity) in Ada 9X.

The Beaujolais effect is considered "harmful" because it is
expected that during maintenance, declarations may be added
or removed from packages without being able to do an exhaustive
search for all places where the package is "use"d.
If there were situations in the language which resulted in 
Beaujolais effects, then certain kinds of changes in "use"d
packages might have mysterious effects in unexpected places.

>				John Volan

S. Tucker Taft   stt@inmet.com
Ada 9X Mapping/Revision Team
Intermetrics, Inc.
Cambridge, MA  02138



      parent reply	other threads:[~1994-11-18 21:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-11-17 14:53 "Beaujolais Effect" -- what is it? John Volan
1994-11-17 13:10 ` Robert I. Eachus
1994-11-19 17:04   ` Jean D. Ichbiah
1994-11-20 23:15     ` Matt Kennel
1994-11-18 21:37 ` Tucker Taft [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox