If you have heard of Infer, you will know that one major advantage it has is its ability to do interprocedural/interfile analysis at scale. But there is an issue – extensibility. Adding a checker for a new type of bug into Infer was a complex task that required a lot of deep static analysis expertise as well as knowledge about Infer’s internals – and wasn’t every developer’s forte.
You know what they did to solve it?
They wrote a new language.
AL: A new declarative language for detecting bugs with Infer