La abstración consiste en dividir un programa grande en módulos mas pequeños que realizan tareas específicas, es decir, dividir en funciones y procedimientos y en las llamadas a estos.
Las llamadas a funciones y procedimientos consiste en invocar su nombre y pasarle los parámetros que necesita, olvidandose de su implementación.
Las funciones devuelven siempre un resultado, que es un valor no estructurado y estarán invocadas en expresiones.
Los procedimientos pueden devolver cero o varios valores.
Los parámetros de un procedimiento o función son los encargados del intercambio de datos entre un modulo invocador y uno invocado. Estos parámtros se dividen en:
Parámetros formales: son los que se utilizan en la implementación de un procedimiento o función, junto a sus variables locales.
Parámetros reales: son los parámetros que aparecen en la invocación de una función o procedimiento.
El paso de parámetros a las funciones o procedimientos puede hacerse por valor o por referencia.
El
paso por valor, consiste en hacer una copia del contenido del dato que se pasa y utilizar esa copia en el modulo, lo que conlleva a que cualquier cambio sobre esa copia no cambia el valor de su dato original.
El
paso por referencia, se realiza sobre la direccion de memoria en la que esta almacenada el dato que se pasa como parámetro, por lo que los cambios realizados dentro del módulo se reflejan sobre el dato que se pasa.
Pascal permite recursividad, una función puede invocarse a si misma, es decir, la invocación de la función esta dentro de su propia implementación.
Cuando hablamos de modularidad de un programa, tenemos que mencionar el ámbito de un módulo, que sera el conjunto de modulos que pueden invocarlo.
Mencionar que en pascal se producen efectos laterales, debido a la modificación de variables dentro de un módulo en el que no fueron declaradas y podemos estar modificando variables globales, pensando que estamos trabajado sobre variables locales.