comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: RFC: Prototype for a user threading library in Ada
Date: Sun, 26 Jun 2016 08:26:40 +0200
Date: 2016-06-26T08:26:40+02:00	[thread overview]
Message-ID: <nknsjh$1681$1@gioia.aioe.org> (raw)
In-Reply-To: 3a978db3-e775-4e4a-acc0-8082f7376069@googlegroups.com

On 2016-06-26 04:02, rieachus@comcast.net wrote:
> On Saturday, June 25, 2016 at 3:11:57 AM UTC-4, Dmitry A. Kazakov wrote:
>
>> The problem at hand is that parallel asynchronous code cannot be
>> designed in a reasonable way, at all. It is written it in a form of a
>> state machine, logically and technically *gotos*. It is the state of
>> software engineering of 70s wrapped in Ada constructs.
>
> Um, I've always thought it funny that Ada state machines and Ada
> tasking mix nicely, and both need to be at the library level to work
> efficiently. I always used LALR on Multics which could handle LALR(k)
> grammars for any k, and even some non-LR grammars. But it could also
> take a source file which mixed PL/I, C, Fortran, or Ada code with the
> grammar productions, and generate a (huge) source file which used a
> table driven engine.
>
> If, and I understand it is a big if you could map the input to one
> or  more independent sequential file, everything was wonderful. However if
> you wanted to handle interacting inputs you were up a creek. This
> limitation is not as bad as it sounds. To take am aircraft radio, there
> would be several subsystems that could be handled separately. The
> interrupt causing events (from operator input) could be mixed into the
> data stream: operating_state ::= (receiver_input) | (transmission)
> |(interrupt) (operating_state);
>
> I can't imagine building a complex real-time system without a
> grammar  tool and Lui Sha & Goodenough real-time scheduling support tools.

In my opinion formal grammars is one of the most useless CS invention, 
but that is beside the point. Which is yes, it would be interesting to 
try co-routines for writing parsers. It may work or not.

 From the software design POV it is a choice what is to be handled as a 
set of callbacks vs. as a control flow sequence. Co-routine is a method 
to convert callback into a sequence. It is not always useful and not 
always possible. If callbacks are short and independent, there is little 
volatile state to share and keep between callback they better remain 
callbacks.

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

  reply	other threads:[~2016-06-26  6:26 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17  9:44 RFC: Prototype for a user threading library in Ada Hadrien Grasland
2016-06-17 16:18 ` Niklas Holsti
2016-06-17 16:46   ` Dmitry A. Kazakov
2016-06-18  8:16     ` Hadrien Grasland
2016-06-18  8:47       ` Dmitry A. Kazakov
2016-06-18  9:17         ` Hadrien Grasland
2016-06-18 11:53           ` Dmitry A. Kazakov
2016-06-20  8:23             ` Hadrien Grasland
2016-06-20  9:22               ` Dmitry A. Kazakov
2016-06-23  1:42       ` Randy Brukardt
2016-06-23  8:39         ` Dmitry A. Kazakov
2016-06-23 22:12           ` Randy Brukardt
2016-06-24  7:34             ` Dmitry A. Kazakov
2016-06-24 23:00               ` Randy Brukardt
2016-06-25  7:11                 ` Dmitry A. Kazakov
2016-06-26  2:02                   ` rieachus
2016-06-26  6:26                     ` Dmitry A. Kazakov [this message]
2016-06-24  0:38           ` rieachus
2016-06-25  6:28             ` Dmitry A. Kazakov
2016-06-26  1:34               ` rieachus
2016-06-26  3:21               ` Randy Brukardt
2016-06-26  6:15                 ` Dmitry A. Kazakov
2016-06-28 20:44                   ` Anh Vo
2016-07-02  4:13                   ` Randy Brukardt
2016-07-02 10:25                     ` Dmitry A. Kazakov
2016-07-05 21:53                       ` Randy Brukardt
2016-07-06  9:25                         ` Dmitry A. Kazakov
2016-07-07  0:32                           ` Randy Brukardt
2016-07-07  6:08                             ` Niklas Holsti
2016-07-08  0:03                               ` Randy Brukardt
2016-07-08  7:32                                 ` Dmitry A. Kazakov
2016-07-11 19:40                                   ` Randy Brukardt
2016-07-12  8:37                                     ` Dmitry A. Kazakov
2016-07-12 21:31                                       ` Randy Brukardt
2016-07-08 20:17                                 ` Niklas Holsti
2016-06-24 21:06         ` Hadrien Grasland
2016-06-26  3:09           ` Randy Brukardt
2016-06-26  6:41             ` Dmitry A. Kazakov
2016-07-02  4:21               ` Randy Brukardt
2016-07-02 10:33                 ` Dmitry A. Kazakov
2016-07-05 21:24                   ` Randy Brukardt
2016-07-06 13:46                     ` Dmitry A. Kazakov
2016-07-07  1:00                       ` Randy Brukardt
2016-07-07 14:23                         ` Dmitry A. Kazakov
2016-07-07 23:43                           ` Randy Brukardt
2016-07-08  8:23                             ` Dmitry A. Kazakov
2016-07-11 19:44                               ` Randy Brukardt
2016-06-26  9:09             ` Hadrien Grasland
2016-07-02  4:36               ` Randy Brukardt
2016-07-02  5:30                 ` Simon Wright
2016-07-05 21:29                   ` Randy Brukardt
2016-07-02 11:13                 ` Hadrien Grasland
2016-07-02 13:18                   ` Dmitry A. Kazakov
2016-07-02 16:49                     ` Hadrien Grasland
2016-07-02 21:33                       ` Niklas Holsti
2016-07-03 20:56                         ` Hadrien Grasland
2016-07-02 17:26                   ` Niklas Holsti
2016-07-02 21:14                   ` Niklas Holsti
2016-07-03  7:42                     ` Hadrien Grasland
2016-07-03  8:39                       ` Dmitry A. Kazakov
2016-07-03 21:15                         ` Hadrien Grasland
2016-07-04  7:44                           ` Dmitry A. Kazakov
2016-07-05 21:38                   ` Randy Brukardt
2016-06-21  2:40     ` rieachus
2016-06-21  7:34       ` Dmitry A. Kazakov
2016-06-18  7:56   ` Hadrien Grasland
2016-06-18  8:33 ` Hadrien Grasland
2016-06-18 11:38 ` Hadrien Grasland
2016-06-18 13:17   ` Niklas Holsti
2016-06-18 16:27   ` Jeffrey R. Carter
2016-06-20  8:42 ` Hadrien Grasland
2016-07-10  0:45 ` rieachus
replies disabled

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