Reduce (Computeralgebrasystem)
# Reduce (Computeralgebrasystem)

Reduce ist ein Computeralgebrasystem, das sich als Allzwecksystem eignet und besonders mit Hinblick auf physikalische Anwendungen entwickelt wurde.

## Geschichte

Reduce nimmt einen wichtigen Platz in der Geschichte der Computeralgebrasysteme ein. Es war eines der ersten. Die erste Version von Reduce wurde in den 1960er Jahren von Anthony C. Hearn geschrieben. Seitdem haben zahlreiche Wissenschaftler aus aller Welt zu seiner Weiterentwicklung beigetragen. Ausgangspunkt war Hearns Suche, Berechnungen zu Feynman-Diagrammen zu automatisieren. John McCarthy, Professor an der Stanford University, schlug ihm die Programmiersprache Lisp als Grundlage für nichtnumerisches Rechnen in der Physik vor, was Hearn aufgriff. Die erste Veröffentlichung dazu erschien 1966.

Bekannt wurde das Programm in den 1970er Jahren und musste zunächst käuflich erworben werden. Seit 2008 ist Reduce als Open-Source-Projekt freigegeben und unter einer modifizierten BSD-Lizenz bei SourceForge kostenlos erhältlich.

Ab der Version 4.2 bietet die Dynamische-Geometrie-Software (DGS) GeoGebra über ein separates Konsoleninterface den Zugriff auf MPReduce als internes Computeralgebrasystem. In der Version 4.4 wurde Reduce jedoch durch Giac ersetzt.

## Leistungsumfang

Reduce ist in einem eigenen Lisp-Dialekt (Standard LISP) implementiert. Die Anwendersprache ist RLISP, die eine ALGOL-ähnliche Syntax hat. Besonderes Gewicht wurde auf Portierbarkeit gelegt. Es existieren Versionen für die meisten Unix-Varianten, Linux, MS Windows und Apple Macintosh.

Als Merkmale sind hervorzuheben:

* Ganzzahl- und rationale Arithmetik in beliebiger Genauigkeit
* Lösung einer Vielzahl algebraischer Gleichungen
* Algorithmen für Polynome und rationale Funktionen
* Automatische und benutzergesteuerte Vereinfachung mathematischer Ausdrücke
* Substitutionen und Musterabgleich in vielfältiger Form
* Analytische Differential- und Integralrechnung
* Berechnungen mit einer Vielzahl spezieller mathematischer Funktionen
* Berechnungen mit Dirac-Matrizen, die für Hochenergiephysiker von Interesse sind
* Entscheidungsfindung für interpretierende Logik erster Ordnung
* Leistungsstarke intuitive Programmiersprache auf Benutzerebene
