comp.lang.ada
 help / color / mirror / Atom feed
From: Dmitry A. Kazakov <mailbox@dmitry-kazakov.de>
Subject: Re: "Must instantiate controlled types at library level." Why?
Date: Tue, 18 May 2004 10:27:08 +0200
Date: 2004-05-18T10:27:08+02:00	[thread overview]
Message-ID: <n6fja0djv24qgqce65nvbdjqeprgc040qm@4ax.com> (raw)
In-Reply-To: mailman.144.1084812619.313.comp.lang.ada@ada-france.org

On Mon, 17 May 2004 17:50:23 +0100, "Marius Amado Alves"
<amado.alves@netcabo.pt> wrote:

>I associate first-class citizenship with being an object.

This is a view on a program, not language. It is a valid view. However
what was meant is not the objects one can operate, but built-in vs.
derived ones.

>For example, in most languages (including Ada), types are NOT first-class
>citizens.

Yes, if you support my view on generics as foreign substances! (:-))
Otherwise, types become first-class objects when they appear as the
parameters of generic instantiations.

Also do not forget that some attributes take types as parameters.
Because Ada allows to override *some* attributes, one should probably
count *all* attributes as subroutines.

>In languages with a MOP (Meta-Object Protocol), e.g. Smalltalk, types ARE
>first-class citizens.

Yes. Though it is a question which approach is better. Presently it is
very difficult to get even "object" ADT right. If you want to make
types objects, you should evolve type ADT. Of course you might hope
that the ADT working with normal values, would also do with type
values. But from what we know now, it seems that "type arithmetic" is
very different. So I do not believe that one could manage values, type
values, type type values etc within the same framework.

>In most prototype-based languages (e.g. Io) everything is an object.

This is a delusion. In any language there should be things one cannot
operate.

>Being an object meaning loosely that it can be passed around, inspected,
>changed, copied, read, written, put in a container etc., especially at run
>time.
>
>For example, in Ada, every now and then a you need to print the component
>names of a record. You cannot extract them programmatically, because they
>aren't first class.

Probably we should distinguish n-class and non-existent objects. (:-))

--
Regards,
Dmitry Kazakov
www.dmitry-kazakov.de



  reply	other threads:[~2004-05-18  8:27 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-11 23:04 "Must instantiate controlled types at library level." Why? Peter C. Chapin
2004-05-12  1:03 ` Jeffrey Carter
2004-05-12 10:47   ` Peter C. Chapin
2004-05-12 11:25     ` Ludovic Brenta
2004-05-12 14:41       ` Martin Krischik
2004-05-13  2:20       ` Peter C. Chapin
2004-05-12 11:55     ` Martin Krischik
2004-05-13  2:59       ` Peter C. Chapin
2004-05-13  7:10         ` Martin Krischik
2004-05-13 10:36           ` Peter C. Chapin
2004-05-13 11:18             ` Martin Krischik
2004-05-13 22:27               ` Peter C. Chapin
2004-05-13 22:54               ` Freejack
2004-05-14  7:13                 ` Martin Krischik
2004-05-14 13:50                   ` Xenos
2004-05-14 17:27                     ` Georg Bauhaus
2004-05-14 17:58                       ` Xenos
2004-05-14 18:49                     ` Martin Krischik
2004-05-14 19:40                       ` Xenos
2004-05-14 22:47                         ` Ludovic Brenta
2004-05-15  8:34                           ` Martin Krischik
2004-05-16  2:55                           ` Hyman Rosen
2004-05-16 13:48                             ` Ludovic Brenta
2004-05-17  2:30                               ` Hyman Rosen
2004-05-17  5:39                                 ` Martin Dowie
2004-05-17  7:48                                   ` Ludovic Brenta
2004-05-17 15:01                                     ` Hyman Rosen
2004-05-17 16:31                                       ` Georg Bauhaus
2004-05-17 17:40                                         ` Hyman Rosen
2004-05-17 19:17                                           ` Georg Bauhaus
2004-05-17  6:24                                 ` Martin Krischik
2004-05-17 19:48                                   ` James Kanze
2004-05-18  6:27                                     ` Martin Krischik
2004-05-17 12:33                                 ` Dmitry A. Kazakov
2004-05-17 13:46                                   ` Martin Krischik
2004-05-17 15:03                                     ` Dmitry A. Kazakov
2004-05-17 16:02                                   ` Alexander E. Kopilovich
2004-05-18  7:48                                     ` Dmitry A. Kazakov
2004-05-19  1:20                                       ` Alexander E. Kopilovich
2004-05-19  9:59                                         ` Dmitry A. Kazakov
2004-05-19 12:38                                           ` Hyman Rosen
2004-05-19 13:28                                             ` Dmitry A. Kazakov
2004-05-19 13:09                                           ` Georg Bauhaus
2004-05-19 13:44                                             ` Hyman Rosen
2004-05-19 14:17                                               ` Dmitry A. Kazakov
2004-05-19 14:15                                             ` Dmitry A. Kazakov
2004-05-21 11:39                                               ` Georg Bauhaus
2004-05-21 20:33                                                 ` Dmitry A. Kazakov
     [not found]                                                   ` <c8mkor$rlq$1@a1-hrz.uni-duisburg.de>
2004-05-23  1:28                                                     ` Hyman Rosen
2004-05-23  8:55                                                     ` Dmitry A. Kazakov
2004-05-24 11:38                                                       ` Georg Bauhaus
2004-05-24 13:57                                                         ` Dmitry A. Kazakov
2004-05-24 14:40                                                           ` Georg Bauhaus
2004-05-25  8:32                                                             ` Dmitry A. Kazakov
2004-05-25 15:47                                                               ` Georg Bauhaus
     [not found]                                   ` <URJ8Eg0vzF@VB1162.spb.edu>
2004-05-17 16:50                                     ` Marius Amado Alves
2004-05-18  8:27                                       ` Dmitry A. Kazakov [this message]
2004-05-15 17:20                     ` Pascal Obry
2004-05-13 19:33             ` Randy Brukardt
replies disabled

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