~/talk

Code is not text! How graph technologies can help us to understand our code better.

Talkat EuroPython 2015 · 2015-07-20..07-26· [databases]
github:adewes
slides:none on file

Claim: code treated as an AST graph and stored in a graph database yields concrete, queryable artifacts — hashed nodes for commits, pattern-match queries, semantic diffs, and visualizations — not vague metaphors. Uses Python ast plus graph DB techniques (Merkle-like hashing, Neo4j/Arango-style storage) to store many commits of Flask, producing a cityscape and module dependency graph. Result scales: 500,000 AST vertices reduce to ~8,000 stored nodes, enabling clone detection, custom linters, and meaningful change analysis.

AI-written summary · about

  1. 0:00Intro
  2. 0:58How we usually think about code
  3. 1:37Our Journey
  4. 1:54Graphs explained in 30 seconds
  5. 3:13Graphs in Programming
  6. 4:05Building the Code Graph
  7. 5:59Storing the Graph: Merkle Trees
  8. 9:08AST Example
  9. 10:27Efficieny of this Approach
  10. 14:11Querying & Navigation
  11. 15:47Examples (contd.)
  12. 16:53Example: Code Complexity The cyclomatic complexity is a quantitative measure of the number of linearly
  13. 19:21Example: Flask
  14. 21:16Exploring Dependencies in a Code Base
  15. 23:16Pattern Matching: Text vs. Graphs
  16. 25:08Example: Building a Code Checker
  17. 26:32Adding an exception to the rule
  18. 27:33Example: Diff from Django Project
  19. 28:28Basic Problem: Tree Isomorphism (NP-complete!)
  20. 29:10Similar Problem: Chemical Similarity Benzene
  21. 31:33Applications
  22. 33:14Example: Semantic Diff
  23. 34:29Summary: Text vs. Graphs
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.