A relocatable program is a type of software whose code can be moved to different memory locations under a different environment. Some common synonyms for relocatable program include "portable program", "transportable program", "adaptable program", and "migratable program". Portable programs can run on different operating systems without modification, whereas transportable programs can be moved between computers or devices with the same operating system. Adaptable programs are designed to adapt to diverse hardware and software configurations. Migratable programs can be migrated from one hardware platform to another. All these synonyms are similar in meaning and refer to the flexibility of a program to be moved or adapted to different environments.