FriCAS | |
---|---|
Entwickler: | Waldek Hebisch + independent group of people |
Aktuelle Version: | 1.3.11 (1. Juli 2024) |
Typisierung: | abhängig, stark |
Wichtige Implementierungen: | SPAD, Aldor, Boot, Common Lisp |
Betriebssystem: | Cross-platform |
Lizenz: | Modifizierte BSD-Lizenz |
fricas.github.io |
FriCAS ist ein Allzweck-Computeralgebrasystem mit einem starken Fokus auf mathematische Forschung und Entwicklung neuer Algorithmen. Es besteht aus einem Interpreter, einem Compiler und einer immer noch wachsenden Bibliothek[1] mit mehr als 1.000 Domänen und Kategorien.
FriCAS bietet eine stark typisierte höhere Programmiersprache namens SPAD und eine ähnliche interaktive Sprache, die zur Vereinfachung die Typinferenzierung verwendet. Aldor wurde ursprünglich als Compiler der nächsten Generation für Axiom und Abspaltungen entwickelt. Mit FriCAS können (optional) Aldor Programme ausgeführt werden. Beide Sprachen haben eine ähnliche Syntax und ein ausgeklügeltes (abhängiges) Typsystem.[2][3][4]
FriCAS ist umfassend dokumentiert und sowohl als Quellcode als auch in binärer Form für die gängigsten Plattformen erhältlich. Das Kompilieren der Quellen erfordert neben anderen Voraussetzungen eine Common-Lisp-Umgebung (wobei viele der wichtigsten Implementierungen unterstützt werden und als Open Source frei verfügbar sind).
FriCAS läuft auf diversen POSIX-Plattformen wie Linux, MacOS, Unix, BSD sowie unter Cygwin und Microsoft Windows WSL.
FriCAS besitzt neben der Kommandozeile verschiedene Front-Ends, z. B. Emacs, TeXmacs, Jupyter.
FriCAS ist ein Nachkomme von Axiom, das seinen Ursprung in Scratchpad hat, einem Projekt, das 1965 von James Griesmer[5] in IBM Laboratories gestartet wurde. Weitere Details finden sich unter Axiom/Geschichte.[6]
FriCAS hat eine ziemlich vollständige Implementierung des Risch-Bronstein-Trager-Algorithmus (kurz Risch-Algorithmus).
Ein weiteres nützliches Feature ist Stream:
)set stream calculate 5 exp_series := series(exp x, x=0)
Type: UnivariatePuiseuxSeries(Expression(Integer),x,0)
So kann jeder Koeffizient abgerufen werden, zum Beispiel: :
coefficient(exp_series,40)
Type: Expression(Integer)
Verwandt: