MathGroup Archive 2007

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

Search the Archive

Re: Mathematica to .NET compiler

  • To: mathgroup at smc.vnet.net
  • Subject: [mg79528] Re: Mathematica to .NET compiler
  • From: Peter Pein <petsie at dordos.net>
  • Date: Sat, 28 Jul 2007 05:41:22 -0400 (EDT)
  • References: <200707200725.DAA24728@smc.vnet.net> <f7sflm$rs0$1@smc.vnet.net> <f86onh$g19$1@smc.vnet.net>

Jon Harrop schrieb:

>   http://www.mathcore.com/resources/documents/mathcodec++_subset.pdf
> 
> They don't support:
> 
>   Pattern matching
>   Arbitrary-precision arithmetic
>   Symbolic manipulation
>   Negative array indexing
>   Strings
>   IO
>   Efficient array resizing
>   Expressions
> 
> Most of these are easy to implement if you target a higher-level language
> than C++.
> 

1. Isn't Mathematica's base not any more than a pattern matcher and
replacement machine? If there's no pattern matching, where is Mathematica?

2. Is it really so complicated for professionals to embed GMP-support
(http://gmplib.org/) into their product?

3. Maybe it might be the better choice to program in a lower level
language if one does not need symbolic abilities.

4. to keep track of the lebnth of an array and transfer a[[-2]] to
a[length[a]-1] (starting at 0 as usual in C) is too hard to implement?

5. We all know: C does not support strings... :-\

6. And in/output has never been seen in C-programs

7. Well, resizing depends on the C++-compiler, but is possible

8. Maybe I do not understand, what is meant with "Expressions" in this
case. And if I do, the whole "Compiler" seems more useless as the seven
points above indicate.

After having read these constraints, there is no need to program in
Mathematica just to get frustrated by an insufficient MathematicaToC(++)
translator.

I think it would be more promising to build a tool which translates
Mathematica to a declarative language and to build a hybrid, running
easy-to-translate parts in native code and calling the Mathematica
Kernel for hard tasks.

This is by no means a trivial task. A challenge!
I try to learn Mercury
(http://www.cs.mu.oz.au/research/mercury/index.html) at the time, but I
am just at the beginning for now. While learning the basics, I came
around to Haskell, OCAML and of course Prolog. My knowledge about these
languages is too small for now but I think in a year or one and a half
I'll try to find some people to start such a project. Of course this
will have to be an open source project, as it will rely on a GP-licensed
compiler.

Peter


  • Prev by Date: Re: defining random variable with piecewise-continuous
  • Next by Date: Unbearably slow plotting (v6)
  • Previous by thread: Re: Mathematica to .NET compiler
  • Next by thread: Re: Mathematica to .NET compiler