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.