Object code that can execute at different locations in memory. PIC is commonly used for shared libraries so that the same library code can be mapped to a location in each application (using the virtual memory system) where it will not overlap the application or other shared libraries.