Code Climate does something similar with their Engines[0] specification. Personally I like how they make use of Docker containers to perform the analysis. It is perhaps a bit heavyweight for simple analyses but it makes it really easy to install different language runtimes and tools.
So yes, there are some very simple generic algorithms (line length checking, spacing corrections, we have things like variable name checking in the works which only need a few lines "language definition") and you can combine them with - possibly wrapped or not - language dependent algorithms easily.
This is useful for the user because he doesn't have to learn and configure tons of tools and he has some basic functionality for every language - even the ones he writes tomorrow.
It's also useful for people writing static code analysis because they can just write their algorithm and be done with it - why should everybody rewrite a CLI interface, editor plugins and so on?
I wrote a thesis about code clone detection (another algorithm that is basically generic and would need only a relatively small parsing part per language, coala allows me to modularize meanfully into parsing and language independent AST processing) and it just took me a few functions that actually performed the analysis. People can now use it easily which usually isn't true for research programs and I had even less work than I would have if I had written it without coala.
Can anyone tell me the rocket science behind this?
How would a library know if a code and its libraries are performing software development/engineering best practices?
What types of algorithms do you use and are there other libraries that already does this that is language agnostic?