comp.lang.ada
 help / color / mirror / Atom feed
From: Brian Rogoff <bpr@shellx.best.com>
Subject: Re: Ada vs C++ (vs Lisp)
Date: 1997/09/08
Date: 1997-09-08T00:00:00+00:00	[thread overview]
Message-ID: <Pine.SGI.3.95.970908203001.11288C-100000@shellx.best.com> (raw)
In-Reply-To: 341404B4.13CB@osc.edu



On Mon, 8 Sep 1997, James B. White, III (Trey) wrote:
> Richard A. O'Keefe wrote:
> > "James B. White, III (Trey)" <trey@osc.edu> writes:
> > >Ada may have advantages over C++, but only C++ allows these incredibly
> > >powerful programming techniques.
> > 
> > False.  Lisp people know this kind of meta-programming as a very old
> > technique indeed.
> 
> Let me clarify my statement. The combination of expression templates
> *and* operator overloading *and* function inlining *and* efficient
> compilers allows the creation of elegant interfaces that result in code
> that rivals optimized hand-coded FORTRAN in performance. As far as I
> know, this is true only of C++. If it is true of Lisp or anything else
> (like Ada), I'd like to know!

I think it is obvious that you can't do this stuff with Ada generics
because Ada generic instantiation is not primitive recursive function
calculation (what a mouthful, was that clear?). Lisp macros can do 
arbitrary computation during expansion, so given a decent Lisp compiler 
you should be able to get the same effect. Ask nicely on the Lisp newsgroup 
and I bet you'll even get code.

My question is whether it is necessary for your purposes to have this
capability directly supported in the language, or if some source to source 
transformation tool would suffice; i.e., an Ada aware macro system or some 
other such tool. I recall reading about such a macro system (M5?) but I 
forget where...

(In case anyone missed it, the C++ techniques being discussed can be found 
 at http://monet.uwaterloo.ca/blitz/ ) 

-- Brian





  reply	other threads:[~1997-09-08  0:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <md5:DB04B9CCA20E8EB6142C50D2DE055239>
     [not found] ` <34090462.4652@easystreet.com>
     [not found]   ` <Pine.SGI.3.95.970831115842.17664A-100000@shellx.best.com>
1997-09-02  0:00     ` Ada vs C++ James B. White, III (Trey)
     [not found]       ` <Pine.SGI.3.95.970904201703.13590A-100000@shellx.best.com>
1997-09-05  0:00         ` Jon S Anthony
1997-09-05  0:00       ` Robert Dewar
1997-09-05  0:00         ` Larry Kilgallen
1997-09-05  0:00         ` Brian Rogoff
1997-09-08  0:00         ` Ada vs C++ (Expression Templates) James B. White, III (Trey)
1997-09-08  0:00           ` Matthew Heaney
1997-09-08  0:00       ` Ada vs C++ Richard A. O'Keefe
1997-09-08  0:00         ` Ada vs C++ (vs Lisp) James B. White, III (Trey)
1997-09-08  0:00           ` Brian Rogoff [this message]
1997-09-09  0:00             ` Robert A Duff
1997-09-09  0:00             ` Ada vs C++ (Ada 0X) James B. White, III (Trey)
1997-09-09  0:00               ` Brian Rogoff
1997-09-10  0:00               ` Ole-Hjalmar Kristensen FOU.TD/DELAB
1997-09-11  0:00                 ` Anonymous
1997-09-11  0:00                   ` Ole-Hjalmar Kristensen FOU.TD/DELAB
1997-09-09  0:00       ` Ada vs C++ Joerg Rodemann
1997-09-09  0:00         ` Ada vs C++ (high-performance libraries) James B. White, III (Trey)
replies disabled

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