comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Why are Ada compilers difficult to write ?
Date: Thu, 28 Jun 2018 05:41:12 -0700 (PDT)
Date: 2018-06-28T05:41:12-07:00	[thread overview]
Message-ID: <af14f437-f72e-4188-a05b-621e715c4ac4@googlegroups.com> (raw)
In-Reply-To: <be19e728-9d48-48f8-9e98-ce71678cb22a@googlegroups.com>

On Thursday, June 28, 2018 at 6:54:29 AM UTC-5, Mehdi Saada wrote:
> Could all of you STOP talking about other language, please ? Or at least not in a way that require
> ACTUAL knowledge of these ?
> State your points in Ada terms at least, or neutral computer science terms. So that maybe, outsiders
> could understand with more ease, what the heck you're talking about, especially when I have the
> intuition that what you're saying isn't so complicated in fact.

The OP of the “Why are Ada compilers difficult to write?” thread explicitly requests comparing Ada compilers to other languages' compilers at a reason-by-reason level.  Perhaps this whole thread is not for you.

The OP of the “Ada successor language” thread explicitly requests considering what a next-generation Ada would look like.  Part of this ngAda is insularly inward looking:  what Ada-esque features have been requested in AIs but blocked for various reasons.  But the bigger part of this ngAda is to outward looking:   what nonAda features (from •other• languages; from theoretical work; from •nonAda• luminaries) might be good for ngAda to have.  Since ngAda is not strictly Ada, perhaps that whole thread is not for you either.

And perhaps most importantly for Ada's continued existence:  attempting to suppress all speech about how to import currently-nonAda concepts into Ada to improve Ada to survive through this period of serious competition and encroachment from other languages catching up or surpassing Ada (at least in those other languages' propaganda) is a direct threat to Ada's future existence, or at least its future relevance.

In general in the world, there are 2 systems regarding speech:
1) totalitarian suppression of certain categories of speech (e.g., speak only in historically Ada{83,95,2005,2012} terms), so that only the ‘approved’ speech remains
versus
2) the USA's first amendment's fostering of multiple voices speaking a diversity of thoughts so that at least some subset of the speech starts saying what needs to be heard, contemplated, and acted upon, so in turn that speech rises as the cream to the top, leaving bad speech as a precipitate that sinks to the bottom.

Nations that follow scheme #1 usually die out.  Nations that follow scheme #2 tend to flourish.  The same with communities regarding programming languages.

On Thursday, June 28, 2018 at 7:08:39 AM UTC-5, Vincent wrote:
> Le lundi 25 juin 2018 22:07:16 UTC+2, Dirk Craeynest a écrit :
> >
> > >> At Ada-Europe 2018, Maroua Maalej presented a paper with the title "Safe
> > >> Dynamic Memory Management in Ada and SPARK".  It explains how you can
> >
> > 
> > Paper:
> > https://link.springer.com/content/pdf/10.1007%2F978-3-319-92432-8_3.pdf
> 
> I am a little bit shocked by this proposal :
> 
> 1. The "Owning Object Aspect" changes the semantics of Access types in Ada. 
> X := Y; would now mean that 
>  - X'New = Y'Old
>  - Y'New = null 

That would be a linear type system:

https://en.wikipedia.org/wiki/Substructural_type_system

There are some concerns that to accomplish its safety-critical goals, a few portions of Ada are set on the wrong foundations.  (AJPO, HOLWG, and Ada9X were decades ago; their overseeing wisdom might be showing its staleness by now.)  The competition from Rust's affine type system (including Rust's borrow checker) might be motivating the Ada community to consider more-formal embracing of the categories of type systems that arose since HOLWG and Jean Ichbiah's era of work during the 1970s.  That Wikipedia article and its hyperlinks therein introduces 4:  {linear, affine, relevant, ordered}.

> 2. Shouldn't we create a new category of Owning Types instead of a new special case of access values ? And add a new operator like :
> X <- Y;
> 
> 3. In fact shouldn't this idea of owning object be instatiated in Ada as limited types ? Wasn't the purpose of limited types to precisely forbid assignement so as to avoid aliasing of dynamically allocated objects ? Like tasks types for instance, or protected types...

