comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Making sense of predicates
Date: Tue, 22 Oct 2013 18:30:30 +0200
Date: 2013-10-22T18:30:30+02:00	[thread overview]
Message-ID: <br4nfx53r0u3.14aut4oqj4h6$.dlg@40tude.net> (raw)
In-Reply-To: 7d18f68a-f15e-4e81-bbbe-22010c513a84@googlegroups.com

On Tue, 22 Oct 2013 07:52:03 -0700 (PDT), Dan'l Miller wrote:

> On Tuesday, October 22, 2013 2:57:21 AM UTC-5, Dmitry A. Kazakov wrote:
>> On Tue, 22 Oct 2013 09:20:50 +0200, Jacob Sparre Andersen wrote:
>> [...snip...]
>> By reworking Ada type system, which never will happen. I thought that maybe
>> a more subtle way could be to bend some recently added patches in a useful
>> way.
> 
> Dmitry,
> Please present to comp.lang.ada a minimal* itemized list of
> A) the extant portions of the Ada2012 typing-system whose presence
> obstructs what you are seeking along with why these presences obstruct
> your vision

You mean type system things which better be removed from the language?

1. Accessibility checks
2. Anonymous access types
3. Dynamic predicates
4. Limited types "return"
5. Interfaces (superfluous, abstract types, plus MI do the job)

> B) the lacks within the Ada2012 typing-system whose absence obstructs what
> you are seeking along with why these absences obstruct your vision.

1. Enforced [de/con]structors and for all types, with arguments
2. Class-wide [de/con]structors (a way to dispatch upon construction and
finalization)
3. Discriminants of any type for any type
4. Assignment as a proper primitive operation (MD)
5. Attributes as proper primitive operations (e.g. Image)
6. MD (difficult)
7. MI (easy)
8. Delegation (instead of manually written wrappers)
9. Interface inheritance from concrete types (dropping representation)
10. Tagged classes of non-tagged types (classes for all types)
11. Abstract array, record, access types with interfaces and classes of
12. Proper abstract index types with interfaces and classes of
13. Proper range and slice types with interfaces and classes of
14. Tagged task and protected types
15. Proper procedural types (instead of access types in downward closures)
16. In general, return back to named typing (from creeping types inference
and structural equivalence)

> Rather, please focus on only those few portions that could be applied to
> great advantage in Ada without wholesale replacement of Ada's entire
> typing-system (or worse, Ada's entire runtime semantic system) with, say,
> OCaml's entire typing-system, warts & all.

The goal should be a leaner and more powerful type system with the present
type system implemented on top of it at the library level, 100% backward
compatible.

P.S. Putting up such lists is a completely wasted time, as nothing will
ever happen, until somebody with the influence of Ichbiah or Taft will nuke
the swamp again.

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

  reply	other threads:[~2013-10-22 16:30 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-21 19:51 Making sense of predicates Dmitry A. Kazakov
2013-10-22  4:35 ` Randy Brukardt
2013-10-22  8:19   ` Dmitry A. Kazakov
2013-10-22 12:53     ` Georg Bauhaus
2013-10-22 13:38       ` Dmitry A. Kazakov
2013-10-22 20:38         ` Georg Bauhaus
2013-10-24  4:03     ` Randy Brukardt
2013-10-24  7:26       ` Dmitry A. Kazakov
2013-10-22  7:14 ` Shark8
2013-10-22  7:35   ` Jacob Sparre Andersen
2013-10-22 17:26     ` Shark8
2013-10-23  7:56       ` Jacob Sparre Andersen
2013-10-24  3:58       ` Randy Brukardt
2013-10-22  8:11   ` Dmitry A. Kazakov
2013-10-22  7:20 ` Jacob Sparre Andersen
2013-10-22  7:57   ` Dmitry A. Kazakov
2013-10-22 14:52     ` Dan'l Miller
2013-10-22 16:30       ` Dmitry A. Kazakov [this message]
2013-10-22 17:15         ` Dan'l Miller
2013-10-22 19:26           ` Dmitry A. Kazakov
2013-10-22 19:49             ` J-P. Rosen
2013-10-22 21:30             ` Dan'l Miller
2013-10-23  9:25               ` Dmitry A. Kazakov
replies disabled

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