Software atomization
First Claim
1. A method of loading atomized computer program code and data on demand, comprising:
- loading, from an atom database, into a memory, an atom defining code or data in a fine-grained, individually addressable manner, the atom comprising;
an atom identifier;
computer program code or data information;
computer program code or data reference information; and
modifying the computer program code or data information by transforming a referencing atom identifier into a memory address.
3 Assignments
0 Petitions
Accused Products
Abstract
Software atomization provides a method of loading atomized computer program code and data on demand by loading, from an atom database, into a memory, an atom defining code or data in a fine-grained, individually addressable manner. Atoms comprise an atom identifier, computer program code or data information and computer program code or data reference information. The computer program code or data information is modified by transforming the reference information into memory addresses. The present invention provides for the lazy loading of data both implicitly and explicitly. Data is lazily loaded implicitly when it is referenced from code that is lazily loaded. Data is lazily loaded explicitly by encoding a referencing atom identifier such that the referenced data atom is not loaded until actually accessed at runtime.
-
Citations
27 Claims
-
1. A method of loading atomized computer program code and data on demand, comprising:
-
loading, from an atom database, into a memory, an atom defining code or data in a fine-grained, individually addressable manner, the atom comprising;
an atom identifier;
computer program code or data information;
computer program code or data reference information; and
modifying the computer program code or data information by transforming a referencing atom identifier into a memory address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for atomizing computer program code and data, comprising:
-
receiving the computer program code and data in an object code format defining individually addressable code and data;
extracting computer program code and data information from the computer program code and data in an object code format;
extracting computer program code and data reference information from the computer program code and data in an object code format;
modifying the computer program code and data reference information to use atom identifiers; and
storing the computer program code and data information and computer program code and data reference information in an atom comprising;
an atom identifier;
computer program code or data information; and
computer program code or data reference information.
-
-
18. An apparatus loading atomized computer program code and data on demand, comprising:
-
an atom comprising;
an atom identifier;
computer program code or data information;
computer program code or data reference information; and
an atom management program unit loading, from an atom database, into a memory, the atom defining code or data in a fine-grained, individually addressable manner, and modifying the computer program code or data information by transforming a referencing atom identifier into a memory address.
-
-
19. An apparatus atomizing computer program code and data, comprising:
-
a receiver receiving the computer program code and data in an object code format defining individually addressable code and data;
an extractor extracting computer program code and data information from the computer program code and data in an object code format, and extracting computer program code and data reference information from the computer program code and data in an object code format;
a modifier modifying the computer program code and data reference information to use atom identifiers; and
a storage unit storing the computer program code and data information and computer program code and data reference information in an atom comprising;
an atom identifier;
computer program code or data information; and
computer program code or data reference information.
-
-
20. An apparatus loading atomized computer program code and data on demand, comprising:
-
a means for loading, from an atom database, into a memory, an atom defining code or data in a fine-grained, individually addressable manner, the atom comprising;
an atom identifier;
computer program code or data information;
computer program code or data reference information; and
a means for modifying the computer program code or data information by transforming a referencing atom identifier into a memory address.
-
-
21. An apparatus atomizing computer program code and data, comprising:
-
a means for receiving the computer program code and data in an object code format defining individually addressable code and data;
a means for extracting computer program code and data information from the computer program code and data in an object code format;
a means for extracting computer program code and data reference information from the computer program code and data in an object code format;
a means for modifying the computer program code and data reference information to use atom identifiers; and
a means for storing the computer program code and data information and computer program code and data reference information in an atom comprising;
an atom identifier;
computer program code or data information; and
computer program code or data reference information.
-
-
22. A computer program product comprising:
-
a computer usable medium for loading atomized computer program code and data on demand;
a set of computer program instructions embodied on the computer usable medium, including instructions to;
load, from an atom database, into a memory, an atom defining code or data in a fine-grained, individually addressable manner, the atom comprising;
an atom identifier;
computer program code or data information;
computer program code or data reference information; and
modify the computer program code or data information by transforming a referencing atom identifier into a memory address.
-
-
23. A computer program product comprising:
-
a computer usable medium for atomizing computer program code and data;
a set of computer program instructions embodied on the computer usable medium, including instructions to;
receive the computer program code and data in an object code format defining individually addressable code and data;
extract computer program code and data information from the computer program code and data in an object code format;
extract computer program code and data reference information from the computer program code and data in an object code format;
modify the computer program code and data reference information to use atom identifiers; and
store the computer program code and data information and computer program code and data reference information in an atom comprising;
an atom identifier;
computer program code or data information; and
computer program code or data reference information.
-
-
24. A computer data signal embodied in a carrier wave comprising a code segment for loading atomized computer program code and data on demand, including instructions to:
-
load, from an atom database, into a memory, an atom defining code or data in a fine-grained, individually addressable manner, the atom comprising;
an atom identifier;
computer program code or data information;
computer program code or data reference information; and
modify the computer program code or data information by transforming a referencing atom identifier into a memory address.
-
-
25. A computer data signal embodied in a carrier wave comprising a code segment for atomizing computer program code and data, including instructions to:
-
receive the computer program code and data in an object code format defining individually addressable code and data;
extract computer program code and data information from the computer program code and data in an object code format;
extract computer program code and data reference information from the computer program code and data in an object code format;
modify the computer program code and data reference information to use atom identifiers; and
store the computer program code and data information and computer program code and data reference information in an atom comprising;
an atom identifier;
computer program code or data information; and
computer program code or data reference information.
-
-
26. A memory for storing data for access by a computer program being executed on a data processing system, comprising:
-
a data structure stored in the memory representing an atom database, the data structure comprising;
a header; and
an atom map, the atom map comprising;
an atom map header; and
an atom map body, the atom map body comprising;
an atom map array referencing an atom offset sequence, the atom offset sequence comprising;
a first atom file offset;
a delta coded file offset array; and
referencing an atom comprising;
atom flags;
atom number information;
encoded atom references; and
encoded raw atom bytes. - View Dependent Claims (27)
-
Specification