MathGroup Archive 2005

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

Search the Archive

Re: Language vs. Library why it matters / Turing

  • To: mathgroup at
  • Subject: [mg61500] Re: Language vs. Library why it matters / Turing
  • From: Richard Fateman <fateman at>
  • Date: Thu, 20 Oct 2005 00:56:19 -0400 (EDT)
  • Organization: University of California, Berkeley
  • References: <dipr57$hfl$> <dj2770$bif$> <dj4osp$gmk$>
  • Sender: owner-wri-mathgroup at

Steven T. Hatton wrote:

> I'm not sure Mathematica /is/ complex at the core.  AAMOF, I believe the
> complexity that we see is due to a fundamental simplicity at the core.  As
> for secrecy, I believe we are told petty much how it works if we read
> carefully. 

No you are not.  Read what "Update" does.  Read a few of Maxim's reports
where changing the NAME of a variable changes the performance of a program.
Look at the arithmetic.

I do believe the language could be more formally codified, and
> that might add to its learnability.  Regarding its being non-deterministic,
> I'm not sure what you intend here. 

A mathematica program does different things on different computers. It sometimes does
different things on the same computer at different times. The specifications
are insufficient to disambiguate the results.  The order of application of
rules is unspecified.

  I was quite surprized to learn that C++
> is formally specified to be non-deterministic.  AFAIK, that results from an
> intentional omission of specific requirements for the order in which actual
> parameters are evaluated in function calls.  I do not believe the same
> applies to Mathematica.

Mathematica is far far worse than C++, which at presumably tells you that your
program should not depend on certain orderings of evaluation.

>  Mathematica stands firmly in
> the Lisp tradition of computing as opposed to the C or Simula traditions.

Mathematica is not Lisp-like.  Mathematica is fundamentally a pattern-replacement
language.  There are pieces that look like Lisp, but really they are not.


> I tried to determine to what your were responding in the above, but I was
> unable to identify it by reading what you had quoted.  IMO, models such as
> FSA or the Turing Machine are overly abstract for the purpose of
> categorizing Mathematica. 

  a finite state machine describes any computer program + computer system
that can be built in a finite universe. The explanation was a reaction to
the previous claim that all programs were inexplicable because of
Turing (or Godel).

  I'm more inclined to view Mathematica as a
> recursive pre-compiler.  It really operates a lot like a person doing math
> operates.  It starts with an expression, and it follows established rules
> for rewriting the expression until it gets a form for which there is no
> transformation which would produce a more specific form of the expression
> resulting from the previous transformation.  In doing this, it continually
> traverses expression trees in a deterministic order.

You can imagine that it operates that way, and in some cases you would be
right. But sometimes you would be wrong, and that could be a really bad
thing, if you were deceived into trusting the system because it worked
on simple cases.

  • Prev by Date: Re: Exporting XML as DocBook, etc
  • Next by Date: Re: Language vs. Library why it matters / Turing
  • Previous by thread: Re: Language vs. Library why it matters / Turing
  • Next by thread: Desperate help