A file containing routines which are linked with a program at run time rather than at compile-time. The advantage of such dynamic linking is that only one copy of the library needs to be stored, rather than a copy being included with each executable that refers to it. This can greatly reduce the disk space occupied by programs. Furthermore, it means that all programs immediately benefit from changes (e.g. bug fixes) to the single copy of the library without requiring recompilation. Since the library code is normally classified as read-only to the memory management system, it is possible for a single copy of the library to be loaded into memory and shared by all active programs, thus reducing RAM and virtual memory requirements and program load time.