Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2003
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2003

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

Search the Archive

Mathematica Evaluation Process

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

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 
http://omegaconsultinggroup.com/Services/ezv2i02.html

Many years ago David Withoff gave the explanation posted at 
http://library.wolfram.com/database/Conferences/4683/

As far as I am aware the most complete explanation was giiven by David
Wagner 
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
know.

(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.   
See  http://www.verbeia.com/mathematica/tips/HTMLLinks/Tricks_170.html 
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]?

----------------------  
Regards,
   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