Axiom (Software)
# Axiom (Software)

Axiom ist ein freies Computeralgebrasystem. Es besteht aus einer interaktiven Umgebung (dem Interpreter), einem Compiler und einer Programmbibliothek. Letztere implementiert eine mathematisch korrekte Hierarchie von Typen.

## Geschichte

Axiom wurde seit 1971 von Forschern der IBM unter der Leitung von Richard Dimick Jenks entwickelt, ursprünglich unter dem Namen SCRATCHPAD in der Programmiersprache Lisp. In den 1990ern wurde es an die Gruppe NAG verkauft und erhielt seinen jetzigen Namen. Im Jahr 2001 wurde es vom Markt genommen, seit 2002 wird es unter einer modifizierten BSD-Lizenz verbreitet. Seitdem haben sich zwei Projekte davon abgespalten: FriCAS und OpenAxiom.

## Design

In Axiom haben alle Objekte einen Typ. Beispiele für solche Typen sind mathematische Strukturen (wie Ringe, Körper, Polynome) als auch Datenstrukturen aus der Informatik (z. B. Liste, Baum, Heap, Hashtabelle in verschiedenen Formen).

Eine Funktion kann einen Typ als Argument haben, und ihr Ergebnis kann ebenso ein Typ sein. Zum Beispiel ist Fraction eine Funktion, die einen IntegralDomain als Argument akzeptiert und den Quotientenkörper ihres Arguments zum Ergebnis hat. Als weiteres Beispiel kann man den Ring der $4\times 4$ Matrizen mit rationalen Einträgen als SquareMatrix(4, Fraction Integer) konstruieren. Wenn man in diesem Domain arbeitet, wird 1 als Einheitsmatrix interpretiert und A^-1 liefert die Inverse der Matrix A, soweit sie existiert.

Verschiedene Funktionen können den gleichen Namen haben. Die Typen der Argumente und der Typ des Resultats werden verwendet um festzustellen, welche Operation tatsächlich gemeint ist, ähnlich wie in der Objektorientierten Programmierung.

Die Erweiterungssprache von Axiom heißt SPAD. Das gesamte mathematische Wissen von Axiom ist in dieser Sprache geschrieben. Der Interpreter akzeptiert ungefähr die gleiche Sprache.

SPAD wurde unter dem Namen A# und später Aldor weiterentwickelt. Aldor kann nach wie vor als alternative Erweiterungssprache verwendet werden. Es wird allerdings unter einer anderen Lizenz vertrieben.

## Fähigkeiten

Innerhalb des Interpreters benutzt Axiom Typinferenz und einen heuristischen Algorithmus, um explizite Typangaben weitgehend unnötig zu machen.

Axiom beinhaltet 'HyperDoc', eine interaktive, browserähnliche Hilfe, und kann zwei- und dreidimensionale Graphiken darstellen. Die Grafikanzeige ermöglicht es unter anderem auch, die Grafik zu rotieren oder eine Lichtquelle zu setzen.

* HyperDoc zeigt die für einen Domain verfügbaren Operationen an
* Darstellung einer Oberfläche

Axiom ist derzeit das einzige CAS mit einer vollständigen Implementierung des Risch-Algorithmus zur elementaren Integration. Die Implementierung stammt von Manuel Bronstein und Barry Trager.

## Grafische Benutzerschnittstelle

Es gibt einen Modus für Emacs sowie ein Plugin für den Editor TeXmacs. Eine weitere Möglichkeit besteht darin Sage als Interface für Axiom zu verwenden.

