A general statement of the problem of dynamic program relocation is presented as an aid in describing specific relocation principles. The main purpose of the paper is to review a number of typical methods of meeting the expanding need for dynamic program relocation. Although no attempt is made at evaluation, the methods are discussed in the context of selected computer systems for tutorial concreteness.