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: Wed, 20 Jun 2018 12:39:45 -0700 (PDT)
Date: 2018-06-20T12:39:45-07:00	[thread overview]
Message-ID: <46f00d2b-7c84-4432-b7d8-5e26f25c8ece@googlegroups.com> (raw)
In-Reply-To: <06e9a2de-7d05-41ce-a459-c39855d429fd@googlegroups.com>

On Wednesday, June 20, 2018 at 2:37:31 PM UTC-5, Dan'l Miller wrote:
> On Wednesday, June 20, 2018 at 1:58:54 PM UTC-5, Luke A. Guest wrote:
> > Dan'l Miller <et> wrote:
> > 
> > >> * Tasks
> > > 
> > > So does C++17.
> > > 
> > >> * Protected types and objects
> > > 
> > > So does C++98.
> > >
> > 
> > Hardly. You can’t compare Ada’s high level tasking to the thin veneer over
> > threading that’s in C++. Come on.
> 
> Ummmm, apparently you are stuck in 1992 or something.  C++ ain't your father's Oldsmobile anymore, to paraphrase the old television commercials.  Time marched onward in C++, as shown in the timeline at the URL below.  Threads-of-execution, sequence points, thread-local storage, condition variables, multireader-uniwriter locks, threadsafe STL, atomic smart pointers, futures, latches & barriers, coroutines, transactional memory, task blocks (i.e., rendezvous), plus inheriting C99's and C11's work on multithreading and lack-of-aliasing.
> http://www.modernescpp.com/index.php/multithreading-in-c-17-and-c-20
> 
> Your point would be well taken if you were to shift to stability.  Ada pays especial attention to making sure that everything works together, whereas C++ plays the "undefined behavior" card too often, especially regarding multithreading interacting with other language features, most especially multithreading interacting with other undefined-behavior-swiss-cheese language features.  C++ having a language feature and C++ having a language feature that isn't like stepping gingerly through a land-mine field are 2 entirely different things.
> 
> > >> * Discriminants
> > >> * Elaboration
> > 
> > Oh I forgot that doctors and stir sections are equivalent to Ada’s
> > elaboration. Those sections just call the constructors and destructors.m,
> > it’s very primitive. You also can’t do complex initialisations in C++ like
> > in Ada.
> 
>   I did amend Jeffrey Carter's claim that Ada has a quite deluxe elaboration feature-set that very few if any other languages attempt to provide.  Perhaps you intended this reply to be inserted after some other topic instead.

I did *not* amend Jeffrey Carter's claim that Ada has a quite deluxe elaboration feature-set ...

> > > * Moderately generous reflection via 'Tags
> > 
> > Pick any C++ lib which hasn’t reimplemented this!
> 
> An arbitrary C++ lib in the C++ user community is not ISO14488 standard C++ in the compiler.  The OP is talking about compilers implementing language standards, not some arbitrary library out in the user community.
> 
> > > * Numerous aspects (historically standardized as pragmas)
> > > 
> > > So does C++11, C++14, and C++17.
> > 
> > Really? Which?
> 
> http://en.cppreference.com/w/cpp/language/attributes
> 
> 12 of them standardized so far up to C++17, more likely coming in C++20:
> alignas, noreturn, carries_dependency, deprecated, deprecated("reason"), fallthrough, nodiscard, maybe_unused, likely, unlikely, no_unique_address, optimize_for_synchronized
> 
> ... plus many more proprietary ones in GNU, IBM, and Microsoft C++ compilers.
> 
> Btw, with the exception of alignas and deprecated, C++'s attributes that have been standardized so far seem more hackerish than Ada's more pure-essence-of-reality aspects/pragmas.  But to the OP's question (and refuting Carter's claim), both C++ and Ada have aspects/attributes that need rather similar difficulty of implementation as popping up sporadically in the grammar, complicating what was a pristine much-simpler grammar decades ago.

  reply	other threads:[~2018-06-20 19:39 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 [this message]
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
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