In this course, we’ll start with the fundamentals of abstract syntax trees (ASTs) and learn the basic mental models. This general AST knowledge can be translated to almost any tool that works with ASTs.
Why this course?
Understanding and using ASTs unlocks the ability to make sweeping changes in a safe and reliable way in any size codebase.
Course topics
Throughout this course, we’ll have converted source code into ASTs, traversed, mutated, and generated ASTs. With these concepts we’ll then explore several practical applications including things like code audits (static analysis), code transformations (codemods), and linting.
Module 1
We’ll learn the fundamentals of abstract syntax trees.
Module 2
We’ll learn how to work with ASTs.
Module 3
We’ll learn how to statically analyze, or “audit” code to understand the state of the codebase using abstract syntax trees.
Module 4
We’ll learn how to transform, or “codemod” code from one state to another using abstract syntax trees.
Module 5
We’ll learn how to write rules, or “lint” code using abstract syntax trees.