- provide hooks for profiler, and debugger as AST evaluators.
- creating a JIT compiler for Octave, to quicken up the loopy-loop constructs.
- all types of safe optimizations in the compiler for JIT.
Clearly all of these are beyond the reach of a novice untrained in the rigours of compiler design. Even then, moving this knowledge to Octave code-base is still a challenge.
With this prelude, I post the set of 5 projects I feel are challenging to anyone willing to work on Octave interpreter.
- Octave Startup: study the various hooks and such for Octave startup.
- Octave function: modify the Octave startup to not load any of the standard m-files, and just track the read-eval-print loop of a simple m-file function. Trace the parse tree, its loading into interpreter data structure (e.g, symbol table) and its evaluation.
- Do #2 for a single for-loop.
- Study python-byte compiling from AST to the byte code, and byte code interpreter. Look at opimizations.
- Add the '?' C-language ternary operator, by modifying the Octave parser and interpreter.
-Muthu
PS: Use doxygen with the Octave CVS in the source browser mode. It helps in learning the Octave sources, with a hyperlinked document from doxygen.
No comments:
Post a Comment