Views for software atomization
First Claim
1. A method of creating a view of an atom database, comprising:
- defining a set of transformation operations; and
applying the set of transform operations to the atom database, such that when the transformation operations are applied virtually, at runtime, a virtual atom database is created and when the transformation operations are applied literally a new atom database is created, the atom database storing atoms, the atoms comprising;
a permanently assigned atom identifier, computer code and/or data, references to other atoms.
3 Assignments
0 Petitions
Accused Products
Abstract
Views for software atomization provide runtime transformations of existing atoms in atom databases to create new or virtual atom databases. Views provide for sharing of code and data atoms that are stored in an atom database, as well as providing sharing of code and data atoms that are loaded into memory. A view is a set of transformation operations, including insert a new atom, modify an existing atom, or delete an existing atom, which can be applied to an atom database. The transformation operations can be applied, either literally, to create a new atom database on disk, or virtually, to create, at runtime, a virtual atom database, without actually having to create an actual atom database on disk. Modifying an existing atom can be done in a variety of ways, including changing the atom bytes, or the atom references, or an attribute of the atom.
-
Citations
24 Claims
-
1. A method of creating a view of an atom database, comprising:
-
defining a set of transformation operations; and
applying the set of transform operations to the atom database, such that when the transformation operations are applied virtually, at runtime, a virtual atom database is created and when the transformation operations are applied literally a new atom database is created, the atom database storing atoms, the atoms comprising;
a permanently assigned atom identifier, computer code and/or data, references to other atoms. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for creating a set of atom transformation operations for transforming a first atom database to a second atom database, comprising:
-
a) canonicalizing, using a standard atom sharing algorithm, the first atom database and the second atom database, each of the first atom database and the second atom database storing atoms comprising;
a permanently assigned atom identifier, computer code and/or data, references to other atoms. b) identifying a set of goal merges between atoms of the first atom database and atoms of the second atom database;
c) identifying a set of assist merges between atoms of the first atom database and atoms of the second atom database that assist the goal merges;
d) repeating while the set of goal merges is not empty the steps of;
i) selecting a best merge in the set of assist merges;
ii) committing the selected best merge;
iii) updating the set of goal merges;
iv) updating the set of assist merges;
e) undoing each committed merge that is not a reuse merge or did not assist with a committed reuse merge;
f) determining if uniquely compatible merges were created and adding the uniquely compatible merges to the goal merges, assigning an infinite weight to one of the uniquely compatible merges and goto to step c);
g) applying a modified atom sharing algorithm using the first database and the second database in order to identify remaining isomorphisms;
h) determining if uniquely compatible merges were created and adding the uniquely compatible merges to the goal merges, assigning an infinite weight to one of the uniquely compatible merges and goto to step c); and
i) determining if any compatible merges were created and committing the compatible merge with the largest weigh, assigning an infinite weight to the committed compatible merge, adding the committed compatible merge to the set of goal merges and goto step c). - View Dependent Claims (19, 20, 21)
-
-
22. An apparatus for creating a view of an atom database, comprising:
-
a set of transformation operations; and
a processor applying the set of transform operations to the atom database, such that when the transformation operations are applied virtually, at runtime, a virtual atom database is created and when the transformation operations are applied literally a new atom database is created, the atom database storing atoms, the atoms comprising;
a permanently assigned atom identifier, computer code and/or data, references to other atoms.
-
-
23. An apparatus for creating a view of an atom database, comprising:
-
a means for defining a set of transformation operations; and
a means for applying the set of transform operations to the atom database, such that when the transformation operations are applied virtually, at runtime, a virtual atom database is created and when the transformation operations are applied literally a new atom database is created, the atom database storing atoms, the atoms comprising;
a permanently assigned atom identifier, computer code and/or data, references to other atoms.
-
-
24. A computer program product comprising:
-
a computer usable medium for creating a view of an atom database;
a set of computer program instructions embodied on the computer usable medium, including instructions to;
define a set of transformation operations; and
apply the set of transform operations to the atom database, such that when the transformation operations are applied virtually, at runtime, a virtual atom database is created and when the transformation operations are applied literally a new atom database is created, the atom database storing atoms, the atoms comprising;
a permanently assigned atom identifier, computer code and/or data, references to other atoms.
-
Specification