<< 1 >>
Rating:  Summary: Good introduction Review: For those who know Mathematica well, and who also want to call Mathematica programs either remotely or from programs not written in Mathematica, this book is the canonical reference; in fact the only one that I am aware of other than the documentation that comes with Mathematica. The material in tbe book goes far beyond what can be found in the documentation however. As the authors observe, writing programs from scratch using the TCP/IP protocol can be formidable, and so MathLink was invented to ease the process for those who do not want to become expert in TCP/IP. Readers will also have to have a working knowledge of the C programming language. The book covers the Windows. Macintosh, and Unix platforms, with LINUX emphasized for the latter. Since all three of these operating systems are covered in the book, this makes navigation in it a little annoying at times. It does expand on the actual evaluation process when executing a Mathlink program, and how Mathlink does type conversion. Latency issues in the network will of course have to be dealt with in using Mathlink. The authors devote a chapter of the book in dealing with data transfer times across a network. They are also wise enough to know that the data transfer is best done with functions written in C for situations that are time-intensive. Readers just need to remember to call the Install function after each change they make to the .c and .tm files, as this fact is not emphasized by the authors. A chapter is devoted to the debugging of programs written in MathLink. The ability to debug these programs is really because of the underlying C code rather than Mathematica, for the latter does not of course have a debugger. The authors also illustrate real-time graphics with TurtleGraphics, which is based on the graphics primitives of Logo. Although somewhat antiquated, it was put in to allow simulations of cellular automata that are done in the next chapter. Transfer times in the performing of real-time graphics are reduced by employing color tables. For those working on MAC OS or Windows machines, a discussion of the digitizing of movies is given using the QuickTime movie player. These discussions of real-time graphics are generalized to interactive graphics in the next chapter. This discussion is particularly enlightening, since it deals with how to implement object-oriented programming in Mathematica. Interestingly, objects are thought of as function names when sending messages to them. This is an illustration of the classic "message- passing" paradigm in object-oriented programming, with the messages being send to objects as their function arguments. The authors discuss the class method and instance method; the latter being the collection of definitions that make up the class. Single and multiple inheritance, a very important feature of object-oriented programming, are discussed, and the authors show how to create an event-driven mechanism using Mathlink. Most interestingly, they show how to create a window object, and this leads to a detailed discussion on how to write a real-time interactive graphics system. The latter is not supported by the Mathematica front-end, and so for readers interested in creating these for purposes such as curve-fitting to data, their discussion is very helpful. In addition, for those involved in large-scale team efforts in writing Mathematica applications, or programs calling Mathematica, the authors show how to use Mathlink to communicate between different Mathematica sessions. They discuss briefly the use of J/Link to enable users to write Java programs to call Mathematica programs, thus exploiting Java's portability capabilities.
<< 1 >>
|