comp.lang.ada
 help / color / mirror / Atom feed
From: Mark Johnson <Mark_H_Johnson@Raytheon.com>
Subject: Re: 'withing' problem [code generation]
Date: Tue, 20 Nov 2001 08:42:37 -0600
Date: 2001-11-20T08:42:37-06:00	[thread overview]
Message-ID: <3BFA6BDC.26E7557E@Raytheon.com> (raw)
In-Reply-To: u3d3aeavn.fsf@gsfc.nasa.gov

Stephen Leake wrote:

> Mark Johnson <Mark_H_Johnson@Raytheon.com> writes:
>
> > Matthew Heaney wrote:
> > [snip]
>
> >  - annotate the drawing to "break the circular dependency here"
>
> This is not "automatic", it's "manual". That's the point.
>
> >  - recognize patterns of circular dependencies and generate code
> > that automatically generates the new packages (and report such
> > changes to the user)
>
> This may be possible. The problem is that the automatic recogition of
> patterns may be unstable; small changes in the UML model may make
> large changes in the new packages.
>

Exactly the reason I mentioned both solutions. If you *really care* about the
structure of the packages, allow the author to specify that certain rules to be
applied. The annotation I mentioned becomes a part of the standard you apply when
using UML. I don't see why you consider that "manual" - the computer does everything
based on your (now more complete) specification of the solution.

I thought about this a little last night and you have the circular dependency problem
in C if you are not careful. You get an infinite loop in the C preprocessor if
doctor.h includes patient.h and vice versa. Almost everybody codes their header files
to have some #ifundef that encloses the body of the header file. That way, each
header is expanded only once. Even with that, you could have a subtle bug due to the
different order of expansion - doctor before patient or patient before doctor. Icky,
nasty problems to find and fix..


> [snip - description of execution order algorithm]

> > That tended to minimize latency in our
> > system - which we considered a *good thing*.
>
> This sounds like it could be a stable algorithm, as long as there are
> not parallel paths from the first block to the nth block.

Of course there were parallel paths. All the cautions you mentioned about small
changes on the drawing making big changes in the way the code executed were true. Add
a single line on a drawing and a block that was executing 4 steps later is now
executing two steps previous. Even more - based on which inputs came in, the blocks
executed in a different order.

So what. We kept focused on the problem we were trying to solve and did not care so
much on how beautiful or ugly the generated code was. A common problem in simulators
is instability in the model due to excessive latency - our system never had that
problem because the solution minimized latency in all cases.

  --Mark








  parent reply	other threads:[~2001-11-20 14:42 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-02 10:24 'withing' problem David Crocker
2001-11-02 10:58 ` David C. Hoos, Sr.
2001-11-02 21:32   ` Florian Weimer
2001-11-02 14:49 ` Robert Dewar
2001-11-05  9:49   ` David Crocker
2001-11-02 15:06 ` Wes Groleau
2001-11-02 15:21 ` Ted Dennison
2001-11-02 17:19   ` Ed Falis
2001-11-02 18:17     ` Preben Randhol
2001-11-02 19:15       ` Ed Falis
2001-11-03  2:52       ` DuckE
2001-11-03  9:50         ` Preben Randhol
2001-11-03  8:25   ` Simon Wright
2001-11-03 17:27     ` Richard Riehle
2001-11-04 10:23       ` Simon Wright
2001-11-08 10:58         ` Preben Randhol
2001-11-08 15:24           ` Peter Hend�n
2001-11-10 17:57           ` Simon Wright
2001-11-05  9:48       ` David Crocker
2001-11-05 20:36         ` Ted Dennison
2001-11-06 15:56           ` David Crocker
2001-11-07 15:06             ` Ted Dennison
2001-11-07 16:49               ` Darren New
2001-11-09 20:28         ` Matthew Heaney
2001-11-10 13:55           ` Preben Randhol
2001-11-12 15:10             ` Matthew Heaney
2001-11-10 18:12           ` Simon Wright
2001-11-12 15:13             ` Matthew Heaney
2001-11-13  7:01               ` Simon Wright
2001-11-14 16:10                 ` Matthew Heaney
2001-11-15 20:21                   ` Simon Wright
2001-11-15 21:07                     ` Matthew Heaney
2001-11-16 14:37                     ` Stephen Leake
2001-11-17 22:29                     ` Richard Riehle
2001-11-18 14:53                       ` Simon Wright
2001-11-19  5:51                         ` Simon Wright
2001-11-19 15:23                         ` Matthew Heaney
2001-11-19 17:19                           ` 'withing' problem [code generation] Mark Johnson
2001-11-19 20:58                             ` Stephen Leake
2001-11-19 21:20                               ` Matthew Heaney
2001-11-21  6:20                                 ` Simon Wright
2001-11-20  0:50                               ` Mark Biggar
2001-11-21  6:21                                 ` Simon Wright
2001-11-20 14:42                               ` Mark Johnson [this message]
2001-11-20 16:34                                 ` David Crocker
2001-11-20 18:34                                   ` Richard Pinkall-Pollei
2001-11-20 18:43                                   ` Matthew Heaney
2001-11-20 20:37                                     ` Mark Lundquist
2001-11-22 11:49                                     ` David Crocker
2001-11-20 20:35                                   ` Mark Lundquist
2001-11-22 11:42                                     ` David Crocker
2001-11-19 19:30                           ` 'withing' problem Preben Randhol
2001-11-03  8:26 ` Simon Wright
2001-11-03  8:38 ` Simon Wright
2001-11-05  9:54   ` David Crocker
2001-11-05 18:04     ` tmoran
2001-11-06 15:29       ` David Crocker
2001-11-07  0:38         ` tmoran
2001-11-07 10:11           ` David Crocker
2001-11-07 18:59             ` tmoran
2001-11-08 11:38               ` David Crocker
2001-11-10 18:03                 ` Simon Wright
replies disabled

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