Модуль-2
Парадигмы | императивный , структурированный , модульный , скрытие данных и процедур , параллельный |
---|---|
Семья | Вирт / Модула |
Разработано | Никлаус Вирт |
Впервые появился | 1978 год |
Дисциплина набора текста | Статический , сильный , безопасный |
Объем | Лексический (статический) |
Платформа | Лилит ( драм 2901 ) |
ТЫ | Кросс-платформенный |
Расширения имен файлов | .mod, .m2, .def, .MOD, .DEF, .mi, .md |
Веб-сайт | www |
Основные реализации | |
Компилятор ETH, написанный Никлаусом Виртом ГНУ Модуль-2 ADW Modula-2 | |
Диалекты | |
ПИМ2, ПИМ3, ПИМ4, ИСО | |
Под влиянием | |
Модула , Меса , Паскаль , АЛГОЛ W , Евклид | |
Под влиянием | |
Модуль-2+ , Модуль-3 , Оберон , Ада , Фортран 90 , Lua , Seed7 , Зоннон , Модуль-GM |
Modula-2 — структурированный процедурный язык программирования , разработанный в период с 1977 по 1985/8 годы Никлаусом Виртом в ETH Zurich . Он был создан как язык операционной системы и прикладного программного обеспечения станции Lilith персональной рабочей . [1] Позже его использовали для программирования вне контекста Лилит.
Вирт рассматривал Modula-2 как преемника своих более ранних языков программирования Pascal и Modula . [2] [3] Основными понятиями являются:
- Модуль компиляции как компилирующая единица для раздельной
- Сопрограмма процессов как основной строительный блок для параллельных
- Типы и процедуры, обеспечивающие доступ к данным, специфичным для машины
На языковой дизайн повлияли язык Mesa и Xerox Alto , оба из Xerox PARC , которые Вирт видел во время своего творческого отпуска в 1976 году. [4] Компьютерный журнал Byte посвятил августовский номер 1984 года языку и окружающей его среде. [5]
Вирт создал серию языков Oberon как преемника Modula-2, в то время как другие (в частности, в Digital Equipment Corporation и Acorn Computers , позже Olivetti ) разработали Modula-2 в Modula-2+ и позже в Modula-3 .
Описание [ править ]
Modula-2 — процедурный язык общего назначения , подходящий как для системного программирования , так и для программирования приложений. Синтаксис основан на более раннем языке Вирта, Паскале , с удаленными некоторыми элементами и синтаксической двусмысленностью. Концепция модуля , предназначенная для поддержки раздельной компиляции и абстракции данных; прямая языковая поддержка мультипрограммирования и была добавлена .
Язык позволяет использовать однопроходные компиляторы . Такой компилятор Гуткнехта и Вирта был примерно в четыре раза быстрее, чем более ранние многопроходные компиляторы . [6]
Вот пример исходного кода программы «Hello world»:
MODULE Hello;
FROM STextIO IMPORT WriteString;
BEGIN
WriteString("Hello World!")
END Hello.
Modula-2 Модуль может использоваться для инкапсуляции набора связанных подпрограмм и структур данных и ограничения их видимости из других частей программы. Программы Модулы-2 состоят из модулей, каждый из которых состоит из двух частей: модуля определения , интерфейсной части, содержащей только те части подсистемы, которые экспортируются (видны другим модулям), и модуля реализации , который содержит рабочий код, внутренний для модуля.
Язык имеет строгий контроль области действия . За исключением стандартных идентификаторов, ни один объект снаружи не виден внутри модуля, если он не импортирован явно; ни один внутренний объект модуля не виден снаружи, если он не экспортирован явно.
Предположим, что модуль M1 экспортирует объекты a, b, c и P, перечисляя их идентификаторы в явном списке экспорта.
DEFINITION MODULE M1;
EXPORT QUALIFIED a, b, c, P;
...
Тогда объекты a, b, c и P из модуля M1 известны вне модуля M1 как M1.a, M1.b, M1.c и M1.P. Они экспортируются квалифицированным образом наружу (при условии, что модуль M1 является глобальным). Имя экспортирующего модуля, т. е. M1, используется в качестве квалификатора, за которым следует имя объекта.
Предположим, что модуль M2 содержит следующее объявление IMPORT
MODULE M2;
IMPORT M1;
...
Тогда это означает, что объекты, экспортированные модулем M1 за пределы включающей его программы, теперь могут использоваться внутри модуля M2. На них указываются квалифицированные ссылки : M1.a, M1.b, M1.c и M1.P. Пример:
...
M1.a := 0;
M1.c := M1.P(M1.a + M1.b);
...
Квалифицированный экспорт позволяет избежать конфликтов имен. Например, если другой модуль M3 экспортирует объект с именем P, то эти два объекта можно различить, поскольку M1.P отличается от M3.P. Не имеет значения, что оба объекта внутри модулей экспорта M1 и M3 называются P.
Альтернативный метод существует. Предположим, что модуль M4 сформулирован так:
MODULE M4;
FROM M1 IMPORT a, b, c, P;
Это означает, что объекты, экспортированные модулем M1 наружу, снова могут использоваться внутри модуля M4, но теперь посредством простых ссылок на экспортированные идентификаторы в неквалифицированном виде, например: a, b, c и P. Пример:
...
a := 0;
c := P(a + b);
...
Этот метод импорта можно использовать, если нет конфликтов имен. Это позволяет использовать переменные и другие объекты вне их модуля экспорта таким же неквалифицированным способом, как и внутри модуля экспорта.
Правила экспорта и импорта не только защищают объекты от нежелательного доступа, но также позволяют создавать перекрестные ссылки на определение каждого идентификатора в программе. Это свойство помогает поддерживать большие программы, содержащие множество модулей.
Язык обеспечивает однопроцессорный параллелизм ( мониторы , сопрограммы и явная передача управления) и аппаратный доступ (абсолютные адреса, битовые манипуляции и прерывания ). Он использует систему номинальных типов .
Диалекты [ править ]
Существует два основных диалекта Модулы-2. Первый — PIM , названный в честь книги «Программирование в Модуле-2» . Никлауса Вирта [4] Существовало три основных издания PIM: второе, третье (исправленное) и четвертое. Каждый описывает небольшие варианты языка. Вторым основным диалектом является ISO , названный в честь усилий по стандартизации Международной организации по стандартизации . Вот некоторые различия между ними.
- ПИМ2 (1983)
- Требуется явное
EXPORT
пункт в модулях определения. - Функция
SIZE
необходимо импортировать из модуляSYSTEM
- Требуется явное
- ПИМ3 (1985)
- Удален
EXPORT
из модулей определения после наблюдения, что все внутри модуля определения определяет интерфейс к этому модулю, следовательно,EXPORT
пункт был излишним. - Функция
SIZE
является всеобъемлющим (виден в любой области без импорта)
- Удален
- ПИМ4 (1988)
- Уточнил поведение
MOD
оператор, когда операнды отрицательны. - Требуется все
ARRAY OF CHAR
строки, которые должны быть завершены NUL ASCII, даже если строка точно вписывается в свой массив.
- Уточнил поведение
- ИСО (1996, 1998)
- ISO Modula-2 разрешила большую часть двусмысленностей в PIM Modula-2. Он добавил типы данных
COMPLEX
иLONGCOMPLEX
, исключения, завершение модуля (FINALLY
пункт) и полную стандартного ввода/вывода (I/O) библиотеку . Есть много мелких отличий и уточнений. [7]
- ISO Modula-2 разрешила большую часть двусмысленностей в PIM Modula-2. Он добавил типы данных
Суперсеты [ править ]
Существует несколько расширений Modula-2 с языковыми расширениями для конкретных областей применения:
- Суперсеты ПИМ
- Canterbury Modula-2 , дополненная расширяемыми записями, подобными Оберону [Она была отозвана и больше нигде не доступна]
- Modula-2+ , расширенная за счет вытесняющих потоков и исключений.
- Модуль-2* , параллельное расширение [8]
- Modula-P , еще одно параллельное расширение [9]
- Modula – Prolog, добавляет Пролога . слой [10]
- Modula/R, добавляет реляционных баз данных . расширения
- Модуль-GM, добавляет встроенные системные расширения.
- Расширенные наборы ISO
- ISO10514-2 добавляет объектно-ориентированного программирования. уровень [11]
- ISO10514-3 добавляет уровень общего программирования (дженериков). [11]
- Суперсеты МЭК
- Mod51 , расширенный конструкциями IEC 1131 для разработки встраиваемых систем.
Производные [ править ]
Существует несколько производных языков, которые очень похожи на Модулу-2, но сами по себе являются новыми языками. Большинство из них представляют собой разные языки с разными целями и собственными сильными и слабыми сторонами:
- Modula-3 , разработанная командой бывших сотрудников Xerox, перешедших в DEC и Olivetti. [12]
- Оберон , разработанный в ETH Zurich Zürich для системы Оберон. [13] доступен онлайн .
- Оберон-2 , Оберон с объектно-ориентированным (ОО-расширениями) [14]
- Active Oberon — еще одно расширение OO Oberon , разработанное в ETH Zurich с основной целью поддержки программирования параллельных вычислений на многопроцессорных и многоядерных процессорах.
- Parallaxis — язык машинно-независимого программирования для параллельного программирования данных. [15]
- Умбриэль, разработанный Пэтом Терри как язык обучения. [16]
- YAFL, исследовательский язык Дариуса Бласбанда. [17]
Многие другие современные языки программирования переняли особенности Модулы-2.
Элементы языка [ править ]
Зарезервированные слова [ править ]
PIM [2,3,4] определяет 40 зарезервированных слов :
AND ELSIF LOOP REPEAT ARRAY END MOD RETURN BEGIN EXIT MODULE SET BY EXPORT NOT THEN CASE FOR OF TO CONST FROM OR TYPE DEFINITION IF POINTER UNTIL DIV IMPLEMENTATION PROCEDURE VAR DO IMPORT QUALIFIED WHILE ELSE IN RECORD WITH
Встроенные идентификаторы [ править ]
PIM [3,4] определяет 29 встроенных идентификаторов :
ABS EXCL LONGINT REAL BITSET FALSE LONGREAL SIZE BOOLEAN FLOAT MAX TRUE CAP HALT MIN TRUNC CARDINAL HIGH NIL VAL CHAR INC ODD CHR INCL ORD DEC INTEGER PROC
Использование встроенной системы [ править ]
Модуль-2 используется для программирования многих встраиваемых систем .
Кембриджская Модульа-2 [ править ]
Cambridge Modula-2 от Cambridge Microprocessor Systems основан на подмножестве PIM4 с языковыми расширениями для разработки встроенных систем. Компилятор работает под DOS и генерирует код для Motorola серии 68000 встраиваемых микроконтроллеров (M68k) под управлением операционной системы MINOS.
Мод51 [ править ]
Mod51 от Mandeno Granville Electronics основан на ISO Modula-2 с языковыми расширениями для разработки встроенных систем в соответствии с IEC 1131 , отраслевым стандартом для программируемых логических контроллеров (ПЛК), тесно связанным с Modula-2. Компилятор Mod51 генерирует автономный код для микроконтроллеров на базе 80C51.
Модуль-ГМ [ править ]
Delco Electronics , в то время дочерняя компания GM Hughes Electronics , начиная с 1985 года разработала версию Modula-2 для встраиваемых систем управления. Delco назвала ее Modula-GM. Это был первый язык программирования высокого уровня, который использовался для замены машинного кода Delco (языка) встроенных систем в блоках управления двигателем (ЭБУ) . Это было важно, поскольку в 1988 году Delco производила для GM более 28 000 ЭКЮ в день. Тогда это был крупнейший в мире производитель ЭБУ. [18] Первое экспериментальное использование Modula-GM во встроенном контроллере было в 1985 году в контроллере антиблокировочной системы тормозов, который был основан на микропроцессоре Motorola 68xxx, а в 1993 году в ЭБУ Gen-4, который использовался Champ Car World Series командами автогонок чемпионата Championship (CART). и команды Инди-гоночной лиги (IRL). [19] Первым производственным применением Modula-GM было его использование в грузовиках GM, начиная с модуля управления транспортным средством GM Powertrain (VCM) 1990 модельного года, который использовался для управления двигателями Vortec . Modula-GM также использовался во всех ЭБУ для семейства двигателей Buick V6 1997-2005 модельного года 3800 Series II GM, используемых в Buick Park Avenue . Компиляторы Modula-GM и соответствующие инструменты управления программным обеспечением были получены Delco от Intermetrics .
В 1986 году Modula-2 был выбран в качестве основы для языка высокого уровня Delco из-за его многочисленных преимуществ перед другими альтернативными языками. После того, как в 1995 году Delco Electronics была выделена из GM (с другими подразделениями по производству компонентов) и образовала Delphi Automotive Systems , глобальный поиск поставщиков требовалось использовать непатентованный язык программного обеспечения высокого уровня. компилируется коммерческими компиляторами для языка C. Встроенное программное обеспечение ЭБУ, разрабатываемое в настоящее время в Delphi ,
спутники Российские
Спутники российской радионавигационной спутниковой службы системы ГЛОНАСС (GPS) США , аналогичной системе глобального позиционирования , программируются в Модуле-2. [20]
Компиляторы [ править ]
- Амстердамский компилятор (ACK) Modula-2 – для MINIX ; бесплатное ПО [21]
- ADW Modula-2 – для Windows, соответствует ISO, ISO/IEC 10514-1, ISO/IEC 10514-2 (расширение OO), ISO/IEC 10514-3 (общее расширение); бесплатное ПО [22]
- Аглет Модуль-2 — для AmigaOS 4.0 для PowerPC ; бесплатное ПО [23]
- Встроенные программные средства (ФСТ) Модуль-2 – для DOS; бесплатное ПО [24]
- Gardens Point Modula-2 (GPM) – для BSD, Linux, OS/2, Solaris ; Соответствует ISO; бесплатное ПО, по состоянию на 30 июля 2014 г. [25]
- Gardens Point Modula-2 (GPM/CLR) — для .NET Framework ; бесплатное ПО [26]
- GNU Modula-2 – для платформ GCC, версия 1.0 выпущена 11 декабря 2010 г.; соответствие: PIM2, PIM3, PIM4, ISO; бесплатное программное обеспечение , Стандартная общественная лицензия GNU (GPL). [27]
- Logitech SA - у них также было «ядро реального времени» для встроенного использования (1987 г.) [28] [29]
- M2Amiga – для Амиги ; бесплатное программное обеспечение [30]
- M2M – Н. Вирт и его коллеги из ETH Zurich, кроссплатформенный, генерирует M-код для виртуальной машины ; бесплатное ПО [31]
- MacMETH – Н. Вирт и его коллеги из ETH Zurich для Macintosh, только Classic; бесплатное ПО [32]
- Mod51 – для семейства микроконтроллеров Intel 80x51, соответствует стандарту ISO, расширения IEC1132; проприетарное программное обеспечение [33]
- Megamax Modula-2 – для Atari ST с документацией; бесплатное ПО [34]
- Модуль-2 R10 – эталонный компилятор для этой Модулы; открытый исходный код, экспертная оценка [35]
- ModulaWare – для OpenVMS ( VAX и Alpha ), соответствует ISO; проприетарное программное обеспечение [36]
- ORCA/Modula-2 – для Apple IIGS от The Byte Works для мастерской программистов Apple
- p1 Modula-2 – для Macintosh , Classic и macOS ( только PowerPC и Carbon (API) ), соответствует ISO; проприетарное программное обеспечение [37]
- MOCKA – для различных платформ, соответствует PIM; коммерческие бесплатные версии Linux/BSD [38]
- TDI Modula-2 — для Atari ST от TDI Software [39]
- Terra M2VMS – для OpenVMS ( VAX и Alpha ), совместим с PIM; проприетарное программное обеспечение [40]
- m2c, система Ulm Modula-2 – для Solaris (Sun SPARC и Motorola 68k ); бесплатное программное обеспечение, Стандартная общественная лицензия GNU (GPL). [41]
- XDS — совместимая с ISO и TopSpeed библиотека: встроенный XDS-x86 для x86 (Windows и Linux); XDS-C для Windows и Linux (16- и 32-разрядные версии), ориентирован на C ( K&R и ANSI ); бесплатное ПО [42]
Турбо Модуль-2 [ править ]
Turbo Modula-2 — компилятор и интегрированная среда разработки для MS-DOS , разработанная, но не опубликованная компанией Borland . Компания Jensen and Partners, в которую входил соучредитель Borland Нильс Йенсен, купила неизданную кодовую базу и превратила ее в TopSpeed Modula-2. предлагала компилятор Modula-2 как часть своей линейки продуктов Clarion . В конечном итоге он был продан компании Clarion, ныне SoftVelocity, которая в то время [43]
Версия Turbo Modula-2 для Zilog Z80 CP/M некоторое время продавалась компанией Echelon по лицензии Borland. Сопутствующая версия для Hitachi HD64180 была продана Micromint как инструмент разработки для их одноплатного компьютера SB-180. [44]
IBM Модуль-2 [ править ]
У IBM был компилятор Modula-2 для внутреннего использования, который работал как в OS/2, так и в AIX , и имел первоклассную поддержку в E2 от IBM. редакторе [45] IBM Modula-2 использовался для частей OS/400 внутреннего кода вертикальной лицензии (фактически ядра OS/400). [46] Этот код был в основном заменен на C++ , когда OS/400 была перенесена на семейство процессоров IBM RS64 , хотя некоторые из них остались в современных версиях операционной системы. [47] [48] Также существовала серверная часть Motorola 68000 , которая, возможно, использовалась во встраиваемых системах. [45]
Операционные системы [ править ]
Модуль-2 используется для программирования некоторых операционных систем (ОС). Структура и поддержка модуля Modula-2 используются непосредственно в двух родственных ОС.
ОС под названием Medos-2 для рабочей станции Lilith была разработана в ETH Zurich Свеном Эриком Кнудсеном по совету Вирта. Это однопользовательская объектно-ориентированная операционная система, построенная на модулях Modula-2. [49] [50] [51]
ОС под названием Excelsior , для рабочей станции «Кронос» , разработана Сибирским отделением Академии наук Советского Союза , Новосибирским вычислительным центром, проектом «Модульные асинхронные развиваемые системы» (МАРС), Исследовательской группой «Кронос» (КРГ). Это однопользовательская система, основанная на модулях Модула-2. [52]
Книги [ править ]
- Гливс, Ричард (1984). Модуль-2 для программистов на Паскале . Книги Springer по профессиональным вычислениям (1-е изд.). Швейцария: Природа Спрингера. дои : 10.1007/978-1-4613-8531-8 . ISBN 978-0-387-96051-7 . S2CID 346624 .
- Кинг, КН (1 января 1988 г.). Модуль-2: Полное руководство . Берлингтон, Массачусетс : Издательство Jones and Bartlett. ISBN 978-0669110913 .
- Вирт, Никлаус (1988). Программирование в Модуле-2 (4-е изд.). Берлин Гейдельберг : Springer Verlag . дои : 10.1007/978-3-642-83565-0 . ISBN 978-0-387-96051-7 . S2CID 41899609 .
- Купер, Дуг (1 сентября 1990 г.). О Боже! Модуль-2: Введение в программирование . Нью-Йорк , Нью-Йорк : WW Norton & Company . ISBN 978-0393960099 .
- Хельман, Пол (1 марта 1998 г.). Стены и зеркала: промежуточное решение проблем и структуры данных: Модуль, 2 (Серия Бенджамина/Каммингса по структурированному программированию) . Бенджамин-Каммингс . ISBN 978-0805389456 .
- Сатклифф, Ричард Дж. (2004–2005). Модуль-2: Абстракции для структур данных и программирования . Книги Арджая. ISBN 978-0-669-11091-3 . Использует стандарт ISO Modula-2.
Ссылки [ править ]
- ^ «Краткое содержание проектов Н. Вирта, 1962–1999» . Кафедра компьютерных наук . ETH Цюрих .
- ^ Вирт, Никлаус (2002). «Паскаль и его преемники». В Брое, Манфред; Денерт, Эрнст (ред.). Пионеры программного обеспечения: вклад в разработку программного обеспечения . Берлин, Гейдельберг: Springer-Verlag . стр. 108–120. дои : 10.1007/978-3-642-59412-0 . ISBN 978-3-642-59412-0 . S2CID 2698265 .
- ^ Вирт, Никлаус (18 февраля 2005 г.). «История и цели Модулы-2» . Журнал доктора Добба . ООО "Информа".
- ^ Перейти обратно: а б Вирт, Никлаус (1988). Программирование в Модуле-2 (4-е изд.). Берлин, Гейдельберг: Springer. дои : 10.1007/978-3-642-83565-0 . ISBN 978-3-642-83565-0 . S2CID 41899609 . Страница 4.
- ^ Вирт, Никлаус ; Гуткнехт, Юрг ; Оран, Ричард; Пол, Роберт Дж.; Коар, Дэвид (август 1984 г.). «Тема: Модуль-2» . Байт: Журнал малых систем . Том. 9, нет. 8. стр. 143–232. Доступно на Archive.org.
- ^ Вирт, Никлаус (1 мая 1984 г.). «Однопроходный компилятор Модулы-2 для Лилит» (PDF) . Программное обеспечение ЦФБ . Проверено 23 ноября 2023 г.
- ^ ИСО/МЭК 10514-1:1996.
- ^ Тичи и др., Modula-2*: Расширение Modula-2 для переносимых программ с высокой степенью параллелизма, Университет Карлсруэ [1990]
- ^ Браунль, Параллельное программирование, Прентис-Холл [1993]
- ^ Мюллер, К. (ноябрь 1986 г.). «Модула – Пролог: разработка программного обеспечения». Программное обеспечение IEEE . 3 (6): 39–45}. дои : 10.1109/MS.1986.229475 . S2CID 763425 .
- ^ Перейти обратно: а б modula2.org, 5. Где я могу получить информацию об ISO Modula-2?
- ^ Карделли и др., Отчет Modula-3 , Отчет об исследовании 31, Центр системных исследований, Digital Equipment Corporation, [1988]
- ^ Н. Вирт и Дж. Гуткнехт, Проект Оберон: разработка операционной системы и компилятора, ISBN 0-201-54428-8 , Аддисон-Уэсли [1992]
- ^ Moessenboeck & Wirth, Язык программирования Оберон-2 , ETH Zurich [1995]
- ^ Томас Браунль, Параллаксис, язык для структурированного параллельного программирования данных, Штутгартский университет [1996]
- ^ Пэт Д. Терри, Другой минимальный язык программирования, Уведомления ACM SIGPLAN № 30 [1995]
- ^ Д. Бласбанд, Язык программирования YAFL, второе издание, [1993]
- ^ Журнал Delco Electronics Electron, Наследие Этвуда, весна '89, стр. 25
- ^ Разработка электроники для автогонок GM.
- ^ Колташев, А.А. (2006). «Модула-2 в российском космосе» . Кронос: История проекта (на русском языке). хТех . Проверено 8 апреля 2021 г.
- ^ Гивен, Дэвид (9 октября 2020 г.). «АКК» . Гитхаб . Проверено 13 марта 2021 г.
- ^ «АДВ Модуль-2» . Модуль-2.org . Проверено 13 марта 2021 г.
- ^ «Аглет Модуль-2» . Аглет Модуль-2 . 15 февраля 2012 года . Проверено 13 марта 2021 г.
- ^ «ФСТ Модуль-2» . psg.com . Проверено 13 октября 2021 г.
- ^ «Модула Гарденс Пойнт» . Группа языков и систем программирования, факультет информационных технологий . Квинслендский технологический университет, Брисбен. 29 января 2007 г. Архивировано из оригинала 23 марта 2013 г. . Проверено 13 марта 2021 г.
- ^ К. Джон Гоф (25 октября 2010 г.). «Гарденс Пойнт Модуль-2 (GPM/CLR)» . Гитхаб . Проверено 16 октября 2022 г.
- ^ «ГНУ Модуль-2» . Саванна . Фонд свободного программного обеспечения. 30 августа 2018 года . Проверено 13 марта 2021 г.
- ^ «Логитек Модуль-2» . Электронный журнал разработчиков для OS/2 (EDM/2) . Проверено 29 мая 2022 г.
- ^ «1988: Модуль-2 и Logitech РТК» . Ойвинд Тейг. 12 апреля 2022.
Фотография дискеты.
- ^ Дежен, Рене; Вниз, Клаудио; Преузинг, Бернд; Шауб, Маркус; Штраубе, Йорг (2004). «М2Амига» . Сайт Клаудио . А+Л АГ. Архивировано из оригинала 20 января 2019 года . Проверено 13 марта 2021 г.
- ^ «Лилит и Модула-2» . Программное обеспечение ЦФБ . Проверено 23 ноября 2023 г.
- ^ «MacMETH: быстрая языковая система Modula-2 для компьютеров Macintosh» . ETH Цюрих: Экология наземных систем . 22 января 2020 г. Проверено 13 марта 2021 г.
- ^ «Язык программирования структурированного текста Mod51» . Инструменты дизайна . Архивировано из оригинала 21 октября 2008 года . Проверено 13 марта 2021 г.
- ^ Темпельманн, Томас (1 сентября 2020 г.). «Домашняя страница Томаса Темпельмана» . Проверено 18 марта 2021 г.
- ^ «Модула-2 Р10» . Проверено 13 октября 2021 г.
- ^ Дотцель, Чи-Я (21 января 2020 г.). «МодульАвэр» . Проверено 18 марта 2021 г.
- ^ Видеманн, Альберт (13 января 2021 г.). «П1 Модуль-2» . p1 Общество компьютерных наук . Проверено 19 марта 2021 г.
- ^ Бек, Майкл; Гейсс, Рубино (2006). «Компилятор Карлсруэ Модуль-2 MOCKA» . Институт программных структур и организации данных (IPD) . Технологический институт Карлсруэ . Архивировано из оригинала 4 сентября 2009 года . Проверено 21 марта 2021 г.
- ^ Джефферсон, Гарет (август 1986 г.). «Компилятор Модула-2» . Австралийский персональный компьютер . стр. 49, 52, 54, 56, 58 . Проверено 8 октября 2022 г.
- ^ «Системы Модуль-2 для OpenVMS/Alpha и OpenVMS/VAX» . Terra Datentechnik (на английском и немецком языках). Эрленбах, Швейцария. 12 ноября 2002 года . Проверено 23 марта 2021 г.
- ^ Борхерт, Андреас; Хаш, Мартин (21 января 2003 г.). «m2c: Система Ульма Модуль-2» . Ульмский университет . Ульм , Германия . Проверено 23 марта 2021 г.
- ^ «Семейство продуктов XDS: Модуль-2 – инструменты разработки Оберон-2» . ООО «Эксельсиор» . 1999–2009 гг. Архивировано из оригинала 27 мая 2009 года . Проверено 23 марта 2021 г.
- ^ «О Кларионе» . Архивировано из оригинала 7 декабря 2002 года . Проверено 31 марта 2023 г.
- ^ «Целевой подвал» . Байт: Журнал малых систем . Том. 11, нет. 13. с. 98.
- ^ Перейти обратно: а б «ИБМ Модуль-2» . edm2.com . 2 марта 2019 года . Проверено 12 марта 2021 г.
- ^ «Отзывы читателей о AS/400 и разгадке тайны» . itjungle.com . 21 февраля 2011 года . Проверено 12 марта 2021 г.
- ^ Солтис, Фрэнк Г. (1997). Внутри AS/400 (2-е изд.). Дьюк Пресс. ISBN 978-1882419661 .
- ^ Лейф Свальгаард (8 октября 2003 г.). "Re:Re:Эмулятор MI" . MI400 (список рассылки) . Проверено 26 февраля 2021 г.
- ^ Кнудсен, Свенд Эрик (1983). Медос-2: Операционная система, ориентированная на Модуль-2, для персонального компьютера Лилит (доктор философии). ETH Цюрих . дои : 10.3929/ethz-a-000300091 . hdl : 20.500.11850/137906 .
- ^ Кнудсен, Свенд Эрик (25 октября 2000 г.). «Медос в ретроспективе». В Бёсёрменьи, Ласло; Гуткнехт, Юрг ; Помбергер, Густав (ред.). Школа Никлауса Вирта: искусство простоты . Морган Кауфманн. стр. 69–86. ISBN 978-1558607231 . ISBN 1-55860-723-4 и дпункт, ISBN 3-932588-85-1 .
- ^ Сэнд, Пол А. (сентябрь 1984 г.). «Персональный компьютер Лилит» . Байт . стр. 300–311 . Проверено 6 марта 2021 г. Перепечатка.
- ^ Кузнецов Д.Н.; Недоря, А.Е.; Тарасов Е.В.; Филиппов В.Е. «Кронос: семейство процессоров для языков высокого уровня» . Кронос: История проекта (на русском языке). хТех . Проверено 13 апреля 2021 г.