MathGroup Archive 2003

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

Search the Archive

Mathematica Evaluation Process

  • To: mathgroup at
  • Subject: [mg39597] Mathematica Evaluation Process
  • From: "Ersek, Ted R" <ErsekTR at>
  • Date: Tue, 25 Feb 2003 02:57:10 -0500 (EST)
  • Sender: owner-wri-mathgroup at

For a long time I have wanted to include on my webstite an explanation of
all processing an expression goes through from input to output (ignoring the
Math Link protocal).

Omega Consulting just put out a partial explanation at

Many years ago David Withoff gave the explanation posted at

As far as I am aware the most complete explanation was giiven by David
in his book "Power Programming With Mathematica The Kernel".  Unfortunately
this wonderful book is out of print!  

However, there are some things that have never been explained as far as I

(1)   How does pattern matching and all the tricky things that go with it
(HoldPattern, Verbatim, OneIdentity, DefaultValues, ...)  fit into the
Mathematica evaluation process?

(2)   How do definitions assigned to  $PreRead, $Pre, $Post, $PrePrint,
MakeExpression, MakeBoxes, Format[symb]  fit into the evaluation process?  I
tried to explain what these things do and the order in which they are used
on my website.   
but I couldn't  determine with good confidence where they fit in the
evaluation process.

(3)   The definition   foo[a_][x_,y_]:={a,x^2-y^2}  is stored in
SubValues[foo].  When in the evaluation process is such a definition used?

(4)   A definitions for  N[foo[x_]]  is stored in  NValues[foo].  When in
the evaluation process are the NValues used?

(5)   When in the evaluation process does the kernel use or change
assignments to $IterationLimit, $HistoryLength, $MessageList, Out[n]?

   Ted Ersek

  • Prev by Date: Re: Comment lines in different colour or font
  • Next by Date: Re: integrat trig radical
  • Previous by thread: Re: Speed Tips
  • Next by thread: Re: Mathematica Evaluation Process