Any software performing either the final stage in a process, or a task not apparent to the user. A common usage is in a compiler. A compiler's back-end generates machine language and performs optimisations specific to the machine's architecture. The term can also be used in the context of network applications. E.g. "The back-end of the system handles socket protocols". Contrast front end.