@natecull The Clang project aimed to unify analysis and compilers.
Scala does the same. Pretty handy, too. Rust maybe as well? But that's clang-outputty.
it's all in the IR, as it were, as well as historical problems with compilers.
if all your compilers were made before the idea of having a system to be statically analyzed..... yeah, you have an issue.
that's what happened to pascal, gcc, oberon, lisp, etc, etc, etc.
these ideas that involve modern ideas can't be easily backported to the older systems.
the big CS florishing of the 80s that actually panned out was type theory and strongly typed languages. so we got ocaml, haskell, idris, and friends. and now we're getting the fruits of those in rust, scala, c#, java 8,
those are tending to be designed-for analysis languages or at least well typed. this really really does help.