Hacker News new | past | comments | ask | show | jobs | submit login

Streaming compilation is the way it was always historically done. One reason is that computers used to not have enough RAM to store whole non-trivial programs in it in AST or another intermediate form.

Second reason is that this approach matches how the underlying theory of languages and automatons works. One can view modern AST producing compiler frontend as compiler that compiles it's input into program that builds the resulting AST.

On the other hand many modern optimalization passes simply cannot be done in streaming manner or even by any pushdown automaton.




Yes, which is likely why in older languages like C you must declare symbols before you use them etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: