Re: Language vs. Library why it matters / Turing

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

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. >