comp.lang.ada
 help / color / mirror / Atom feed
* Idiom for tail recursion?
@ 2009-05-31 21:04 jpwoodruff
  2009-06-01  1:01 ` John B. Matthews
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: jpwoodruff @ 2009-05-31 21:04 UTC (permalink / raw)


To entertain myself, I'm making a program that implements the DEVS
specification for discrete event simulation.  The book I'm studying
describes a reference implementation in Scheme.

The program proceeds by passing a series of messages among objects
that are instances of only a couple class hierarchies.  The messages
cycle among the objects in (fairly convoluted) cycles of mutually
recursive dispatching calls.  Simulation time advances as the program
traverses the outermost cycles of activation.

In scheme, the functions are tail-recursive - the last call of each of
the respective mutually recursive procedures does the recurse.  This
paradigm is crystal clear in that language and the implementation
doesn't grow the stack.

But in Ada it appears that I'm going to have a stack of calls that
won't return.  I guess the program will quit running when I raise an
exception for that purpose.  Or maybe it won't halt, who knows :-}.

I most definitely do not see a transform to an iterative algorithm.

So the question: what idiom comes fairly close to the flavor of the
tail-recursion and won't blow stack?

John




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-06-02 14:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-31 21:04 Idiom for tail recursion? jpwoodruff
2009-06-01  1:01 ` John B. Matthews
2009-06-01  1:32 ` Gene
2009-06-02 14:00   ` John B. Matthews
2009-06-02 13:38 ` Jean-Pierre Rosen

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