Static variables date at least to
ALGOL 60 (1960), where they are known as
own variables: {{quote This definition is subtly different from a static variable: it only specifies behavior, and hence lifetime, not storage: an own variable can be allocated when a function is first called, for instance, rather than at program load time. The use of the word
static to refer to these variables dates at least to
BCPL (1966), and has been popularized by the
C programming language, which was heavily influenced by BCPL. The BCPL definition reads: {{quote Note that BCPL defined a "dynamic data item" for what is now called an
automatic variable (local, stack-allocated), not for heap-allocated objects, which is the current use of the term
dynamic allocation. The
static keyword is used in C and related languages both for static variables and other concepts. ==Addressing==