Drawbacks


An "open" compiler, such as the one described above, requires careful design and coding. Emphasis must be put on readability and consistency, at the expense of optimal compilation speed. It must be ultimately modular, well-written, and well-documented. In order to simplify any process which would interact with the compilation passes, YAFL's compiler is memory-based: the intermediate data structure which represents the compiled module is entirely present in memory.

Therefore, YAFL requires a rather large amount of memory to compile any significant module. However, as time goes by, more powerful hardware will be available and this limitation becomes less and less relevant.