I agree that there should be some overt syntax for placing Ada in the linear-typing mode instead of its access's historical mode.


  parent reply	other threads:[~2018-06-28 12:41 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-19 21:33 Why are Ada compilers difficult to write ? Vincent
2018-06-19 21:43 ` Paul Rubin
2018-06-19 22:11   ` Lucretia
2018-06-24 17:33     ` Paul Rubin
2018-06-24 17:39       ` Lucretia
2018-06-19 22:01 ` Jacob Sparre Andersen
2018-06-19 22:18   ` Lucretia
2018-06-21 14:02     ` Jacob Sparre Andersen
2018-06-21 17:20       ` Lucretia
2018-06-19 22:17 ` Lucretia
2018-06-19 22:34 ` Dan'l Miller
2018-06-22 13:01   ` Alejandro R. Mosteo
2018-06-20  8:33 ` gautier_niouzes
2018-06-20 15:54 ` Jeffrey R. Carter
2018-06-20 17:54   ` Dan'l Miller
2018-06-20 18:18     ` Dan'l Miller
2018-06-20 18:58     ` Luke A. Guest
2018-06-20 19:37       ` Dan'l Miller
2018-06-20 19:39         ` Dan'l Miller
2018-06-20 19:50         ` Dan'l Miller
2018-06-20 21:26         ` Luke A. Guest
2018-06-27 14:19         ` Olivier Henley
2018-06-27 15:34           ` Dan'l Miller
2018-06-27 16:26             ` Olivier Henley
2018-06-27 16:50               ` Dan'l Miller
2018-06-27 17:53                 ` Olivier Henley
2018-06-27 18:49                   ` Dan'l Miller
2018-06-28 11:54                     ` Mehdi Saada
2018-06-29  3:34                 ` Paul Rubin
2018-06-29 16:36                 ` G. B.
2018-06-29 17:02                   ` Dan'l Miller
2018-06-21 10:44     ` Marius Amado-Alves
2018-06-21 12:45       ` Dan'l Miller
2018-06-21 21:08         ` Paul Rubin
2018-06-21 21:42           ` Dan'l Miller
2018-06-21 22:01             ` Simon Wright
2018-06-21 23:04               ` Dan'l Miller
2018-06-22  0:20                 ` Dan'l Miller
2018-06-22  3:41                 ` Paul Rubin
2018-06-29 21:19                   ` Randy Brukardt
2018-06-22  3:44                 ` Paul Rubin
2018-06-22 21:57                   ` Dan'l Miller
2018-06-22 23:15                     ` Luke A. Guest
2018-06-23  1:03                       ` Dan'l Miller
2018-06-23  1:49                         ` Luke A. Guest
2018-06-23  2:54                           ` Dan'l Miller
2018-06-23 14:48                             ` Dennis Lee Bieber
2018-06-23 14:41                         ` Dennis Lee Bieber
2018-06-25  5:55                           ` Simon Clubley
2018-06-29 21:22                     ` Randy Brukardt
2018-06-22  3:31             ` Paul Rubin
2018-06-22 16:44         ` antispam
2018-06-22 13:11     ` Lucretia
2018-06-22 17:10       ` Simon Clubley
2018-06-22 18:00         ` Lucretia
2018-06-25  5:48           ` Simon Clubley
2018-06-25  8:46             ` Alejandro R. Mosteo
2018-06-25 13:23             ` Lucretia
2018-06-25 17:24               ` Simon Clubley
2018-06-25 14:59             ` Dan'l Miller
2018-06-25 17:32               ` Simon Clubley
2018-06-29 21:26             ` Randy Brukardt
2018-06-23  5:56         ` J-P. Rosen
2018-06-23 12:44           ` Dan'l Miller
2018-06-23 16:14             ` Shark8
2018-06-23 18:12               ` Dan'l Miller
2018-06-23 18:47                 ` Shark8
2018-06-23 19:35                   ` Simon Wright
2018-06-25  8:51               ` Alejandro R. Mosteo
2018-06-24 13:41             ` Jacob Sparre Andersen
2018-06-25  6:04               ` Simon Clubley
2018-06-25  6:31                 ` Jacob Sparre Andersen
2018-06-25 13:27               ` Lucretia
2018-06-25 20:07                 ` Dirk Craeynest
2018-06-28 12:08                   ` Vincent
2018-06-28 12:21                     ` Simon Wright
2018-06-28 12:24                     ` Luke A. Guest
2018-06-28 12:41                     ` Dan'l Miller [this message]
2018-06-28 14:43                     ` J-P. Rosen
2018-06-28 18:26                       ` Dmitry A. Kazakov
2018-06-29 21:35               ` Randy Brukardt
2018-06-29 21:29         ` Randy Brukardt
2018-06-21 17:42 ` Pascal Obry
2018-06-21 20:18   ` Dan'l Miller
2018-06-22  5:01     ` J-P. Rosen
2018-06-22  7:16       ` Dmitry A. Kazakov
2018-06-22 11:46       ` Dan'l Miller
2018-06-22 12:11         ` Dmitry A. Kazakov
2018-06-22 12:35           ` Dan'l Miller
2018-06-22 15:55             ` Dmitry A. Kazakov
2018-06-29 21:43         ` Randy Brukardt
2018-06-25 15:33 ` Dan'l Miller
2018-10-01 18:09 ` Tucker Taft
2018-10-01 18:51   ` Lucretia
2018-10-02 12:58     ` Alejandro R. Mosteo
2018-10-02 14:23       ` Lucretia
replies disabled

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