Code Is Not Text - How Graph Technologies Can Help Us to Understand Our Code Better
Offered By: EuroPython Conference via YouTube
Course Description
Overview
Explore how graph technologies can revolutionize code understanding and software development in this EuroPython 2015 conference talk. Discover why treating code as text is limiting and learn about the benefits of viewing code as a graph structure. Examine specific examples of how this approach can improve comprehension of large codebases, enhance code quality, and automate aspects of software development. Gain insights into querying and navigating code graphs, analyzing code complexity, exploring dependencies, and performing semantic diffs. Consider the speaker's vision for the future of programming, moving beyond simple text editors. Delve into topics such as abstract syntax trees, Merkle trees, pattern matching, and the challenges of tree isomorphism in diff algorithms.
Syllabus
Intro
How we usually think about code
Our Journey
Graphs explained in 30 seconds
Graphs in Programming
Building the Code Graph
Storing the Graph: Merkle Trees
AST Example
Efficieny of this Approach
Querying & Navigation
Examples (contd.)
Example: Code Complexity The cyclomatic complexity is a quantitative measure of the number of linearly
Example: Flask
Exploring Dependencies in a Code Base
Pattern Matching: Text vs. Graphs
Example: Building a Code Checker
Adding an exception to the rule
Example: Diff from Django Project
Basic Problem: Tree Isomorphism (NP-complete!)
Similar Problem: Chemical Similarity Benzene
Applications
Example: Semantic Diff
Summary: Text vs. Graphs
Taught by
EuroPython Conference
Related Courses
Towards language universals through lexical semantics: introduction to lexical and semantic typologyHigher School of Economics via Coursera Compilers: Theory and Practice
Georgia Institute of Technology via Udacity ปัญญาประดิษฐ์เพื่องานธุรกิจ | Artificial Intelligence for Business
Rattana Bundit University via ThaiMOOC Compiler Design
YouTube Select Topics in Python: Natural Language Processing
Codio via Coursera