Módulo-2


Modula-2 es un lenguaje de programación procedimental estructurado desarrollado entre 1977 y 1985 por Niklaus Wirth en ETH Zurich . Fue creado como lenguaje para el sistema operativo y el software de aplicación de la estación de trabajo personal Lilith . [1] Más tarde se usó para programar fuera del contexto de Lilith.

Wirth vio a Modula-2 como un sucesor de sus lenguajes de programación anteriores Pascal y Modula . [2] [3] Los conceptos principales son:

El diseño del lenguaje fue influenciado por el lenguaje Mesa y el Xerox Alto , ambos de Xerox PARC , que Wirth vio durante su año sabático de 1976 allí. [4] La revista informática Byte dedicó el número de agosto de 1984 al lenguaje y el entorno que lo rodea. [5]

Modula-2 es un lenguaje procedimental de propósito general , suficientemente flexible para hacer programación de sistemas , pero con una aplicación mucho más amplia. En particular, fue diseñado para soportar la compilación separada y la abstracción de datos de una manera directa. Gran parte de la sintaxis se basa en el lenguaje anterior y mejor conocido de Wirth, Pascal . Modula-2 fue diseñado para ser muy similar a Pascal, con algunos elementos y ambigüedades sintácticas eliminadas y la importante adición de un concepto de módulo y soporte de lenguaje directo para multiprogramación .

El lenguaje permite el uso de compiladores de un solo paso . Tal compilador de Gutknecht y Wirth era aproximadamente cuatro veces más rápido que los compiladores anteriores de múltiples pasos . [6]

Se puede usar un módulo Modula-2 para encapsular un conjunto de subprogramas y estructuras de datos relacionados, y restringir su visibilidad desde otras partes del programa. El diseño del módulo implementó la función de abstracción de datos de Modula-2 de una manera muy limpia. Los programas de Modula-2 se componen de módulos, cada uno de los cuales consta de dos partes: un módulo de definición , la parte de la interfaz, que contiene solo las partes del subsistema que se exportan (visibles para otros módulos), y un módulo de implementación , que contiene el código de trabajo que es interno al módulo.