Articulo de referencia

Módulo-2

[https://www.nongnu.org/gm2/homepage.html GNU Modula-2] [https://www.modula2.org/ ADW Modula-2]"},"dialects":{"wt":"PIM2, PIM3, PIM4, ISO"},"influenced by":{"wt":"[[Modula]], [[...

Modula-2 es un lenguaje de programación estructurado y procedimental desarrollado entre 1977 y 1985/8 por Niklaus Wirth en la ETH Zúrich . Fue creado como el lenguaje para el sistema operativo y el software de aplicación de la estación de trabajo personal Lilith . [ 1 ] Posteriormente se utilizó para programar fuera del contexto de Lilith .

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

  1. El módulo como unidad de compilación para compilación separada
  2. La corrutina como bloque de construcción básico para procesos concurrentes
  3. Tipos y procedimientos que permiten el acceso a datos específicos de la máquina.

El diseño del lenguaje estuvo 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 su entorno. [ 5 ]

Wirth creó la serie de lenguajes Oberon como sucesora de Modula-2, mientras que otros (en particular en Digital Equipment Corporation y Acorn Computers , más tarde Olivetti ) desarrollaron Modula-2 hasta convertirlo en Modula-2+ y posteriormente en Modula-3 .

Descripción

Modula-2 es un lenguaje procedimental de propósito general , adecuado tanto para la programación de sistemas como para la programación de aplicaciones. Su sintaxis se basa en Pascal , el lenguaje anterior de Wirth , con la eliminación de algunos elementos y ambigüedades sintácticas. Se incorporó el concepto de módulo , diseñado para admitir la compilación independiente y la abstracción de datos, así como soporte directo del lenguaje para la multiprogramación .

El lenguaje permite el uso de compiladores de una sola pasada . Un compilador de este tipo , creado por Gutknecht y Wirth, era aproximadamente cuatro veces más rápido que los compiladores de múltiples pasadas anteriores . [ 6 ]

Aquí tenéis un ejemplo del código fuente del programa "Hola mundo":

MÓDULO Hola ; (* Para GNU Modula-2 esto sería FROM StrIO IMPORT WriteString *) FROM STextIO IMPORT WriteString ; BEGIN WriteString ( "¡Hola Mundo!" ) END Hola .

Un módulo Modula-2 puede utilizarse para encapsular un conjunto de subprogramas y estructuras de datos relacionados, y restringir su visibilidad desde otras partes del programa. [ 7 ] Los programas Modula-2 se componen de módulos, cada uno de los cuales se compone de dos partes: un módulo de definición , la parte de interfaz, que contiene solo aquellas 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.

El lenguaje tiene un control de ámbito estricto . Excepto por los identificadores estándar, ningún objeto externo es visible dentro de un módulo a menos que se importe explícitamente; ningún objeto interno del módulo es visible desde el exterior a menos que se exporte explícitamente.

Supongamos que el módulo M1 exporta los objetos a, b, c y P enumerando sus identificadores en una lista de exportación explícita.

MÓDULO DE DEFINICIÓN M1 ; EXPORTACIÓN CALIFICADA a , b , c , P ; ...

Los objetos a, b, c y P del módulo M1 se conocen fuera de este módulo como M1.a, M1.b, M1.c y M1.P. Se exportan de forma cualificada al exterior (suponiendo que el módulo M1 sea global). El nombre del módulo exportador, es decir, M1, se utiliza como calificador, seguido del nombre del objeto.

Supongamos que el módulo M2 contiene la siguiente declaración IMPORT

MÓDULO M2 ; IMPORTAR M1 ; ...

Esto significa que los objetos exportados por el módulo M1 fuera de su programa contenedor ahora pueden usarse dentro del módulo M2. Se hace referencia a ellos de forma cualificada : M1.a, M1.b, M1.c y M1.P. Ejemplo:

... M1 . a := 0 ; M1 . c := M1 . P ( M1 . a + M1 . b ); ...

La exportación cualificada evita conflictos de nombres. Por ejemplo, si otro módulo, M3, exporta un objeto llamado P, ambos objetos se pueden distinguir, ya que M1.P es diferente de M3.P. No importa que ambos objetos se llamen P dentro de sus módulos de origen, M1 y M3.

Existe un método alternativo. Supongamos que el módulo M4 se formula de la siguiente manera:

MÓDULO M4 ; DESDE M1 IMPORTAR a , b , c , P ;

Esto significa que los objetos exportados por el módulo M1 al exterior pueden volver a utilizarse dentro del módulo M4, pero ahora mediante simples referencias a los identificadores exportados de forma no cualificada , como: a, b, c y P. Ejemplo:

... a := 0 ; c := P ( a + b ); ...

Este método de importación se puede utilizar si no hay conflictos de nombres. Permite usar variables y otros objetos fuera de su módulo de origen de la misma manera que dentro de dicho módulo.

Las reglas de exportación e importación no solo protegen los objetos contra accesos no deseados, sino que también permiten crear una referencia cruzada de la definición de cada identificador en un programa. Esta propiedad facilita el mantenimiento de programas grandes que contienen muchos módulos.

El lenguaje permite la concurrencia en un solo procesador ( monitores , corrutinas y transferencia explícita de control) y el acceso al hardware (direcciones absolutas, manipulación de bits e interrupciones ). Utiliza un sistema de tipos nominal .

Dialectos

Existen dos dialectos principales de Modula-2. El primero es PIM , llamado así por el libro Programming in Modula-2 de Niklaus Wirth. [ 4 ] Hubo tres ediciones principales de PIM: la segunda, la tercera (corregida) y la cuarta. Cada una describe ligeras variantes del lenguaje. El segundo dialecto principal es ISO , llamado así por el esfuerzo de estandarización de la Organización Internacional de Normalización . A continuación, se presentan algunas de las diferencias entre ellos.

  • PIM2 (1983)
    • EXPORTCláusula explícita requerida en los módulos de definición.
    • La función SIZEdebe importarse desde el módulo.SYSTEM
  • PIM3 (1985)
    • Se eliminó la EXPORTcláusula de los módulos de definición tras observar que todo lo que se encuentra dentro de un módulo de definición define la interfaz de ese módulo, por lo que la EXPORTcláusula era redundante.
    • La función SIZEes omnipresente (visible en cualquier ámbito sin necesidad de importación).
  • PIM4 (1988)
    • Especifica el comportamiento del MODoperador cuando los operandos son negativos.
    • Se requería que todas ARRAY OF CHARlas cadenas terminaran con un carácter nulo ASCII, incluso si la cadena encajaba exactamente en su matriz.
  • ISO (1996, 1998)
    • ISO Modula-2 resolvió la mayoría de las ambigüedades de PIM Modula-2. Añadió los tipos de datos COMPLEXy LONGCOMPLEXlas excepciones, la terminación del módulo ( FINALLYcláusula) y una biblioteca completa de entrada/salida (E/S) estándar . Existen muchas diferencias y aclaraciones menores. [ 8 ]

Superseries

Existen varios superconjuntos de Modula-2 con extensiones de lenguaje para dominios de aplicación específicos:

Derivados

Existen varios lenguajes derivados que se asemejan mucho a Modula-2, pero que son lenguajes nuevos por derecho propio. La mayoría son lenguajes diferentes con propósitos distintos y con sus propias fortalezas y debilidades:

Muchos otros lenguajes de programación actuales han adoptado características de Modula-2.

Elementos del lenguaje

Palabras reservadas

PIM [2,3,4] define 40 palabras reservadas :

Y SI NO, REPETIR BUCLE FIN DE LA MATRIZ MOD RETORNO COMIENZO DEL MÓDULO DE SALIDA POR EXPORTACIÓN NO ENTONCES CASO PARA DE A CONSTANTE DE O TIPO DEFINICIÓN SI PUNTERO HASTA PROCEDIMIENTO DE IMPLEMENTACIÓN DIV VAR IMPORTAR CALIFICADO MIENTRAS OTRO REGISTRO CON 

Identificadores integrados

PIM [3,4] define 29 identificadores integrados :

ABS EXCL LONGINT REAL BITSET FALSO TAMAÑO LARGO BOOLEAN FLOAT MAX TRUE CAP ALTO MIN TRUNC CARDINAL ALTO NULO VAL CHAR INC ODD CHR INCL ORD PROCEDIMIENTO ENTERO DEC 

Uso de sistemas embebidos

Modula-2 se utiliza para programar muchos sistemas embebidos .

Cambridge Módulo-2

Cambridge Modula-2, de Cambridge Microprocessor Systems, se basa en un subconjunto de PIM4 con extensiones de lenguaje para el desarrollo de sistemas embebidos. El compilador se ejecuta en MS-DOS y genera código para microcontroladores embebidos basados ​​en la serie Motorola 68000 (M68k) que utilizan el sistema operativo MINOS.

Mod51

Mod51 de Mandeno Granville Electronics se basa en ISO Modula-2 con extensiones de lenguaje para el desarrollo de sistemas embebidos, siguiendo la norma IEC 1131 , un estándar industrial para controladores lógicos programables (PLC) estrechamente relacionado con Modula-2. El compilador Mod51 genera código independiente para microcontroladores basados ​​en 80C51.

Módulo-GM

Delco Electronics , entonces filial de GM Hughes Electronics , desarrolló una versión de Modula-2 para sistemas de control embebidos a partir de 1985. Delco la denominó Modula-GM. Fue el primer lenguaje de programación de alto nivel utilizado para reemplazar el código máquina (lenguaje) en sistemas embebidos en las unidades de control del motor (ECU) de Delco . Esto fue significativo porque Delco producía más de 28 000 ECU diarias en 1988 para GM. En aquel entonces, era el mayor productor mundial de ECU. [ 19 ] El primer uso experimental de Modula-GM en un controlador embebido fue en el controlador del sistema de frenos antibloqueo de 1985, basado en el microprocesador Motorola 68xxx, y en la ECU Gen-4 de 1993 utilizada por los equipos del Campeonato Mundial de Automovilismo Champ Car (CART) y la Liga de Carreras Indy (IRL). [ 20 ] El primer uso en producción de Modula-GM fue en camiones GM, comenzando con el módulo de control del vehículo (VCM) del año modelo 1990, utilizado para administrar los motores Vortec de GM Powertrain . Modula-GM también se utilizó en todas las ECU para la familia de motores Buick V6 de 90° de GM, Serie 3800 II, utilizada en el Buick Park Avenue del año modelo 1997-2005 . Los compiladores Modula-GM y las herramientas de administración de software asociadas fueron obtenidos por Delco de Intermetrics .

Modula-2 fue seleccionado como base para el lenguaje de alto nivel de Delco debido a sus numerosas ventajas sobre otras alternativas en 1986. Después de que Delco Electronics se separara de GM (junto con otras divisiones de componentes) para formar Delphi Automotive Systems en 1995, la producción global requirió el uso de un lenguaje de software de alto nivel no propietario. El software integrado para ECU que ahora se desarrolla en Delphi se compila con compiladores comerciales para el lenguaje C.

Satélites rusos de radionavegación

Los satélites del sistema ruso de radionavegación por satélite GLONASS , similar al Sistema de Posicionamiento Global (GPS) de Estados Unidos, están programados en Modula-2. [ 21 ]

Compiladores

  • Amsterdam Compiler Kit (ACK) Modula-2 – para MINIX ; software gratuito [ 22 ]
  • ADW Modula-2 – para Windows, compatible con ISO, ISO/IEC 10514-1, ISO/IEC 10514-2 (extensión OO), ISO/IEC 10514-3 (extensión genérica); software gratuito [ 23 ]
  • Aglet Modula-2 – para AmigaOS 4.0 para PowerPC ; software gratuito [ 24 ]
  • Fitted Software Tools (FST) Modula-2 – para DOS; software gratuito [ 25 ]
  • Gardens Point Modula-2 (GPM) – para BSD, Linux, OS/2, Solaris ; compatible con ISO; software gratuito, a fecha de 30 de julio de 2014 [ 26 ]
  • Gardens Point Modula-2 (GPM/CLR) – para .NET Framework ; software gratuito [ 27 ]
  • GNU Modula-2 – para plataformas GCC (en 2023 con la versión 13 se fusionó oficialmente con el repositorio principal de GCC), versión 1.0 publicada el 11 de diciembre de 2010; versión 15.1 publicada el 25 de abril de 2025; cumplimiento: PIM2, PIM3, PIM4, ISO/IEC 10514-1; software libre , Licencia Pública General de GNU (GPL) [ 28 ]
  • Logitech [ 29 ] - también tenían un "Real Time Kernel" para uso integrado (1987) [ 30 ] [ 31 ]
  • M2Amiga – para Amiga ; software libre [ 32 ]
  • M2M – por N. Wirth y colaboradores de ETH Zurich, multiplataforma, genera código M para máquina virtual ; software gratuito [ 33 ]
  • M2RT11 – por N. Wirth y colaboradores de ETH Zurich, creado originalmente para el arranque de Lilith
  • MacMETH – por N. Wirth y colaboradores de ETH Zurich para Macintosh, solo Classic; software gratuito [ 34 ]
  • Mod51 – para la familia de microcontroladores Intel 80x51, compatible con ISO, extensiones IEC1132; software propietario [ 35 ]
  • Megamax Modula-2 – para Atari ST con documentación; software gratuito [ 36 ]
  • Modula-2 R10 – compilador de referencia para este Modula; código abierto, revisión por pares [ 37 ]
  • ModulaWare – para OpenVMS ( VAX y Alpha ), compatible con ISO; software propietario [ 38 ]
  • ORCA/Modula-2 – para Apple IIGS por The Byte Works para el Taller de Programadores de Apple
  • p1 Modula-2 – para Macintosh , Classic y macOS ( PowerPC y Carbon (API) solamente), compatible con ISO; software propietario [ 39 ]
  • MOCKA – para varias plataformas, compatible con PIM; versiones comerciales y gratuitas para Linux/BSD [ 40 ]
  • TDI Modula-2 – para Atari ST , por TDI Software [ 41 ]
  • Terra M2VMS – para OpenVMS ( VAX y Alpha ), compatible con PIM; software propietario [ 42 ]
  • m2c, Sistema Ulm Modula-2 – para Solaris (Sun SPARC y Motorola 68k ); software libre, Licencia Pública General GNU (GPL) [ 43 ]
  • XDS – Biblioteca compatible con ISO y TopSpeed: XDS-x86 nativo para x86 (Windows y Linux); XDS-C para Windows y Linux (versiones de 16 y 32 bits), compatible con C ( K&R y ANSI ); software gratuito [ 44 ]

Turbo Módulo-2

Turbo Modula-2 fue un compilador y un entorno de desarrollo integrado para MS-DOS desarrollado por Borland , pero no publicado . Jensen and Partners, entre cuyos miembros se encontraba el cofundador de Borland, Niels Jensen, compró el código fuente no publicado y lo convirtió en TopSpeed ​​Modula-2. Finalmente, fue vendido a Clarion, ahora SoftVelocity, que ofreció el compilador Modula-2 como parte de su línea de productos Clarion en aquel entonces. [ 45 ]

Echelon comercializó brevemente una versión de Turbo Modula-2 para Zilog Z80 CP/M bajo licencia de Borland. Micromint vendió una versión complementaria para Hitachi HD64180 como herramienta de desarrollo para su ordenador de placa única SB-180. [ 46 ]

IBM Modula-2

IBM tenía un compilador Modula-2 para uso interno que se ejecutaba tanto en OS/2 como en AIX , y tenía soporte de primera clase en el editor E2 de IBM . [ 47 ] IBM Modula-2 se usó para partes del código interno con licencia vertical de OS/400 (efectivamente el núcleo de OS/400). [ 48 ] Este código fue reemplazado en su mayor parte por C++ cuando OS/400 se portó a la familia de procesadores IBM RS64 , aunque parte de él permanece en las versiones modernas del sistema operativo. [ 49 ] [ 50 ] También existía un backend Motorola 68000 , que pudo haber sido utilizado en productos de sistemas embebidos. [ 47 ]

Sistemas operativos

Modula-2 se utiliza para programar algunos sistemas operativos (SO). La estructura y el soporte de módulos de Modula-2 se utilizan directamente en dos sistemas operativos relacionados.

El sistema operativo Medos-2 , para la estación de trabajo Lilith, fue desarrollado en la ETH Zúrich por Svend Erik Knudsen con el asesoramiento de Wirth. Es un sistema operativo monousuario orientado a objetos , construido a partir de módulos Modula-2. [ 51 ] [ 52 ] [ 53 ]

El sistema operativo Excelsior , para la estación de trabajo Kronos , fue desarrollado por la Academia de Ciencias de la Unión Soviética , rama siberiana, Centro de Computación de Novosibirsk , proyecto Sistemas Modulares Asíncronos Desarrollables (MARS), Grupo de Investigación Kronos (KRG). Es un sistema de usuario único basado en módulos Modula-2. [ 54 ]

Libros

  • Gleaves, Richard (1984). Modula-2 para programadores de Pascal . Libros de Springer sobre informática profesional (1.ª  ed.). Suiza: Springer Nature. doi : 10.1007/978-1-4613-8531-8 . ISBN 978-0-387-96051-7. S2CID 346624 . 
  • King, KN (1 de enero de 1988). Modula-2: Guía completa . Burlington, Massachusetts : Jones and Bartlett Publishers. ISBN 978-0669110913.
  • Wirth, Niklaus (1988). Programación en Modula-2 (4ª  ed.). Berlín Heidelberg : Springer-Verlag . doi : 10.1007/978-3-642-83565-0 . ISBN 978-0-387-96051-7. S2CID 41899609 . 
  • Cooper, Doug (1 de septiembre de 1990). ¡Oh, Dios mío! Modula-2: Introducción a la programación . Ciudad de Nueva York , Nueva York : WW Norton & Company . ISBN 978-0393960099.
  • Helman, Paul (1 de marzo de 1998). Paredes y espejos: Resolución de problemas intermedios y estructuras de datos: Módulo, 2 (Serie Benjamin/Cummings en programación estructurada) . Benjamin-Cummings . ISBN 978-0805389456.
  • Sutcliffe, Richard J. (2004–2005). Modula-2: Abstracciones para estructuras de datos y programación . Arjay Books. ISBN 978-0-669-11091-3.Utiliza el módulo ISO-2.

Referencias

  1. "Resumen de proyectos de N. Wirth, 1962–1999" . Departamento de Ciencias de la Computación . ETH Zúrich .
  2. Wirth, Niklaus (2002). «Pascal y sus sucesores». En Broy, Manfred; Denert, Ernst (eds.). Pioneros del software: Contribuciones a la ingeniería de software . Berlín, Heidelberg: Springer-Verlag . pp. 108–120 . doi : 10.1007/978-3-642-59412-0 . ISBN  978-3-642-59412-0. S2CID 2698265 . 
  3. Wirth, Niklaus (18 de febrero de 2005). "Historia y objetivos de Modula-2" . Dr. Dobb's Journal . Informa PLC.
  4. 1 2 Wirth, Niklaus (1988). Programación en Modula-2 (4.ª ed.). Berlín, Heidelberg: Springer. doi : 10.1007/978-3-642-83565-0 . ISBN  978-3-642-83565-0. S2CID 41899609 . Página 4.
  5. Wirth, Niklaus ; Gutknecht, Jürg ; Ohran, Richard; Pablo, Robert J.; Coar, David (agosto de 1984). "Tema: Módulo-2" . Byte: The Small Systems Journal . vol. 9, núm. 8. págs. 143–232 .   Disponible en Archive.org
  6. Wirth, Niklaus (1 de mayo de 1984). "Un compilador Modula-2 de una sola pasada para Lilith" (PDF) . CFB Software . Consultado el 23 de noviembre de 2023 .
  7. Este artículo se basa en material tomado de Modula-2 en el Diccionario en línea gratuito de informática antes del 1 de noviembre de 2008 e incorporado bajo los términos de "relicencia" de la GFDL , versión 1.3 o posterior.
  8. ISO/IEC 10514-1:1996
  9. Tichy et al., Modula-2*: Una extensión para Modula-2 para programas portátiles altamente paralelos, Universidad de Karlsruhe [1990]
  10. ^ Bräunl, Programación paralela, Prentice-Hall [1993]
  11. Muller, C. (noviembre de 1986). "Modula–Prolog: Desarrollo de software". IEEE Software . 3 (6): 39– 45. doi : 10.1109/MS.1986.229475 . S2CID 763425 . 
  12. 1 2 modula2.org, 5. ¿Dónde puedo obtener información sobre ISO Modula-2?
  13. Cardelli et al., Informe Modula-3 , Informe de investigación 31, Centro de investigación de sistemas, Digital Equipment Corporation, [1988]
  14. N. Wirth y J. Gutknecht, Proyecto Oberon: el diseño de un sistema operativo y un compilador, ISBN 0-201-54428-8, Addison-Wesley [1992]
  15. Moessenboeck y Wirth, El lenguaje de programación Oberon-2 , ETH Zúrich [1995]
  16. Thomas Bräunl, Parallaxis, un lenguaje para programación paralela de datos estructurados, Universidad de Stuttgart [1996]
  17. Pat D. Terry, Otro lenguaje de programación mínimo, ACM SIGPLAN Notices No. 30 [1995]
  18. D. Blasband, El lenguaje de programación YAFL, Segunda edición, [1993]
  19. Revista Delco Electronics Electron, El legado de Atwood, primavera de 1989, página 25
  20. Desarrollo de la electrónica para las carreras de autos de GM
  21. Koltashev, AA (2006). "Modula-2 en el espacio ruso" . Kronos: Historia de un proyecto (en ruso). xTech . Consultado el 8 de abril de 2021 .
  22. Given, David (9 de octubre de 2020). "ACK" . GitHub . Consultado el 13 de marzo de 2021 .
  23. «Módulo ADW-2» . Modula-2.org . Consultado el 13 de marzo de 2021 .
  24. "Aglet Modula-2" . Aglet Modula-2 . 15 de febrero de 2012. Consultado el 13 de marzo de 2021 .
  25. "FST Modula-2" . psg.com ( FTP ) . Consultado el 13 de octubre de 2021 .(Para ver los documentos, consulte Ayuda:FTP )
  26. "Gardens Point Modula" . Grupo de Lenguajes y Sistemas de Programación, Facultad de Tecnología de la Información . Universidad Tecnológica de Queensland, Brisbane. 29 de enero de 2007. Archivado del original el 23 de marzo de 2013. Consultado el 13 de marzo de 2021 .
  27. ^ K John Gough (25 de octubre de 2010). "Módulo Gardens Point-2 (GPM/CLR)" . GitHub . Consultado el 16 de octubre de 2022 .
  28. "GNU Modula-2" . Savannah . Free Software Foundation. 30 de agosto de 2018. Consultado el 13 de marzo de 2021 .
  29. Jacobs, Chris (1984). "Turbo Pascal v2.0" . Computer Language . Vol. 1, n.º 1, págs. 71–74 . Consultado el 6 de abril de 2025 .   
  30. "Logitech Modula-2" . The Electronic Developer Magazine for OS/2 (EDM/2) . Consultado el 29 de mayo de 2022 .
  31. «1988: Modula-2 y Logitech RTK» . Øyvind Teig. 12 de abril de 2022. Foto del disquete
  32. ^ Degen, René; Nieder, Claudio; Preusando, Bernd; Schaub, Markus; Straube, Jörg (2004). "M2Amiga" . Sitio web de Claudio . A+L AG. Archivado desde el original el 20 de enero de 2019 . Consultado el 13 de marzo de 2021 .
  33. "Lilith y Modula-2" . CFB Software . Consultado el 23 de noviembre de 2023 .
  34. "MacMETH: Un sistema de lenguaje rápido Modula-2 para computadoras Macintosh" . ETH Zurich: Ecología de Sistemas Terrestres . 22 de enero de 2020. Consultado el 13 de marzo de 2021 .
  35. "Lenguaje de programación de texto estructurado Mod51" . Herramientas de diseño . Archivado del original el 21 de octubre de 2008. Consultado el 13 de marzo de 2021 .
  36. Tempelmann, Thomas (1 de septiembre de 2020). "Página web de Thomas Tempelmann" . Consultado el 18 de marzo de 2021 .
  37. «Módulo-2 R10» . Consultado el 13 de octubre de 2021 .
  38. Dotzel, Chih-Ya (21 de enero de 2020). "ModulAware" . Recuperado el 18 de marzo de 2021 .
  39. Wiedemann, Albert (13 de enero de 2021). "p1 Modula-2" . p1 Society for Computer Science . Consultado el 19 de marzo de 2021 .
  40. Beck, Michael; Geiss, Rubino (2006). "El compilador Karlsruhe Modula-2 MOCKA" . Instituto de Estructuras de Programas y Organización de Datos (IPD) . Instituto Tecnológico de Karlsruhe . Archivado del original el 4 de septiembre de 2009. Recuperado el 21 de marzo de 2021 .
  41. Jefferson, Gareth (agosto de 1986). "Compilador Modula-2" . Australian Personal Computer . págs. 49, 52, 54, 56, 58. Recuperado el 8 de octubre de 2022 . 
  42. "Sistemas Modula-2 para OpenVMS/Alpha y OpenVMS/VAX" . Terra Datentechnik (en inglés y alemán). Erlenbach, Suiza. 12 de noviembre de 2002. Consultado el 23 de marzo de 2021 .
  43. Borchert, Andreas; Hasch, Martin (21 de enero de 2003). "m2c: Sistema Modula-2 de Ulm" . Universidad de Ulm . Ulm , Alemania . Consultado el 23 de marzo de 2021 .
  44. "Familia de productos XDS: Herramientas de desarrollo Modula-2 – Oberon-2" . Excelsior LLC . 1999–2009. Archivado del original el 27 de mayo de 2009. Consultado el 23 de marzo de 2021 .
  45. "Acerca de Clarion" . Archivado del original el 7 de diciembre de 2002. Consultado el 31 de marzo de 2023 .
  46. "Circuit Cellar" . Byte: The Small Systems Journal . Vol. 11, n.º 13, pág. 98.   
  47. 1 2 "IBM Modula-2" . edm2.com . 2 de marzo de 2019. Consultado el 12 de marzo de 2021 .
  48. "Comentarios de los lectores sobre el misterio de AS/400 a i resuelto" . itjungle.com . 21 de febrero de 2011. Consultado el 12 de marzo de 2021 .
  49. Soltis, Frank G. (1997). Inside the AS/400 (2.ª ed.). Duke Press. ISBN  978-1882419661.
  50. ^ Leif Svalgaard (8 de octubre de 2003). "Re: Re: emulador MI" . MI400 (lista de correo) . Consultado el 26 de febrero de 2021 .
  51. Knudsen, Svend Erik (1983). Medos-2: Un sistema operativo orientado a Modula-2 para la computadora personal Lilith (PhD). ETH Zurich . doi : 10.3929/ethz-a-000300091 . hdl : 20.500.11850/137906 .
  52. ^ Knudsen, Svend Erik (25 de octubre de 2000). "Medos en retrospectiva". En Böszörményi, László; Gutknecht, Jürg ; Pomberger, Gustav (eds.). La escuela de Niklaus Wirth: el arte de la simplicidad . Morgan Kaufman. págs. 69 a 86. ISBN  978-1558607231.ISBN 1-55860-723-4& dpunkt, ISBN 3-932588-85-1.
  53. Sand, Paul A. (septiembre de 1984). "La computadora personal Lilith" . Byte . págs. 300–311 . Recuperado el 6 de marzo de 2021 . Reimpresión.
  54. Kuznetsov, DN; Nedorya, AE; Tarasov, EV; Filippov, VE "Kronos: una familia de procesadores para lenguajes de alto nivel" . Kronos: Historia de un proyecto (en ruso). xTech . Consultado el 13 de abril de 2021 .
  • Sitio web oficial
Obtenido de " https://en.wikipedia.org/w/index.php?title=Modula-2&oldid=1347532221 "