It appears that we have finally reached a logical point to discuss our souls. I’ve mentioned earlier that they are most likely not what we are imagining them to be. What are they then? When we think of our souls, we think of our defining inner entities, our characters, desires, objectives, emotions, and actions. If we approach these individual elements from the programmer's point of view, they are combinations of programming code and the data accumulated while that code was executed. Usually, when computer programs run they occupy two different memory spaces in the main computer memory: code space and data space. If a program has an ability to clone or reproduce with code alterations, it passes its code data to the child program. It may also save the data accumulated during its runtime in a separate file for further use by other programs. Our books are a representation of those "human data files" that are being saved by running programs (us) to be used by other concurrent or future programs (our children). If a program has the ability not only to create, but also to launch a child program, it passes its own code and also can, if designed, pass accumulated running data. The new two different code and data memory areas are allocated on the computer for the new program to run. Then, the "child" program launches its own data accumulation process immediately from the beginning. This combination of unique program code with passed and collected data produces a new "soul" that contains a big chunk of the parent program "soul". Since all programs are unique due to random code alterations, the processing of identical data may (and likely will) cause different results during execution. When looking at humans, that child program code contains pieces of two parent programs in addition to random alterations caused by external factors and pre-defined propagation algorithm.
So, in this author's humble view, our souls are a combination of unique running code and data. Data is not only transferred in the form of books or parent-to-child lectures. Certain data is probably being passed via some biological radiation, like auras or something similar. A very significant amount of information is learned by a child on his or her own accord purely by observing his or her parents and the environment. The program must be running (alive) for the active code and data memory spaces to be allocated on the computer, if not, it is only stored data.
Program/genetic code and collected data are crucially important in forming of a new "soul". Our children inherit our genes (program code), but data is passed over time. Therefore, if you want your soul to live as long as possible, or even be immortal, you better spend as much time with your kids as you possibly can, conveying your thoughts, experiences, and emotions to them. There is no easy way to build an immortal soul; spending time at church or any other religious institutions is not going to get you there at all.
The souls of those of us who, due to different circumstances, are unable to have children of their own, still are not doomed. While they cannot reproduce their code, the ability to pass the data is still there. Remember, it takes two of us to create a child. Gene-wise our children are never exact copies of a single parent. Additionally, there are mutations lurking out there. We all belong to the same species, so while slightly different and unique, our genetic code is still of the same type. What is dramatically different between us is the data. Our experiences, memories, opinions, education, emotions and auras, those are extremely important and represent a huge parts of our souls. The adoption of a child, especially one that is very young (the least data collected on his or her own), is a solid way to ensure the survival of a soul for those who cannot have children of their own. Still, spending time with a child and guiding him or her through life is the only way to give your soul a chance to live forever.