octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: evaluator


From: Paul Thomas
Subject: Re: evaluator
Date: Tue, 24 Feb 2004 07:45:59 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225

Paul,

I read George Almasi's thesis from cover to cover last night. For the main part, it talks about type inferencing, type speculation, range chacks, shape checks and subscript checks, rather than the JIT compilation. Even when all this is done, "disambiguation" (The process of sorting out the remaining type uncertainties) is an important element of the execution. To cover this, there is a "code repository" from which the appropriate bits of code, according to type and range, are called. If the bit of code does not exist, it is compiled.

To judge by Almasi's benchmarks, you comment about doing arithmetic on octave values is quite correct. Mainly, there are factors of 100 in execution time for the taking. However, writing a type inferencer/speculator will be quite an undertaking. Almasi points out that inline code, in languages like these, does not benefit enormously from any of the speculation or JIT'ing and that it is repetitively executed elements of code that benefit. This leads me to the conclusion that rather than inferencing and speculation, disambiguation is the order of the day, since octave is, in essence, a code repository.

Paul T

Paul Kienzle wrote:

The evaluator is built into the node classes of the parse tree.

You can find the root invocation in the function eval_string
in parse.y.  The root node is a tree_statement_list as defined
in pt-stmt.h.  eval_string calls the eval method of the
tree_statement_list.

The whole point of the compiler is to translate the parse tree
into C++ statements, not to call the octave evaluator.  The
simplification in the first pass is that you will be using
arithmetic on octave values rather than type inference.

Paul Kienzle
address@hidden

On Feb 23, 2004, at 7:41 PM, Jens Ruecknagel wrote:

can somebody give me a hint to the evaluator? I am looking for the clases that evaluate the pt-* parse tree.

I am familiar with the pt-pr-code.h - I was hoping there would be something similar for evaluating, so I can just "merge" them to build a first octave compiler.







reply via email to

[Prev in Thread] Current Thread [Next in Thread]