MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Stopping a program

  • To: mathgroup at smc.vnet.net
  • Subject: [mg93174] Stopping a program
  • From: carlos at colorado.edu
  • Date: Thu, 30 Oct 2008 02:00:57 -0500 (EST)

This is a revision of a previous posting "Looking for Stop".
Unfortunately the answers were not helpful.  My fault: I didnt
explain what I am looking for in specific terms.  So here it is.

Several application programs in Mathematica that I use in
graduate courses are translations from old (1960-80s) Fortran and C
programs.  A medium-size Fortran program with, say, 10^6 statements
contracts to about 40-100K Mathematica commands, and similarly in
other high order languages. The reduction comes mostly from
use of built-in functions. However, the overall hierarchical
structure
does not change much, e.g. the "main program" becomes a
"Driver Script Cell"  (DSC) and functions/routines become Modules.
The typical structure is

DSC:
       Preprocessing Modules (written by students)
       Processing Modules (supplied)
       Postprocessing Modules (supplied)

There are typically 50-200 supplied modules, forming trees 3-6
levels deep, depending on application.   Programs are run
interactively by students doing homework or take-home exams.
They write the problem-dependent preprocessing part of the DSC,
save the NB, initialize the supplied modules (which are in
untouchable initialization cells) and execute the DSC.

Now suppose an irrecoverable error is detected in a Module four levels
deep. In Fortran or C,  I give diagnostics and call a central error
termination routine that also displays the "call trace" kept in a
stack.
In Mathematica I can only say Exit[], which is a bit drastic.

What I was looking for is a way to transfer to the end of the DSC
as if the program had terminated normally.  The student looks at
the error message, fixes the preprocessing part as needed, and
tries again.  As mentioned in the OP, I thought to put a Label:
at the end of the DSC but AFAIK Mathematica does not allow
forward control transfers.  Specific suggestions are welcome.


  • Prev by Date: Re: Re: Hypergeometric2F1
  • Next by Date: Re: Nonlinear Regression Oddities and Questions
  • Previous by thread: Re: Mathematica 6.0: good choice statistics for an MD thesis?
  • Next by thread: Re: Stopping a program