The region of a program where a name binding is visible.
Block scoping is implemented with a stack of symbol tables; shadowing warnings in GCC (-Wshadow) and Go vet come from this analysis.