Conceptualization and understanding are prerequisites for changing software. But they become harder to achieve as software becomes more complex and expands in scope.
We have many tools for writing software, but few at all for reading and understanding it. What if there were tools that helped us conceptualize systems so that we could change them with greater confidence? What would they look like and how would we use them?
This session describes a new approach that helps you build understanding of new software systems by generating an Idealized Commit Log: a simplified step-by-step deconstruction of a working software system.
The session covers a diverse set of topics including type analysis, code coverage tools, AST transformations and a much-ignored topic of academic computer science pioneered nearly forty years ago called program slicing.