(Or "static scope") In a lexically scoped language, the scope of an identifier is fixed at compile time to some region in the source code containing the identifier's declaration. This means that an identifier is only accessible within that region (including procedures declared within it). This contrasts with dynamic scope where the scope depends on the nesting of procedure and function calls at run time. Statically scoped languages differ as to whether the scope is limited to the smallest block (including begin/end blocks) containing the identifier's declaration (e.g. C, Perl) or to whole function and procedure bodies (e.g. ?), or some larger unit of code (e.g. ?). The former is known as static nested scope. |