tools.analyzer is the code analysis infrastructure behind powerful libraries such as core.async and core.typed. Heavily inspired by the original clojurescript analyzer design, tools.analyzer takes it a step further by implementing a fully multi-pass, host-agnostic and heavily pluggable architecture on top of which not only compilers, but linters, complex macros and code refactoring tools can be easily built. This talk aims to present the general architecture of the library, showcasing how it is used to analyze clojure jvm code and how it can be extended to implement awesome tooling.

Thanks to our sponsors

Immutable code analysis with tools.analyzer

Nicola Mometto is a software developer with interests in programming languages (particularly LISPs), functional programming techniques and compiler design. He has developed and maintains several widely used static analysis libraries for Clojure, a Clojure decompiler, and is a frequent contributor to the Clojure language itself.

tools.analyzer is the code analysis infrastructure behind powerful libraries such as core.async and core.typed. Heavily inspired by the original clojurescript analyzer design, tools.analyzer takes it a step further by implementing a fully multi-pass, host-agnostic and heavily pluggable architecture on top of which not only compilers, but linters, complex macros and code refactoring tools can be easily built. This talk aims to present the general architecture of the library, showcasing how it is used to analyze clojure jvm code and how it can be extended to implement awesome tooling.

Thanks to our sponsors

Immutable code analysis with tools.analyzer

Nicola Mometto is a software developer with interests in programming languages (particularly LISPs), functional programming techniques and compiler design. He has developed and maintains several widely used static analysis libraries for Clojure, a Clojure decompiler, and is a frequent contributor to the Clojure language itself.