Method for self-organizing software
First Claim
1. A method for executing code using a software self-assembly system, comprising:
- constructing at least one machine using computer software, said at least one machine comprising at least one bonding site and at least one submachine part, said submachine part consisting of a component selected from a data storage means, an actuating means containing executable code and a control means, wherein each of said at least one bonding site comprises an identifier key;
translating an external stimulus into a machine using an information manager, said machine comprising at least one bonding site and at least one submachine part, said submachine part consisting of a component selected from a data storage means, an actuating means and a control means, wherein each of said at least one bonding site comprises an identifier key;
identifying said bonding sites with a status selected from available and unavailable;
establishing matches between complementary identifier keys;
posting a make-bond event between said machines with complementary identifier keys, said complementary identifier keys associated with bonding sites with a status of available;
forming a bond between bonding sites associated with said matching complementary identifier keys; and
activating code execution in said actuating means.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for dynamically self-assembling and executing software is provided, containing machines that self-assemble execution sequences and data structures. In addition to ordered functions calls (found commonly in other software methods), mutual selective bonding between bonding sites of machines actuates one or more of the bonding machines. Two or more machines can be virtually isolated by a construct, called an encapsulant, containing a population of machines and potentially other encapsulants that can only bond with each other. A hierarchical software structure can be created using nested encapsulants. Multi-threading is implemented by populations of machines in different encapsulants that are interacting concurrently. Machines and encapsulants can move in and out of other encapsulants, thereby changing the functionality. Bonding between machines'"'"' sites can be deterministic or stochastic with bonding triggering a sequence of actions that can be implemented by each machine. A self-assembled execution sequence occurs as a sequence of stochastic binding between machines followed by their deterministic actuation. It is the sequence of bonding of machines that determines the execution sequence, so that the sequence of instructions need not be contiguous in memory.
-
Citations
26 Claims
-
1. A method for executing code using a software self-assembly system, comprising:
-
constructing at least one machine using computer software, said at least one machine comprising at least one bonding site and at least one submachine part, said submachine part consisting of a component selected from a data storage means, an actuating means containing executable code and a control means, wherein each of said at least one bonding site comprises an identifier key; translating an external stimulus into a machine using an information manager, said machine comprising at least one bonding site and at least one submachine part, said submachine part consisting of a component selected from a data storage means, an actuating means and a control means, wherein each of said at least one bonding site comprises an identifier key; identifying said bonding sites with a status selected from available and unavailable; establishing matches between complementary identifier keys; posting a make-bond event between said machines with complementary identifier keys, said complementary identifier keys associated with bonding sites with a status of available; forming a bond between bonding sites associated with said matching complementary identifier keys; and activating code execution in said actuating means. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of developing a hierarchical self-assembling software structure, comprising:
-
providing an encapsulated environment comprising at least two encapsulated machines formulated using computer software, each said machine comprising at least one bonding site and at least one submachine part, said submachine part consisting of a component selected from a data storage means, an actuating means and a control means, wherein each of said at least one bonding site comprises an identifier key; and providing a surface machine formulated using computer software that controls access between any machine external to said encapsulated environment and any machine internal to encapsulated environment. - View Dependent Claims (23, 24, 25, 26)
-
Specification