Re: No call for Ada (was Re: Announcing new scripting/prototyping language)

From: Robert I. Eachus (rieachus_at_comcast.net)
Date: 02/10/04


Date: Tue, 10 Feb 2004 11:46:59 -0500

Martin Dowie wrote:

> The important thing is that there is nothing in the language
> definition that _requires_ it to produce 'slow' code. One
> of the design aims for Ada95 was to actually introduce
> new language constructs that would actually allow faster
> code to be produced, while retaining the reliability, ease
> of maintenance, etc.

Not quite true. There was an infamous feature in Ada 83 that seemed to
require "extra" copies of vectors on certain vector processing CPUs
without precise error checking.

I remember one time when a compiler developer for a manufacturer of such
vector processing supercomputers called with a complex question about
what was required and what wasn't. We had a long discussion and she
concluded that she could use the current Fortran back-end rules except
for one case.

After she hung up, what she had said percolated through my head, and I
e-mailed a short Fortran example. Sure enough it produced garbage. So
yes, Ada 83 required that you not produce garbage output. The Ada 95
rules may be somewhat different, but they still require that you make
temporary copies when the alternative is junk results. In fact, where
the Ada 83 and Ada 95 rules are different is that, in Ada 83, programs
that discarded their results were still required to get the right answer
in some cases. In Ada 95, you can compute wrong answers if the
externally visible behavior of the program doesn't change. ;-)

-- 
                                           Robert I. Eachus
"The war on terror is a different kind of war, waged capture by capture, 
cell by cell, and victory by victory. Our security is assured by our 
perseverance and by our sure belief in the success of liberty." -- 
George W. Bush


Relevant Pages

  • Re: No call for Ada (was Re: Announcing new scripting/prototyping language)
    ... require "extra" copies of vectors on certain vector processing CPUs ... Ada 83 required that you not produce garbage output. ... cell by cell, and victory by victory. ...
    (comp.lang.c)
  • Re: No call for Ada (was Re: Announcing new scripting/prototyping language)
    ... require "extra" copies of vectors on certain vector processing CPUs ... Ada 83 required that you not produce garbage output. ... cell by cell, and victory by victory. ...
    (comp.lang.ada)
  • Re: No call for Ada (was Re: Announcing new scripting/prototyping language)
    ... require "extra" copies of vectors on certain vector processing CPUs ... Ada 83 required that you not produce garbage output. ... cell by cell, and victory by victory. ...
    (comp.lang.cpp)
  • Re: GNAT parameter passing, C-style?
    ... No, no, you are thinking of Ada 83. ... "The war on terror is a different kind of war, waged capture by capture, ... cell by cell, and victory by victory. ...
    (comp.lang.ada)
  • Re: Mneson use experience, limits
    ... Call it SCOPE, for Signatured COntainers ... The main motivation is the prospect of using SCOPE together with the concurrency and distributed features of Ada to make an elegant and reliable database engine inherently more appropriate for Ada applications than any binding to an external C library. ... all allocation, writing and reading primitive operations replaced by cell operations, or by operations of a container based on ... A persistence container is obtained by instantiation with the cell packages of the required persistence levels. ...
    (comp.lang.ada)