Multiprogramming

Multiprogramming refers to the practice of executing the same portion of code in multiple different non-trivial contexts. What makes a context "non-trivial" is not well defined, but it generally excludes executing the same portion of code in merely a different state (i.e. a different set of values in global variables.)

A classic example of multiprogramming is executing the same code in a different direction in a multidirectional language such as Befunge or SNUSP.

This term should not be confused with the non-esoteric meaning of the word, usually used in operating systems circles, where it means something closer to concurrent programming. A more precise definition is given on this page.