Harmonia

Harmonia Version Library

Harmonia's version library provides complete history information for a variety of C++ data types. By overloading the assignment operator, the library maintains a log of all values ever assigned to the variable. The version library is transaction-based, like a database, to enable coherent updates to several instances of versioned data types at a time.

Harmonia uses versioned data types to store the syntax tree and semantic information related to the program source code that a user is editing. The editor can use this information for parser error recovery, as well as to support both temporal (the traditional form) and structural undo.