àmbit de visibilitat

m
Electrònica i informàtica

Conjunt de situacions, en un programa, en què s’aplica una determinada definició o declaració.

La visibilitat d’una declaració defineix el conjunt de situacions en què la declaració té efecte, mentre que la visibilitat d’una definició defineix el conjunt de situacions en què l’objecte definit existeix com a tal. Es diu que una declaració o una definició és visible quan s’està en una de les situacions de l’àmbit de visibilitat d’aquesta declaració o definició. A part de la visibilitat, cal tenir en compte l' accessibilitat : un objecte o una declaració visible pot no ser accessible a causa de l’existència, en la mateixa situació, d’una altra declaració o una altra definició visible que l’oculta (per exemple, per identitat amb els identificadors dels objectes definits). En la visibilitat estàtica , la majoria de llenguatges de programació determinen la visibilitat dels objectes i les declaracions de forma estàtica: la inspecció del codi del programa permet determinar el fragment, dins el codi del programa, on cada objecte i cada declaració són visibles. Un cas típic és el dels llenguatges amb estructures de blocs (com el PASCAL, el C o l’ADA), on l’àmbit de visibilitat coincideix amb el del bloc on es fa la definició o la declaració. En la visibilitat dinàmica en alguns llenguatges de programació (per exemple, Lisp o Snobol), la determinació de la visibilitat es fa dinàmicament: l’àmbit es defineix en funció del conjunt de situacions en què ocorre l’execució del programa. Un exemple de regla de visibilitat dinàmica és el següent: cada cop que apareix un identificador, l’objecte associat correspon al de la darrera definició sobre aquest identificador que s’ha executat, independentment del bloc on aparegui la definició en qüestió. En general, la visibilitat dinàmica és molt fàcil d’implementar, però dificulta la comprensió dels programes; la visibilitat estàtica, tot i que més complexa d’implementar, facilita la comprensió dels programes i permet generar un codi executable més eficient gràcies al fet que el compilador pot realitzar tots els controls d’accessibilitat i visibilitat, i no cal esperar que ho faci el programa durant la seva execució.