Lenguaje de programacion modula-2

Solo disponible en BuenasTareas
  • Páginas : 16 (3924 palabras )
  • Descarga(s) : 0
  • Publicado : 19 de marzo de 2011
Leer documento completo
Vista previa del texto
MODULA 2
Es un lenguaje de programación cuyo autor es Niklaus Wirth, autor también del lenguaje Pascal.
Como novedad respecto a este último lenguaje, introduce el concepto de módulo, y de encapsulación. Del código contenido en un módulo, sólo se facilita una interfaz pública denominada módulo de definición, permaneciendo el resto oculto (encapsulado) para un desarrollador ajeno, lo que facilitael mantenimiento de dichas estructuras de programación a la vez que imposibilita la modificación de las mismas a cualquiera que no posea el código de su módulo de implementación.
Este concepto de módulo constituye el antecedente de las clases u objetos que se observan en el concepto moderno de Programación Orientada a Objetos (POO); sin embargo, la incapacidad de declarar múltiples instancias delos módulos, así como la ausencia de todo tipo de herencia, impiden afirmar que Modula-2 sea un lenguaje orientado a objetos propiamente dicho.
Modula-2 se utiliza principalmente en las universidades por su excelente adaptación a la enseñanza de lenguajes estructurados, pero en el ámbito laboral su difusión ha sido escasa frente al predominio de C, lo que ha contribuido a crear undistanciamiento entre universidad y mercado laboral.
Existen compiladores de Modula-2 como Mocka o GNU Modula-2 (para GNU/Linux y resto de sistemas soportados por GCC), FST (para MS-DOS) o Native XDS (para Windows) entre otros.
ESTRUCTURA DEL LENGUAJE

MODULE Nombre_Programa;
... Declaración de variables, importación de funciones y declaración de tipos
BEGIN
... Sentencias a través de las cuales elprograma hará lo que nosotros querremos que haga
END NombrePrograma.

Esta es la estructura Básica de cualquier programa en Modula 2. Todo programa en Modula 2 comienza por la sentencia MODULE seguida por el nombre que recibirá el programa (internamente). Posteriormente, si que las hay, se procede a declarar variables (serian el equivalente a variables globales de otros lenguajes), tipos eimportar las funciones de librerías que vayamos a utilizar. La etiqueta BEGIN (obligatoria siempre al igual que MODULE y END) nos indica en donde empezara la codificación de los algoritmos (entiendase algoritmo como código que realiza proporciona ciertos resultados). Para finalizar, todos los módulos terminan en un END final seguido del nombre del módulo. Si se trata de módulo principal de laaplicación, después del nombre del programa siempre va un punto (".").

Por otro lado, después de cada sentencia, declaración..., siempre tiene que ir un punto y coma (";") , aunque en algunas sentencias no es necesario codificarlo porque ya esta implícito porque la siguiente sentencia es un "END" [. Debido a lo anterior, se pueden escribir más de una sentencia por linea, aunque no es aconsejable paramantener legibilidad en el código, excepto en alguna ocasión muy contada en donde la unión de sentencias tenga significado conjunto.

Estructura general de un programa. Ejemplo

MODULE Circulo;
FROM IO IMPORT WrStr, RdReal, RdLn, WrReal;
CONST
PI = 3.1416; (* El número PI *)
PRECISION = 5; (* Nº de dígitos al escribir reales *)
ANCHO = 0; (* Calcular ancho necesario automáticamente *)VAR
Radio, Area : REAL;
BEGIN
WrStr(‘Introduce el radio: ‘);
Radio := RdReal();
RdLn;
Area := PI*Radio*Radio;
WrStr(‘El área del círculo es ‘);
WrReal(Area,PRECISION,ANCHO)
END Circulo.

Podemos distinguir las siguientes partes dentro del programa:
• Cabecera: todo programa debe comenzar con la palabra reservada MODULE seguida de un identificador, que indica el nombredel programa, y un signo punto y coma. En el presente ejemplo se ha elegido como nombre del programa el identificador Circulo. El programa debe finalizar con la palabra reservada END seguida del nombre del programa (el mismo identificador usado en la cabecera) y un punto.
• Listas de importación: a continuación es necesario enumerar los módulos de biblioteca usados por el...
tracking img