comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Building limited types through nested creator functions
Date: Tue, 7 Feb 2012 16:08:34 +0100
Date: 2012-02-07T16:08:34+01:00	[thread overview]
Message-ID: <119ggo27yno9u.1xqd6iu7dg15w$.dlg@40tude.net> (raw)
In-Reply-To: op.v9bci2lyule2fv@douda-yannick

On Tue, 07 Feb 2012 15:43:40 +0100, Yannick Duch�ne (Hibou57) wrote:

> Le Tue, 07 Feb 2012 14:25:40 +0100, Dmitry A. Kazakov
> <mailbox@dmitry-kazakov.de> a �crit:
>> It is never called explicitly.
> You have Controlled types.

Initialize is not a constructor:

1. Initialize is not enforced (a constructor is always called);
2. It can be called explicitly (a constructor is not an operation);
3. It can be overridden (a constructor is not a primitive operation);
4. It dispatches (a constructor is specific to its type);
5. Initialize has no additional parameters, it is useless in factories;
6. Initialize does not work with all types;
7. Initialize is called too early when tasks are components.

Like limited-valued functions Initialize is a hack, which cannot work
because construction cannot be expressed in terms of procedural model
decomposition.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2012-02-07 15:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-05 22:03 Building limited types through nested creator functions Simon Belmont
2012-02-06 12:44 ` Julian Leyh
2012-02-06 19:11 ` Shark8
2012-02-06 22:33   ` Simon Belmont
2012-02-07  0:03 ` Adam Beneschan
2012-02-07  0:27   ` Simon Belmont
2012-02-07  0:53     ` Adam Beneschan
2012-02-07  2:19       ` Simon Belmont
2012-02-07  9:10         ` Dmitry A. Kazakov
2012-02-07 10:58           ` Georg Bauhaus
2012-02-07 13:25             ` Dmitry A. Kazakov
2012-02-07 14:43               ` Yannick Duchêne (Hibou57)
2012-02-07 15:08                 ` Dmitry A. Kazakov [this message]
2012-02-07 17:04 ` Robert A Duff
replies disabled

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