O escopo estático na programação declara variáveis lexicamente, dependendo da estrutura lógica e da organização do programa. Na programação, o escopo declara um intervalo no qual uma variável é visível e utilizável. O escopo é útil porque diferencia seções de um programa e as variáveis dentro delas.
Uma outra observação sobre o escopo é que sua descrição é um tanto enganosa: ela também se refere ao modo como uma variável funciona dentro de um programa, não apenas na área onde ela existe. Escopo não é o termo mais preciso porque indica apenas a área coberta, não a ação executada. Desenvolvedores e pesquisadores aceitam isso e entendem que escopo significa tanto a definição quanto o uso de uma variável.
Escopo estático vs. dinâmico
O escopo estático é comum em linguagens de programação; o escopo dinâmico, a outra forma de escopo, é muito menos. No escopo estático, se uma área do programa tiver um determinado escopo, uma variável dentro de uma função retornará seu valor atribuído para aquele escopo sempre que a função for executada. Por exemplo, se uma variável x = 5 em uma determinada função e uma definição condicional subsequente para x também for fornecida, x = 5 onde quer que o escopo do programa o defina como tal. Isso é padrão para a maioria das linguagens de programação.
Isso é diferente do escopo dinâmico, que chama o valor usado mais recentemente de uma variável com base na pilha de chamadas do programa. No exemplo acima, se x = 5, mas depois x foi definido posteriormente com um valor de 10, um programa com um escopo dinâmico chamaria x = 10 se esse valor tivesse sido usado mais recentemente. O escopo dinâmico é menos lógico e estruturado do que o escopo estático.