The
Tiger compiler can easily be extended since it is component-based. Adding a new optimization phase, extending the syntax of the language, or replacing the back-end, is a matter of creating a new component and constructing a new compilation pipeline. This page lists some ideas for extensions.
Language extensions
- Add a module system and separate compilation
- Function arguments (escaping functions)
- Objects
- Add support for XML -- the TigerXML package is a first stab
Compiler improvements
- Garbage collection
- Target different platforms (e.g. Intel)
- Improve spilling heuristics in the register allocator
- Improve stack allocation of escaping variables (overlap variables that are not live at the same time)
- Allocate non-escaping records and arrays on the stack
- Optimization -- first experiments in the TigerOpt package
- Add data-flow optimizations
- Add loop optimizations
- Inline functions
- Partial evaluation / specialization
- Parallel execution
--
EelcoVisser - 15 Sep 2002