Con la versión 2.0, el proyecto comenzó su transición hacia el concepto «torre compiladora», ya que permite la definición de compiladores de un lenguaje en otro, normalmente desde uno de nivel más alto a otro de lenguaje intermedio de nivel más bajo y, ocasionalmente, a una máquina virtual bytecode y a lenguaje de máquina.