In this article, programming is classified as hot, warm, and cold, based on the temperature zone within which the programming is conducted. The strain and stress locking and releasing mechanisms are discussed within the thermodynamics framework. A new formula is developed for quantifying the strain recovery ratio of cold-programmed SMPs. Stress fixity ratio and stress recovery ratio are also defined based on the understanding of stress locking and recovery mechanisms. State-of-the-art literature on warm and cold programming is reviewed. Well-controlled programming as well as free strain recovery test and constrained stress recovery test are conducted, in order to validate the memory mechanisms discussed in this study. It is found that, while programming temperature has an insignificant effect on the final free shape recovery, it has a significant effect on the stress recovery. The recovery stress programmed by cold programming may be lower, equal to, or higher than that by hot programming, due to the different stress locking mechanisms and other factors such as damage during the thermomechanical cycle.