comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: Ada platforms and pricing, was: Re: a new language, designed for safety !
Date: Mon, 23 Jun 2014 12:21:11 -0700 (PDT)
Date: 2014-06-23T12:21:11-07:00	[thread overview]
Message-ID: <08f83f70-ccb1-45ec-8a4c-46e3442745b8@googlegroups.com> (raw)
In-Reply-To: <18et97c0c22vc$.y98lxxfblijn.dlg@40tude.net>

On Monday, June 23, 2014 12:14:24 PM UTC-5, Dmitry A. Kazakov wrote:
> On Mon, 23 Jun 2014 12:17:38 +0100, Simon Wright wrote:
> > "Dmitry A. Kazakov" writes:
> >> Programming a state machine is turning all design upside down. If
> >> there were user-defined task support one could program this as if it
> >> were in proper tasks.
> 
> > I find it easier to think about state machines as state machines rather
> > than by encoding them using the program counter! I geuss it depends on
> > your starting point.

In the spirit of lambasting the lack of direct representation of finite-state machines (FSMs) in Ada:

  A programmer should not need to go through mental gymnastics to represent a crystal-clear analysis construct (e.g., an FSM) in some sort of contortion just because someone in 1978 omitted it from an excessively-sequential imperative programming language because excessively-sequential imperative programming languages encouraging vast call-trees of subroutines per thread of execution were in vogue during the 1970s and adjacent decades.

Perhaps Ada202X can do something more than mere dotting of "i"s and crossing of "t"s so as to provide a direct intuitive representation of FSMs within Ada (assuming that Ada does not already have such an intuitive design idiom for FSMs, as potentially explored below).  Direct intuitive representation of FSMs would be highly useful in Ada's historically-most-frequent deployments:  embedded realtime systems interacting with hardware.  The Ada202X compiler could mathematically-prove some aspects of sanity of the FSM, giving compile-time errors for certain categories of glaring design errors in the FSM a la the numerous other compile-time assurances for safety-critical systems that are already part of Ada.  (Plus it would give Ada a special sauce that very few other compiled languages have in either its core language or in its standard library, Erlang & C++'s Boost notwithstanding.  Btw, Ada does need a few more claims to fame to be competitive with the other current programming-language darlings that get asked to dance on the dance-floor more often than Ms. Ada does.  Direct intuitive representation of FSMs with compile-time error-checking [as a directed graph in graph-theory] could be one of those claims to fame.)

> As an example consider reading from a stream without blocking. When there
> is no more data available you switch to another co-routine (reading another
> stream). This is programmed as if reading from the stream was blocking. The
> co-routine is continued when more data become available. On top of these
> stream could be a mountain of protocols or a whole Ada compiler taking the
> stream as a source. Doing this as a state machine, upside-down driven by
> incoming characters would be extremely tedious.
> 
> The idea of user-defined tasking is that the user would also provide the
> pool to allocate the task stack and would activate/deactivate his tasks.

In the spirit of humbly learning something new and appreciating any potential beauty:

  Dmitry, do you advocate the use of "co-routines" (as Ada tasks, if I understand you correctly) for the modeling of arbitrarily-complex finite-state machines (FSMs)?  If so (and if it scales), perhaps you can explain the design idiom more completely so that it handles FSMs of arbitrary complexity.  Or perhaps you can provide a URL to an academic paper that describes representing FSMs of arbitrary complexity via "co-routines".

