Declarations are constructs that, upon execution, bind a <#3019#>name<#3019#> to a value (<#3020#>object-declaration<#3020#>), to a declarer (<#3021#>type-declaration<#3021#>) or to a routine (<#3022#>procedure-declaration<#3022#>, <#3023#>operator-declaration<#3023#>).
Apart from this dynamic effect they have a static effect. The occurrence of a declaration makes the name, defined by it, visible in a specific part of the program, the <#3024#>scope<#3024#> of the declaration, together with the type and access attributes with which it is defined.