comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: OT: What was the first programming language to use 'generics'?...
Date: 18 Aug 2005 17:36:41 -0400
Date: 2005-08-18T17:36:41-04:00	[thread overview]
Message-ID: <wccu0hnj5au.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: m34q9nymqb.fsf@rr.trudgett

David Trudgett <wpower@zeta.org.au.nospamplease>  writes:

> "Martin Dowie" <martin.dowie@baesystems.com> writes:
> 
> > ...and were they called 'generics'?
> >
> > Not Ada but I just know /someone/ here will know this! ;-)
> >
> >
> 
> Probably (given I'm not a language historian) Lisp code macros were
> the first, except for a couple of provisos: (a) Lisp never had the
> strong static typing that Ada has, so Lisp macros weren't invented to
> solve the same problem as Ada generics; and (b) Lisp macros are more
> general than Ada generics in the sense that they allow essentially
> arbitrary code (not text) generation (every Ada programmer's
> nightmare? ;-)).

An important difference between Ada's generics and most macro systems
is: what should names in the template refer to.  If a name in the
template refers to something local to the template, it refers to the
copy of that thing in the instance.  If it refers to a formal parameter
in the template, it refers to the actual parameter in the instance.  If
it refers to neither, what should it refer to?  To something visible at
the place of the template, or something visible at the place of the
instance?  The Ada answer is: at the place of the template.  The usual
macro answer is: at the place of the instance.

Some Lisp dialects have "hygienic macros", which are a lot more like Ada
generics in this regard.

- Bob



  reply	other threads:[~2005-08-18 21:36 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-18  9:18 OT: What was the first programming language to use 'generics'? Martin Dowie
2005-08-18 11:29 ` Jean-Pierre Rosen
2005-08-19 16:25   ` Charles Lindsey
2005-08-18 21:11 ` David Trudgett
2005-08-18 21:36   ` Robert A Duff [this message]
2005-08-18 23:43     ` David Trudgett
2005-08-19  2:13       ` OT: What was the first programming language to use Larry Kilgallen
2005-08-19  9:44         ` David Trudgett
2005-08-19 14:22         ` jayessay
2005-08-19 15:08       ` OT: What was the first programming language to use 'generics'? Robert A Duff
2005-08-19 18:09         ` jayessay
2005-08-19 15:42     ` jayessay
2005-08-19  2:47 ` Jeffrey R. Carter
2005-08-21 17:33 ` adaworks
     [not found]   ` <odeig19vmplnbt67s3s148eb4mqrk9vujd@4ax.com>
2005-08-23  7:03     ` adaworks
replies disabled

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