It seems that your usage here of "co-routines" to represent FSMs somewhat resembles C.A.R. Hoare's monitors, but perhaps I am taking your "co-routines" in a different direction than you intend.  If resembling Hoare's monitors (or POSIX's condition variables) [and assuming that each Ada task in the set of co-routines takes on the role of each state in an FSM], how does this idiom scale well in so far as not having immensely-complex conditional-branching tests for representing each task's/state's traversal of a link/edge in arbitrarily-complex FSMs.

  reply	other threads:[~2014-06-23 19:21 UTC|newest]

Thread overview: 285+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-03  1:37 a new language, designed for safety ! Nasser M. Abbasi
2014-06-04  0:21 ` Luke A. Guest
2014-06-04  1:19   ` Dan'l Miller
2014-06-04  4:05     ` Dan'l Miller
2014-06-04  6:59       ` Georg Bauhaus
2014-06-04  4:12     ` Dan'l Miller
2014-06-04  5:44   ` Jeffrey Carter
2014-06-04 15:25 ` Dan'l Miller
2014-06-04 19:43   ` Robert A Duff
2014-06-04 21:32     ` Simon Clubley
2014-06-05  9:13     ` Nasser M. Abbasi
2014-06-05 15:33       ` Adam Beneschan
2014-06-05 19:19         ` Jeffrey Carter
2014-06-05 15:55       ` Adam Beneschan
2014-06-05 19:15         ` sbelmont700
2014-06-05 22:40       ` Robert A Duff
2014-06-06 15:13         ` Dan'l Miller
2014-06-06 17:51           ` G.B.
2014-06-06 18:39             ` Niklas Holsti
2014-06-06 19:43               ` Robert A Duff
2014-06-06 20:42                 ` Dmitry A. Kazakov
2014-06-08  9:40               ` Georg Bauhaus
2014-06-08 13:56                 ` Robert A Duff
2014-06-08 16:13                   ` Dan'l Miller
2014-06-08 17:22                     ` J-P. Rosen
2014-06-08 19:36                     ` Dmitry A. Kazakov
2014-06-09  5:30                       ` Niklas Holsti
2014-06-09  7:06                         ` Dmitry A. Kazakov
2014-06-09 16:07                           ` Dan'l Miller
2014-06-10  7:44                             ` Dmitry A. Kazakov
2014-06-10 16:31                               ` Dan'l Miller
2014-06-10 16:52                                 ` Dmitry A. Kazakov
2014-06-06 18:52           ` Robert A Duff
2014-06-06 22:50             ` Simon Clubley
2014-06-23  0:40       ` Yannick Duchêne (Hibou57)
2014-06-23  0:43         ` Yannick Duchêne (Hibou57)
2014-06-23  0:51           ` Shark8
2014-06-23  1:47             ` Nasser M. Abbasi
2014-06-23  6:46               ` Shark8
2014-06-23 14:17             ` Peter Chapin
2014-06-23 15:39               ` Dan'l Miller
2014-06-23 17:04               ` Dmitry A. Kazakov
2014-06-05  8:26   ` Georg Bauhaus
2014-06-09 10:03 ` Pascal Obry
2014-06-10  9:36   ` Stephen Leake
2014-06-10 10:48     ` Luke A. Guest
2014-06-10 18:31       ` Pascal Obry
2014-06-23  1:01         ` Yannick Duchêne (Hibou57)
2014-06-10 12:28     ` Simon Clubley
2014-06-10 12:42       ` Lucretia
2014-06-10 12:50         ` J-P. Rosen
2014-06-10 13:00           ` Lucretia
2014-06-10 14:43             ` Brad Moore
2014-06-10 15:15               ` J-P. Rosen
2014-06-10 20:28                 ` Simon Clubley
2014-06-10 20:39                   ` Pascal Obry
2014-06-10 21:04                     ` Simon Clubley
2014-06-11  7:17                       ` Pascal Obry
2014-06-25 22:37                         ` Yannick Duchêne (Hibou57)
2014-06-10 22:09                   ` Luke A. Guest
2014-06-12 23:58                     ` Shark8
2014-06-13  1:28                       ` Luke A. Guest
2014-06-25 22:41                         ` Yannick Duchêne (Hibou57)
2014-06-26  1:36                           ` Shark8
2014-06-26 10:19                           ` J-P. Rosen
2014-06-25 22:40                     ` Yannick Duchêne (Hibou57)
2014-06-26  7:39                       ` Luke A. Guest
2014-06-26  7:42                         ` Yannick Duchêne (Hibou57)
2014-06-26 10:07                           ` Luke A. Guest
2014-06-26 10:18                       ` J-P. Rosen
2014-07-02 22:06                         ` Randy Brukardt
2014-06-11  0:16                   ` Jeffrey Carter
2014-06-11  7:29                     ` Simon Clubley
2014-06-11 19:22                       ` Jeffrey Carter
2014-06-12 11:48                         ` Simon Clubley
2014-06-12 16:59                           ` Jeffrey Carter
2014-06-10 15:33               ` Lucretia
2014-06-10 16:31                 ` Dmitry A. Kazakov
2014-06-10 19:34                   ` Tero Koskinen
2014-06-11  6:46                     ` Natasha Kerensikova
2014-06-11  8:45                     ` Dmitry A. Kazakov
2014-06-11  9:05                       ` Simon Wright
2014-06-11 12:09                       ` Simon Clubley
2014-06-11 12:34                         ` Dmitry A. Kazakov
2014-06-11 12:42                           ` björn lundin
2014-06-11 13:04                           ` Lucretia
2014-06-11 12:11                     ` björn lundin
2014-06-10 19:49                 ` J-P. Rosen
2014-06-10 22:09                   ` Luke A. Guest
2014-06-11  9:01                     ` Simon Wright
2014-06-16 16:22                     ` Randy Brukardt
2014-06-16 17:11                       ` Ada platforms and pricing, was: " Simon Clubley
2014-06-17 19:34                         ` Randy Brukardt
2014-06-17 20:16                           ` Jeffrey Carter
2014-06-18  5:56                             ` Georg Bauhaus
2014-06-18  6:34                               ` Nasser M. Abbasi
2014-06-18 19:57                           ` Simon Clubley
2014-06-19  3:46                             ` Randy Brukardt
2014-06-22 19:50                               ` Simon Clubley
2014-06-22 23:38                                 ` Randy Brukardt
2014-06-23  6:18                                   ` Niklas Holsti
2014-06-23  7:42                                     ` Dmitry A. Kazakov
2014-06-23 11:17                                       ` Simon Wright
2014-06-23 17:14                                         ` Dmitry A. Kazakov
2014-06-23 19:21                                           ` Dan'l Miller [this message]
2014-06-23 20:14                                             ` Dmitry A. Kazakov
2014-06-23 21:48                                               ` Simon Wright
2014-06-24  1:18                                                 ` Nasser M. Abbasi
2014-06-24  2:15                                                   ` Jeffrey Carter
2014-06-24  7:51                                                 ` Dmitry A. Kazakov
2014-06-23 21:52                                               ` Simon Wright
2014-06-24  1:04                                                 ` Dan'l Miller
2014-06-26  3:24                                               ` Yannick Duchêne (Hibou57)
2014-06-26  3:27                                                 ` Yannick Duchêne (Hibou57)
2014-06-24  1:01                                             ` Shark8
2014-06-24 10:24                                               ` Simon Wright
2014-06-24 11:25                                                 ` Dan'l Miller
2014-06-24 15:55                                                   ` Shark8
2014-06-24 18:06                                                     ` Dan'l Miller
2014-06-24 18:44                                                       ` Dan'l Miller
2014-06-24 18:49                                                       ` Shark8
2014-06-24 21:25                                                         ` Dan'l Miller
2014-06-24 16:48                                                   ` Simon Wright
2014-06-26  3:41                                                   ` Yannick Duchêne (Hibou57)
2014-06-23 20:40                                           ` Simon Wright
2014-06-24  7:48                                             ` Dmitry A. Kazakov
2014-06-23 11:48                                       ` G.B.
2014-06-24  7:52                                       ` Maciej Sobczak
2014-06-24  8:33                                         ` Dmitry A. Kazakov
2014-07-01 10:28                                           ` Simon Wright
2014-07-01 12:41                                             ` Dmitry A. Kazakov
2014-06-26  2:50                                         ` Yannick Duchêne (Hibou57)
2014-06-26 10:04                                           ` G.B.
2014-06-26 18:20                                             ` Yannick Duchêne (Hibou57)
2014-06-25 17:24                                       ` Niklas Holsti
2014-06-26  2:43                                       ` Yannick Duchêne (Hibou57)
2014-06-23  7:31                                   ` Dmitry A. Kazakov
2014-06-23 20:08                                     ` Randy Brukardt
2014-06-23 20:20                                       ` Dmitry A. Kazakov
2014-06-24 11:56                                         ` Simon Clubley
2014-06-24 12:13                                   ` Simon Clubley
2014-06-17 20:27                         ` Luke A. Guest
2014-06-18  7:09                           ` Natasha Kerensikova
2014-06-18 10:32                             ` J-P. Rosen
2014-06-18 11:50                               ` Brian Drummond
2014-06-18 17:34                               ` Natasha Kerensikova
2014-06-18 17:56                                 ` Peter Chapin
2014-06-19  7:22                                   ` Natasha Kerensikova
2014-06-19 12:02                                     ` Peter Chapin
2014-06-20  7:03                                       ` Natasha Kerensikova
2014-06-19 13:33                                     ` Lucretia
2014-06-20  7:07                                       ` Natasha Kerensikova
2014-06-20 11:44                                         ` Lucretia
2014-06-20 12:47                                           ` Dennis Lee Bieber
2014-06-18 18:24                                 ` Lucretia
2014-06-19  7:26                                   ` Natasha Kerensikova
2014-06-18 18:47                                 ` Dmitry A. Kazakov
2014-06-18 20:17                                   ` Simon Clubley
2014-06-18 22:51                                     ` Simon Clubley
2014-06-19  8:51                                       ` Dmitry A. Kazakov
2014-06-19  3:35                                   ` Randy Brukardt
2014-06-19  7:34                                   ` Natasha Kerensikova
2014-06-19  8:19                                     ` J-P. Rosen
2014-06-19  9:11                                     ` Dmitry A. Kazakov
2014-06-19 12:08                                       ` Peter Chapin
2014-06-19 13:48                                         ` Dmitry A. Kazakov
2014-06-19 20:59                                         ` Randy Brukardt
2014-06-26  2:04                                           ` Yannick Duchêne (Hibou57)
2014-06-26 22:24                                             ` Shark8
2014-06-26 22:44                                               ` Yannick Duchêne (Hibou57)
2014-06-26 22:51                                                 ` Shark8
2014-06-27 12:43                                               ` Ada platforms and pricing, was: Re: a new language, anon
2014-06-19 21:13                                         ` Ada platforms and pricing, was: Re: a new language, designed for safety ! Robert A Duff
2014-06-19 23:47                                           ` Adam Beneschan
2014-06-19 21:03                                     ` Randy Brukardt
2014-06-20  7:26                                       ` Natasha Kerensikova
2014-06-20 19:50                                         ` Randy Brukardt
2014-06-21  8:35                                           ` Natasha Kerensikova
2014-06-22 23:26                                             ` Randy Brukardt
2014-06-26  2:16                                             ` Yannick Duchêne (Hibou57)
2014-06-20  9:54                                   ` anon
2014-06-20 12:25                                     ` Lucretia
2014-06-20 19:32                                       ` Ada platforms and pricing, was: Re: a new language, designed for anon
2014-06-18 17:01                             ` Ada platforms and pricing, was: Re: a new language, designed for safety ! Jeffrey Carter
2014-06-19  7:53                               ` Natasha Kerensikova
2014-06-19 21:10                                 ` Randy Brukardt
2014-06-19 22:27                                   ` Luke A. Guest
2014-06-16 21:31                       ` Luke A. Guest
2014-06-16 23:02                         ` Jeffrey Carter
2014-06-17 11:14                           ` gvdschoot
2014-06-17 17:42                             ` Jeffrey Carter
2014-06-17 12:56                           ` Simon Clubley
2014-06-17 17:43                             ` Jeffrey Carter
2014-06-17 19:46                               ` Jacob Sparre Andersen
2014-06-26  1:20                                 ` Yannick Duchêne (Hibou57)
2014-06-17 19:41                             ` Randy Brukardt
2014-06-17 20:08                               ` Jeffrey Carter
2014-06-18  5:46                                 ` Georg Bauhaus
2014-06-18  8:02                                   ` Dmitry A. Kazakov
2014-06-18  9:34                                     ` G.B.
2014-06-18 12:30                                       ` Dmitry A. Kazakov
2014-06-18 14:43                                         ` G.B.
2014-06-18 16:39                                           ` Dmitry A. Kazakov
2014-06-20  8:27                                             ` Georg Bauhaus
2014-06-25 22:43                 ` Yannick Duchêne (Hibou57)
2014-06-12 23:56               ` Shark8
2014-06-10 20:22         ` Simon Clubley
2014-06-10 21:14           ` Simon Clubley
2014-06-10 22:09             ` Luke A. Guest
2014-06-10 22:09           ` Luke A. Guest
2014-06-11  0:05           ` Jeffrey Carter
2014-06-11  7:32             ` Simon Clubley
2014-06-11 16:50               ` G.B.
2014-06-11 19:20               ` Jeffrey Carter
2014-06-12  7:01                 ` Simon Clubley
2014-06-12 17:46                   ` Jeffrey Carter
2014-06-12 21:40                     ` Simon Clubley
2014-06-13  6:37                       ` J-P. Rosen
2014-06-13 12:03                         ` Simon Clubley
2014-06-13 15:34                           ` Lucretia
2014-06-13 17:00                             ` Simon Clubley
2014-06-13 22:21                           ` Brian Drummond
2014-06-14 20:41                             ` Simon Clubley
2014-06-15  6:26                               ` Tero Koskinen
2014-06-16  0:11                                 ` Simon Clubley
2014-06-15 18:10                               ` Luke A. Guest
2014-06-16  0:00                                 ` Simon Clubley
2014-06-25  6:42                   ` Yannick Duchêne (Hibou57)
2014-06-25  7:29                     ` Georg Bauhaus
2014-06-25 12:17                     ` Simon Clubley
2014-06-12 23:53         ` Shark8
2014-06-13  4:28           ` Simon Clubley
2014-06-13  8:17             ` gvdschoot
2014-06-13 13:16               ` Simon Wright
2014-06-13 14:13                 ` gvdschoot
2014-06-13 15:52                   ` Shark8
2014-06-13 17:04                   ` Simon Clubley
2014-06-13 20:10                     ` Simon Wright
2014-06-15  6:33                 ` Tero Koskinen
2014-06-15  7:47                   ` gvdschoot
2014-06-15  8:13                     ` gvdschoot
2014-06-15  8:18                     ` Nasser M. Abbasi
2014-06-16  0:16                       ` Simon Clubley
2014-06-16  0:35                     ` Simon Clubley
2014-06-16  6:08                       ` Georg Bauhaus
2014-06-16  6:19                         ` Georg Bauhaus
2014-06-16 12:08                           ` Peter Chapin
2014-06-25 22:28                             ` Yannick Duchêne (Hibou57)
2014-06-16 12:30                           ` Simon Clubley
2014-06-16  6:22                         ` gvdschoot
2014-06-25  6:28         ` Yannick Duchêne (Hibou57)
2014-06-11  8:27     ` Maciej Sobczak
2014-06-11 19:39       ` Peter Chapin
2014-06-11 19:52         ` Luke A. Guest
2014-06-12  1:39           ` Peter Chapin
2014-06-12  2:46             ` Dan'l Miller
2014-06-12 11:24               ` Peter Chapin
2014-06-12 11:36                 ` Lucretia
2014-06-12 14:48                 ` björn lundin
2014-06-12 22:12                   ` Simon Clubley
2014-06-13  8:36                     ` Dmitry A. Kazakov
2014-06-13 15:55                       ` Shark8
2014-06-13 16:13                         ` Dmitry A. Kazakov
2014-06-13 20:57                       ` Robert A Duff
2014-06-14  7:27                         ` Georg Bauhaus
2014-06-14 21:02                         ` Simon Clubley
2014-06-16 16:39                         ` Randy Brukardt
2014-06-16 17:13                           ` Dmitry A. Kazakov
2014-06-16 17:24                           ` Simon Clubley
2014-06-16 19:13                             ` Simon Wright
2014-06-16 20:25                               ` Simon Clubley
2014-06-17 16:10                                 ` Simon Wright
2014-06-16 21:53                           ` Robert A Duff
2014-06-16 23:02                             ` Jeffrey Carter
2014-06-16 23:42                               ` Robert A Duff
2014-06-17 19:18                                 ` Randy Brukardt
2014-06-14 21:05                       ` Maciej Sobczak
2014-06-15  6:52                         ` Dmitry A. Kazakov
2014-06-15 10:04                           ` Georg Bauhaus
2014-06-15 12:25                             ` Dmitry A. Kazakov
2014-06-17  8:18                           ` Maciej Sobczak
2014-06-17  9:13                             ` Dmitry A. Kazakov
2014-06-18  7:55                               ` Maciej Sobczak
2014-06-18  8:31                                 ` Dmitry A. Kazakov
2014-06-12  8:16         ` Georg Bauhaus
replies disabled

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