|
|
last edited 10 years ago by surowitz |
1 2 3 4 5 | ||
Editor: page
Time: 2007/11/12 22:43:16 GMT-8 |
||
Note: transferred from axiom-developer.org |
changed: - The Axiom interpreter is the part of Axiom responsible for handling user input during an interactive session. The interpreter parses the user's input expression to create an expression tree, then does a bottom-up evaluation of the tree. Each subtree encountered that is not a value consists of a root node denoting an operation name and one or more leaf nodes denoting operands. The interpreter resolves type mismatches and uses type-inferencing and a library database to determine appropriate types for the operands and the result, and the operation to be performed. The interpreter determines the domain in which to perform the indicated operation, and invokes a function from the domain to compute a value. The subtree is then replaced by that value and the process continues. Once the entire tree has been processed, the value replacing the top node of the tree is displayed back to the user as the value of the expression. Input to the interpreter may be read from a file using the command:: )read filename.input
The Axiom interpreter is the part of Axiom responsible for handling user input during an interactive session.
The interpreter parses the user's input expression to create an expression tree, then does a bottom-up evaluation of the tree. Each subtree encountered that is not a value consists of a root node denoting an operation name and one or more leaf nodes denoting operands. The interpreter resolves type mismatches and uses type-inferencing and a library database to determine appropriate types for the operands and the result, and the operation to be performed.
The interpreter determines the domain in which to perform the indicated operation, and invokes a function from the domain to compute a value. The subtree is then replaced by that value and the process continues. Once the entire tree has been processed, the value replacing the top node of the tree is displayed back to the user as the value of the expression.
Input to the interpreter may be read from a file using the command:
)read filename.input