6.3    Datos compartidos en subprogramas.

Localidad y necesidad de compartir datos

Existen cuatro formas básicas de proveer ambientes no locales en lenguajes de programación:

  1. Ambientes "common" explícitos y

ambientes no locales implícitos, basados en:

  1. Scope dinámico
  2. Scope estático
  3. Herencia

6.3.1 Nombres y ambientes de referencia.

Los parámetros transmitidos en forma explícita son el método alternativo principal para compartir objetos dato entre subprogramas.

En el caso de ambientes referenciales no-locales, la compartición se consigue haciendo que ciertos nombres no-locales sean visibles para un subprograma.

El compartir datos por medio de parámetros es particularmente útil cuando a un subprograma se le entregan datos de proceso diferentes cada vez que es llamado.

Parámetros reales y parámetros formales.

Un parámetro formal es un caso particular de un dato local dentro de un subprograma.

Por ejemplo, en C:

SUB(int X, char Y)

se definen dos parámetros formales, llamados X e Y y se declara el tipo de cada uno.

Un parámetro real es un dato que se comparte con el programa que llama.

Métodos para la transmisión de parámetros.

Call by name.

En esta interpretación, cada parámetro formal es visto como una evaluación actual del parámetro real particular.

Así, cada referencia a un parámetro formal requiere una re-evaluación del parámetro real correspondiente.

Call by value.

Si un parámetro es transmitido by-value (llamado by-copy en Ada 95), el valor del parámetro real es "pasado" al llamado parámetro formal.