login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

The FriCAS interpreter is the part of FriCAS 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, 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

For people interested in technical details: what documentation usually calls the "interpreter" actually has two parts. One is a classical interpreter that evaluates user expressions. But there is another part which compiles user functions. For a function to be compiled, it must pass type checks (otherwise the "interpreter" will fall back to real interpretation).




  Subject:   Be Bold !!
  ( 14 subscribers )  
Please rate this page: