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 -- Main.EelcoVisser - 15 Sep 2002