En un programa procedimental, por ejemplo escrito en C, existen dos tipos de datos. Datos locales que son ocultos en el interior de la función y son utilizados, exclusivamente, por la función.
Estos datos locales están estrechamente relacionados con sus funciones y están protegidos de modificaciones por otras funciones.
Otro tipo de datos son los datos globales a los cuales se puede acceder desde cualquier función del programa. Es decir, dos o más funciones pueden acceder a los mismos datos siempre que estos datos sean globales. En la Figura se muestra la disposición de variables locales y globales en un programa procedimental.
Un programa grande se compone de numerosas funciones y datos globales y ello con-lleva una multitud de conexiones entre funciones y datos que dificulta su comprensión y lectura.
Todas estas conexiones múltiples originan diferentes problemas. En primer lugar, hacen difícil con-ceptuar la estructura del programa.
En segundo lugar, el programa es difícil de modificar ya que cambios en datos globales pueden necesitar la reescritura de todas las funciones que acceden a los mismos.
También puede suceder que estas modificaciones de los datos globales pueden no ser aceptadas por todas o algunas de las funciones.
Datos locales y globales
Un programa procedimental