|
Boost : |
From: Gordon Woodhull (gordon_at_[hidden])
Date: 2008-07-06 10:51:13
I just have to share this little insight: finally, a concise definition.
A metagraph is a system of objects where the types of the objects
(classes) and the relations between them (e.g. pointers, mappings,
containers) can be described in a graph called a pattern. In the C++
implementation, the patterns are metadata, which allows static typing
and static polymorphism and moves the abstraction penalty to compile
time (when the pattern is known at coding time). Patterns and their
implementation code are combined into larger patterns; the "total
pattern" is what actually gets instantiated. The library allows
implementation of hypergraphs, subgraphs, various nested/mixed/
clustered layout schemes, constraints on graphs, and generally graphs-
of-graphs, hence the name metagraph.
Can any static analysis fans out there tell me if there's already a
name for this? Note that in this definition, metagraph is something
which already exists in lots of forms. This library proposes (for
now) to implement the data structures in a nicer way and (in the
future) to describe and access existing structures in a consistent way.
My profuse apologies for continuing to talk about code that doesn't
yet exist. Soon, soon.
Cheers,
Gordon
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk