Base Reference Document
OpenAxiom is a descendent of the AXIOM computer algebra system as described by Richard Jenks and Robert Sutor in AXIOM: The Scientific Computation System. That book is the base reference document for OpenAxiom.
Changes From The Base Document
OpenAxiom-1.1.0
This release introduces the following changes from the base document
-
Better support for domain definition: Now, the conventional
identifier
Rep
that indicates domain representation should be defined using the==
operator instead of the assignment operator. Doing so automatically makes available the view morphismsrep: % -> Rep per: Rep -> %
The old definition syntax is deprecated, and supported in this release for compatibility reasons. -
Support for
Union
-like domains, whereby a user-defined domain can provide definitions for thecase
operator. This is used notably in theSyntax
domain, which is a new addition to the OpenAxiom algebra. -
Support for unevaluated arguments of arbitrary types, whereby
a function definition can specify whether it takes its arguments
evaluated or unevaluated. This new functionality is exemplified
by the
Syntax
domain. - Direct support for batch processing in the following sense:
- It is now possible to invoke the OpenAxiom interpreter
in non-interactive mode, either from the command line,
or as executing an OpenAxiom script (a
.input
file). - It is now possible to invoke the OpenAxiom compiler in non-interactive mode, much like one could invoke a conventional compiler such as GCC.
- It is now possible to invoke the OpenAxiom interpreter
in non-interactive mode, either from the command line,
or as executing an OpenAxiom script (a
- Many bug fixes
- New domains: the new additions include
Syntax
: this domain is useful for program transformation and code generation at the OpenAxiom algebra level. In particular, OpenAxiom makes parsers for scripts and algebras at the OpenAxiom Algebra level.Domain
: In addition of helping fixing some nasty bugs, this domain makes the handling of domains more uniform, and less magic. In particular, it enables dependent type support at the OpenAxiom scripts level.UnionType
: This new category conveys the semantics ofUnion
-like domains to the OpenAxiom compiler.PropositionalLogic
: This new category describes domains that implement Propositional Logic.PropositionalFormula
: This new domain provides implementation for formula in Propositional Logic.