From: Stephen Leake <stephen.a.leake.1@gsfc.nasa.gov>
Subject: Re: 'withing' problem [code generation]
Date: 19 Nov 2001 15:58:20 -0500
Date: 2001-11-19T21:00:53+00:00 [thread overview]
Message-ID: <u3d3aeavn.fsf@gsfc.nasa.gov> (raw)
In-Reply-To: 3BF93F0F.D5E4D0B7@Raytheon.com
Mark Johnson <Mark_H_Johnson@Raytheon.com> writes:
> Matthew Heaney wrote:
>
> > "Simon Wright" <simon@pushface.org> wrote in message
> > news:x7vd72gi0zm.fsf@smaug.pushface.org...
> > > If there is a real-world circularity between doctor and patient, and
> > > our software engineering tools can't cope with it, it's the tools that
> > > have failed and not the real world!
> > [snip]
> > Simon argued that my solution was inadequate, because there was no simple
> > way to a automatically generate my code from the UML diagram.
>
> Having done code generation from diagrams before - I guess I don't understand
> why there is no "simple way to automatically generate code" in this case. I see
> at least two "simple solutions" that are not mutually exclusive:
> - 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.
For example, assume your UML model has the Doctor -> Patient
circularity. The first time you generate code, it may decide to break
the circularity by using a forward declaration for Doctor. Now you
tweak the model a bit, and it decides to forward declare Patient. Not
a Good Thing!
The point here is that extending Ada with "with type" allows some
"circularities" to be directly represented, without any user or tool
interaction.
> We were taking data flow and control flow diagrams to generate the
> code for an aircraft simulator. Loops appeared all over the place as
> systems interact with each other. However, we had to "pick one" to
> run first (on a single CPU). The code generator sorted the blocks
> based on how "close" the block was to an external input. Direct
> connections were "1", blocks connected to "1's" were "2", and so on.
> The precise order the blocks executed was deferred to run time - we
> ran all blocks directly connected to inputs that *changed* first,
> then all blocks connected to first level outputs, and so on using
> the order described above. 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.
--
-- Stephe
next prev parent reply other threads:[~2001-11-19 20:58 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 [this message]
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
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