Some programming languages may use a feature called "smart linking" whereby the linker is aware of or integrated with the compiler, such that the linker knows how external references are used, and code in a library that is never actually "used", even though internally referenced, can be discarded from the compiled application. For example, a program that only uses integers for arithmetic, or does no arithmetic operations at all, can exclude floating-point library routines. This smart-linking feature can lead to smaller application file sizes and reduced memory usage.