In
computer programming, the
scope of a
name binding – an association of a name to an entity, such as a
variable – is the part of a
computer program where the binding is valid: where the name can be used to refer to the entity. In other parts of the program the name may refer to a different entity (it may have a different binding), or to nothing at all (it may be unbound). The scope of a binding is also known as the
visibility of an entity, particularly in older or more technical literature – this is from the perspective of the referenced entity, not the referencing name. A scope is a part of a program that is or can be the scope for a set of bindings – a precise definition is tricky (see below), but in casual use and in practice largely corresponds to a
block, a function, or a file, depending on language and type of entity. The term "scope" is also used to refer to the set of
all entities that are visible or names that are valid within a portion of the program or at a given point in a program, which is more correctly referred to as
context or
environment.