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.