Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

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

Search the Archive

Re: pattern bugs and comment on intuitive syntax for the New Year

  • To: mathgroup at smc.vnet.net
  • Subject: [mg115204] Re: pattern bugs and comment on intuitive syntax for the New Year
  • From: Richard Fateman <fateman at eecs.berkeley.edu>
  • Date: Tue, 4 Jan 2011 04:25:33 -0500 (EST)
  • References: <ifs30a$oor$1@smc.vnet.net> <4D21F917.2020209@cs.berkeley.edu> <48AEFA8B-880D-4B9A-B9CC-C1C7414D1384@mimuw.edu.pl>

On 1/3/2011 10:22 AM, Andrzej Kozlowski wrote:
> I have skipped most of the tired and empty rhetorics.
>
>
> On 3 Jan 2011, at 17:28, Richard Fateman wrote:
>
>> So to call Lisp compiled and Mathematica not compiled is either
>> over-simplified or ignorant.
> Please check:
>
> http://en.wikipedia.org/wiki/Compiled_language
>
> I quote: "A compiled language is a programming language whose implementations are typically compilers..."
Well, you have certainly chosen a loosely written article from a 
non-authoritative source, asking for a definition of a term
that even the author(s) of that article say,

"The term is somewhat vague; in principle any language can be 
implemented with a compiler or with an interpreter. A combination of 
both solutions is also increasingly common: a compiler can translate the 
source code into some intermediate form (often called bytecode 
<http://en.wikipedia.org/wiki/Byte-code>), which is then passed to an 
interpreter which executes it."

If you read the article in wikipedia on "programming language"  you will 
(at least today) find a much better article
that discusses the common components of most programming languages. For 
example,
A programming language is usually split into the two components of 
syntax <http://en.wikipedia.org/wiki/Syntax> (form) and semantics 
<http://en.wikipedia.org/wiki/Semantics> (meaning) and many programming 
languages have some kind of written specification of their syntax and/or 
semantics.

There is discussion of types, semantic checking, etc.
Eventually there is a mention of "compile time" for statically typed 
languages.  The distinction
you want to make between "compiled languages" and (other) languages is, 
in general, bogus.
If you want to say that Mathematica has a crappy compiler right now, I 
guess you can make
that case. I haven't looked at it recently.


That Mathematica fails to have a formal definition for its syntax,
and inadequate documentation of its semantics bothers some
people, but not everyone.



> Among the list of "compiled languages" you will find Lisp.  My point was obvious: since Lisp is a compiled language it is not surprising that programs written in Lips can be compiled. Is it?
When you said symbolic programs can't be compiled, you

> Neither I not anyone else ever asserted that it would not be possible to write a CAS like Mathematica in which purely symbolic code could be compiled.
Oh, so all you were saying is that the current compiler for Mathematica 
does not work for what you call "symbolic computation",
although of course numbers are particular kinds of symbols.

You were
not saying anything about what the (next) compiler for Mathematica might 
do, or what a compiler for some other language
past, present or future might do for "symbolic computation".

  Pretty slim content.

  My point was that obviously one can compile symbolic programs, whether 
they are expressed functionally or state-based procedurally.  Whether 
one is more efficient than the other, generally, is hard to say.  
Whether one is more elegant than the other can sometimes
just be a matter of opinion.


>   But that it is not the way Mathematica works and that is all that this list is concerned with. All your comments on this matter are irrelevant and are simply displays of certain aspects of your personality. They provide no other information and the one that they do is already very well known.
I can quote from your previous message,
"

Obviously my meaning was that in Mathematica in most cases
a procedural program can be replaced by a more compact and,
  to most people, more elegant looking, "functional" one.
  Of course we know that generally>>>>they<<<<  are both something
  else, but the latter kind tend to be more elegant and more
  efficient (without compiling, of course, which can't be
used for programs that perform symbolic computation
  - an obvious thing that somehow you decided to forget).
"

I have marked>>>>they<<<<..

I thought that the pronoun "they"  meant "procedural and functional programs".

You intended the pronoun to mean Mathematica programs in versions 8 and earlier,
and "the latter"  to be what you call Mathematica functional programs in version 8 and earlier, and
the parenthetical remark to pertain to non-"functional" Mathematica programs
which you claim can't be compiled if they perform symbolic computation, and therefore
can't be made more efficient.)

W
The fact that Mathematica does not work the way some people think it should
is very much the concern of some people using this list.



  • Prev by Date: Re: pattern bugs and comment on intuitive syntax for the New Year
  • Next by Date: Re: NDSolve, three 2-d order ODE, 6 initial conditions
  • Previous by thread: Re: pattern bugs and comment on intuitive syntax for the New Year
  • Next by thread: Re: pattern bugs and comment on intuitive syntax for the New Year