Towards Structural Version Control

  1. Can we edit programs as data structures and not as text?
  2. How do we perform version control if programs are stored not as text, but as data structures?
  3. Why are all text-based version control systems fundamentally flawed with respect to merging?
  4. How do we find the difference between the parse trees of two programs?

My talk (Feb 10, 2012) was intended to answer these questions.