Programming in the large and programming in the small

In software engineering, "programming in the large" and "programming in the small" refer to two different aspects of writing software. "Programming in the large" means designing a larger system as a composition of smaller parts, and "programming in the small" means creating those smaller parts by writing lines of code in a programming language. The terms were coined by Frank DeRemer and Hans Kron in their 1975 paper "Programming-in-the-large versus programming-in-the-small",[1] in which they argue that the two are essentially different activities, and that typical programming languages, and the practice of structured programming, provide good support for the latter, but not for the former.

This may be compared to the later Ousterhout's dichotomy, which distinguishes between system programming languages (for components) and scripting languages (for glue code, connecting components).

  1. ^ DeRemer, Frank; Kron, Hans (April 1, 1975). "Programming-in-the large versus programming-in-the-small". Proceedings of the international conference on Reliable software -. Vol. 10. Association for Computing Machinery. pp. 114–121. doi:10.1145/800027.808431. S2CID 1022671 – via ACM Digital Library.