This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

 Documentation /  Mathematica /  Das Mathematica Buch /  Eine praktische Einführung in Mathematica /  Dateien und externe Operationen /

Notebooks in HTML umwandelnMathematica-Ausgabe in externe Dateien einbinden

1.11.8 Erzeugen von C- und Fortran-Ausdrücken

Wenn Sie C- oder Fortran-Programme für Spezialanwendungen haben, dann kann es sein, daß Sie mit Mathematica erzeugte Formeln in den Quellcode Ihrer Programme einfügen wollen. Mit Mathematica können Sie mathematische Ausdrücke in C- und Fortran-Ausdrücke konvertieren.

Mathematica-Ausgabe für Programmiersprachen

Hier ist ein Ausdruck in normaler mathematischer Form.

In[1]:= Expand[(1 + x + y)^2]

Out[1]=

Hier ist der Ausdruck in Fortran-Form.

In[2]:= FortranForm[%]

Out[2]//FortranForm= 1 + 2*x + x**2 + 2*y + 2*x*y + y**2

Hier ist derselbe Ausdruck in C-Form. Makros für Objekte wie Power werden in der C-Header-Datei mdefs.h definiert, die bei den meisten Mathematica- Versionen mitgeliefert wird.

In[3]:= CForm[%]

Out[3]//CForm= 1 + 2*x + Power(x,2) + 2*y + 2*x*y + Power(y,2)

Sie sollten sich bewußt machen, daß es viele Unterschiede zwischen Mathematica und C oder Fortran gibt. Deshalb kann es sein, daß von Ihnen übersetzte Ausdrücke nicht genauso funktionieren wie in Mathematica. Es gibt außerdem so viele Unterschiede in Programmkonstrukten, daß nicht versucht wurde, diese automatisch zu übersetzen.

Eine Methode zur Kompilierung von Mathematica-Ausdrücken

Eine der üblichen Motivationen für die Konvertierung von Mathematica-Ausdrücken in C oder Fortran besteht darin, sie schneller evaluierbar zu machen. Aber der wichtigste Grund überhaupt, daß C oder Fortran effizienter als Mathematica sein könnten, ist, daß man in diesen Sprachen immer gleich am Anfang spezifiziert, welchen Typ jede Variable haben wird—ganze Zahl (integer), reelle Zahl (real), Array und so weiter.

Die Mathematica-Funktion Compile macht derartige Annahmen in Mathematica und erzeugt sehr effizienten internen Code. Gewöhnlich läuft dieser Code nicht sehr viel, wenn überhaupt, langsamer als spezieller C- oder Fortran-Code.

Notebooks in HTML umwandelnMathematica-Ausgabe in externe Dateien einbinden