Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Modula-2 - это структурированный процедурный язык программирования, разработанный в период с 1977 по 1985 год Никлаусом Виртом из ETH Zurich . Он был создан как язык для операционной системы и прикладного программного обеспечения на Lilith персональной рабочей станции . [1] Позже он был использован для программирования вне контекста Лилит.

Вирт рассматривал Modula-2 как преемника своих более ранних языков программирования Pascal и Modula . [2] [3] Основные понятия:

  1. Модуль как компилирующая единица для раздельной компиляции
  2. Сопрограмма как основной строительный блок для параллельных процессов
  3. Типы и процедуры, обеспечивающие доступ к машинным данным

На дизайн языка повлияли язык Mesa и Xerox Alto , оба от Xerox PARC , которые Вирт увидел во время своего творческого отпуска в 1976 году. [4] Компьютерный журнал Byte посвятил августовский выпуск 1984 года языку и окружающей его среде. [5]

За Модулой-2 последовала Модула-3 , а затем и серия языков Оберон .

Описание [ править ]

Modula-2 - это процедурный язык общего назначения , достаточно гибкий для системного программирования , но с гораздо более широким применением. В частности, он был разработан для прямой поддержки раздельной компиляции и абстрагирования данных. Большая часть синтаксиса основана на более раннем и более известном языке Вирта - Паскале . Modula-2 был разработан, чтобы быть в целом похожим на Паскаль, с удаленными некоторыми элементами и синтаксической двусмысленностью, а также с важным добавлением концепции модуля и прямой языковой поддержкой мультипрограммирования .

Язык позволяет использовать однопроходные компиляторы . Такой компилятор от Gutknecht и Wirth был примерно в четыре раза быстрее, чем предыдущие многопроходные компиляторы . [6]

Вот пример исходного кода программы «Hello world»:

МОДУЛЬ  Здравствуйте ; ИЗ  STextIO  IMPORT  WriteString ; НАЧАТЬ  WriteString ( "Hello World!" ); КОНЕЦ  Привет .

Modula-2 модуль может быть использован для инкапсуляции набора взаимосвязанных подпрограмм и структур данных, а также ограничивать их видимость из других частей программы. В конструкции модуля очень чисто реализована функция абстракции данных Modula-2. Программы Modula-2 состоят из модулей, каждый из которых состоит из двух частей: модуля определения , части интерфейса, которая содержит только те части подсистемы, которые экспортируются (видимы для других модулей), и модуля реализации , который содержит рабочий код, который является внутренним для модуля.

В языке есть строгий контроль объема . Объем модуля можно рассматривать как непроницаемую стену: за исключением стандартных идентификаторов, никакой объект снаружи не виден внутри модуля, если он явно не импортирован; объект внутреннего модуля не виден снаружи, если он явно не экспортирован.

Предположим, модуль M1 экспортирует объекты a, b, c и P, перечисляя свои идентификаторы в явном списке экспорта.

  МОДУЛЬ  ОПРЕДЕЛЕНИЯ M1 ;  ЭКСПОРТ  КВАЛИФИКАЦИЯ  a ,  b ,  c ,  P ;  ...

Затем объекты a, b, c и P из модуля M1 становятся теперь известными вне модуля M1 как M1.a, M1.b, M1.c и M1.P. Они квалифицированным образом экспортируются наружу (предполагается, что модуль M1 является глобальным). Имя экспортирующего модуля, то есть M1, используется в качестве квалификатора, за которым следует имя объекта.

Предположим, что модуль M2 содержит следующее объявление IMPORT

 МОДУЛЬ  М2 ;  ИМПОРТ  M1 ;  ...

Тогда это означает, что объекты, экспортированные модулем M1 за пределы его включающей программы, теперь могут использоваться внутри модуля M2. На них есть квалифицированные ссылки, а именно: M1.a, M1.b, M1.c и M1.P. Пример:

 ...  М1 . а  : =  0 ;  M1 . c  : =  M1 . P ( M1 . A  +  M1 . B );  ...

Квалифицированный экспорт позволяет избежать конфликтов имен: например, если другой модуль M3 также будет экспортировать объект с именем P, мы все равно сможем различать эти два объекта, поскольку M1.P отличается от M3.P. Благодаря квалифицированному экспорту не имеет значения, что оба объекта называются P внутри своих модулей экспорта M1 и M3.

Существует альтернативный метод, который широко используется программистами Модулы-2. Предположим, что модуль M4 сформулирован так:

 МОДУЛЬ  M4 ;  ИЗ  M1  ИМПОРТА  a ,  b ,  c ,  P ;

Тогда это означает, что объекты, экспортированные модулем M1 вовне, могут снова использоваться внутри модуля M4, но теперь путем простых ссылок на экспортированные идентификаторы неквалифицированным образом, таким образом: a, b, c и P. Пример:

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

Этот метод неквалифицированного импорта позволяет использовать переменные и другие объекты вне их модуля экспорта точно таким же простым, то есть неквалифицированным способом, как внутри модуля экспорта. Стены, окружающие все модули, теперь стали неактуальными для всех тех объектов, для которых это было явно разрешено. Конечно, неквалифицированный импорт можно использовать только в том случае, если нет конфликтов имен.

Эти правила экспорта и импорта могут показаться излишне ограничительными и многословными. Но они не только защищают объекты от нежелательного доступа, но также имеют приятный побочный эффект, обеспечивающий автоматическую перекрестную ссылку определения каждого идентификатора в программе: если идентификатор уточняется именем модуля, то определение происходит от этот модуль. В противном случае, если это происходит неквалифицированно, просто выполните поиск в обратном направлении, и вы либо встретите объявление этого идентификатора, либо его появление в операторе IMPORT, который называет модуль, из которого он исходит. Это свойство становится очень полезным при попытке понять большие программы, содержащие много модулей.

Язык обеспечивает (ограниченный) однопроцессорный параллелизм ( мониторы , сопрограммы и явная передача управления) и аппаратный доступ (абсолютные адреса, битовые манипуляции и прерывания ). Он использует систему номинального типа .

Диалекты [ править ]

Есть два основных диалекта Modula-2. Первый - PIM , названный в честь книги Никлауса Вирта « Программирование в модуле-2 ». [4] Существовало три основных редакции PIM: вторая, третья (исправленная) и четвертая. Каждый описывает небольшие варианты языка. Второй важный диалект - ISO , названный в честь усилий по стандартизации Международной организации по стандартизации . Вот несколько отличий между ними.

  • PIM2 (1983)
    • Обязательное явное EXPORTпредложение в модулях определения.
    • Функцию SIZEнеобходимо импортировать из модуляSYSTEM
  • PIM3 (1985)
    • Это предложение было удалено EXPORTиз модулей определения после того, как было замечено, что все в модуле определения определяет интерфейс к этому модулю, поэтому EXPORTпредложение было избыточным.
    • Функция SIZEповсеместна (видна в любой области без импорта)
  • PIM4 (1988)
    • Определяет поведение MODоператора, когда операнды отрицательны.
    • Требуется, чтобы все ARRAY OF CHARстроки заканчивались ASCII NUL, даже если строка точно помещается в свой массив.
  • ISO (1996, 1998)
    • ISO Modula-2 разрешил большинство неоднозначностей в PIM Modula-2. Он добавил типы данных COMPLEXи LONGCOMPLEXисключения, завершение модуля ( FINALLYпредложение) и полную стандартную библиотеку ввода / вывода (I / O) . Есть много мелких отличий и уточнений. [7]

Суперсеты [ править ]

Есть несколько расширенных наборов Modula-2 с языковыми расширениями для определенных областей приложений:

  • Суперсеты PIM
    • Canterbury Modula-2 , расширенный с помощью расширяемых записей, подобных Оберону [Это было отозвано и больше нигде не доступно]
    • Modula-2 + , расширенный вытесняющими потоками и исключениями
    • Модула-2 * , параллельное расширение [8]
    • Modula-P , еще одно параллельное расширение [9]
    • Modula – Prolog, добавляет слой Prolog [10]
    • Modula / R, добавляет расширения реляционной базы данных
    • Modula-GM, добавляет встроенные системные расширения
  • Расширенные наборы ISO
    • ISO10514-2, добавляет объектно-ориентированное программирование слоя [11]
    • ISO10514-3, добавляет уровень общего программирования (generics) [11]
  • Суперсеты IEC
    • Mod51 , расширенный конструкциями IEC1131 для встраиваемой разработки

Производные [ править ]

Есть несколько производных языков, которые очень похожи на Modula-2, но сами по себе являются новыми языками. Большинство из них - это разные языки с разными целями и со своими сильными и слабыми сторонами:

  • Modula-3 , разработанный группой бывших сотрудников Xerox, перешедших в DEC и Olivetti [12]
  • Oberon , разработанный в ETH Zürich для System Oberon [13], доступный в Интернете .
  • Оберон-2 , Оберон с ОО-расширениями [14]
  • Active Oberon , еще одно объектно-ориентированное расширение Oberon , разработанное также в ETH с основной целью поддержки параллельного программирования в многопроцессорных и многоядерных системах.
  • Parallaxis, язык для машинно-независимого программирования с параллельными данными [15]
  • Умбриэль, разработанный Пэт Терри в качестве языка обучения [16]
  • YAFL, исследовательский язык Дариуса Бласбанда [17]

Многие другие современные языки программирования переняли возможности Modula-2.

Элементы языка [ править ]

Зарезервированные слова [ править ]

PIM [2,3,4] определяет следующие 40 зарезервированных слов:

И ЭЛЬСИФ ПОВТОР ПЕТЛИARRAY END MOD RETURNНАЧАТЬ ВЫХОД НАБОР МОДУЛЯЭКСПОРТОМ НЕ ТОГДАДЕЛО ДЛЯCONST FROM OR TYPEОПРЕДЕЛЕНИЕ ЕСЛИ УКАЗАТЕЛЬ ДОПРОЦЕДУРА РЕАЛИЗАЦИИ DIV VARИМПОРТИРУЙТЕ КВАЛИФИЦИРОВАННО, ПОКАЕЩЕ В ЗАПИСИ С

Встроенные идентификаторы [ править ]

PIM [3,4] определяет следующие 29 встроенных идентификаторов:

АБС ИСКЛЮЧЕНИЕ ДЛИННОЕ РЕАЛЬНОЕBITSET FALSE LONGREAL SIZEBOOLEAN FLOAT MAX TRUECAP HALT MIN TRUNCCARDINAL HIGH NIL VALCHAR INC ODDCHR INCL ЗАКАЗDEC INTEGER PROC

Использование встроенной системы [ править ]

Modula-2 используется для программирования многих встраиваемых систем .

Кембриджский модуль-2 [ править ]

Cambridge Modula-2 от Cambridge Microprocessor Systems основан на подмножестве PIM4 с языковыми расширениями для разработки встраиваемых систем. Компилятор работает под DOS и генерирует код для встроенных микроконтроллеров на базе Motorola серии 68000 (M68k), работающих под управлением операционной системы MINOS.

Mod51 [ править ]

Mod51 от Mandeno Granville Electronics основан на ISO Modula-2 с языковыми расширениями для встроенной разработки в соответствии с IEC1131, отраслевым стандартом для программируемых логических контроллеров (PLC), тесно связанным с Modula-2. Компилятор Mod51 генерирует автономный код для микроконтроллеров на базе 80C51.

Modula-GM [ править ]

Delco Electronics , в то время дочерняя компания GM Hughes Electronics , разработала версию Modula-2 для встроенных систем управления, начиная с 1985 года. Delco назвала ее Modula-GM. Это был первый язык программирования высокого уровня, который использовался для замены машинного кода (языка) для встроенных систем в блоках управления двигателем (ЭБУ) Delco . Это было важно, поскольку в 1988 году компания Delco производила для GM более 28 000 ЭКЮ в день. Тогда это был крупнейший в мире производитель ЭБУ. [18] Первое экспериментальное использование Modula-GM во встроенном контроллере было в контроллере антиблокировочной тормозной системы 1985 г., который был основан на микропроцессоре Motorola 68xxx, а в 1993 г.Команды чемпионов чемпионата мира по автогонкам (CART) и Indy Racing League (IRL). [19] Первым производственным использованием Modula-GM было его использование в грузовиках GM, начиная с модуля управления транспортным средством (VCM) 1990 модельного года, который использовался для управления двигателями Vortec GM Powertrain . Modula-GM также использовалась во всех ЭБУ для семейства двигателей Buick V6 под углом 90 ° 3800 Series II, используемых в Buick Park Avenue 1997-2005 модельного года . Компиляторы Modula-GM и связанные с ними инструменты управления программным обеспечением были получены Delco от Intermetrics .

Modula-2 была выбрана в качестве основы для языка высокого уровня Delco из-за его сильных сторон по сравнению с другими альтернативными языками в 1986 году. После того, как Delco Electronics была выделена из GM (с другими подразделениями компонентов), чтобы сформировать Delphi Automotive Systems в 1995 году, глобальные источники требовал, чтобы использовался непатентованный язык программного обеспечения высокого уровня. ECU встроенного программного обеспечения в настоящее время разработаны в Delphi компилируется с коммерческими компиляторами для языка C .

Российские радионавигационные спутники [ править ]

Спутники российской радионавигационной спутниковой службы рамочным ГЛОНАСС , по аналогии с США глобальной системы позиционирования (GPS), программируются в Модуле-2. [20]

Компиляторы [ править ]

  • Amsterdam Compiler Kit (ACK) Modula-2 - для MINIX ; бесплатное ПО [21]
  • ADW Modula-2 - для Windows, совместимость с ISO, ISO / IEC 10514-1, ISO / IEC 10514-2 (расширение OO), ISO / IEC 10514-3 (стандартное расширение); бесплатное ПО [22]
  • Aglet Modula-2 - для AmigaOS 4.0 для PowerPC ; бесплатное ПО [23]
  • Cambridge Modula-2 - для различных микроконтроллеров и встроенной операционной системы MINOS; проприетарное программное обеспечение [24]
  • Fitted Software Tools (FST) Modula-2 - для DOS; бесплатное ПО [25] [ постоянная мертвая ссылка ]
  • Gardens Point Modula-2 (GPM) - для BSD, Linux, OS / 2, Solaris ; Соответствие ISO; бесплатное ПО, по состоянию на 30 июля 2014 г. [26]
  • Gardens Point Modula-2 (GPM / CLR) - для .NET Framework ; бесплатное ПО [27]
  • GNU Modula-2 - для платформ GCC, версия 1.0 выпущена 11 декабря 2010 г .; соответствие: PIM2, PIM3, PIM4, ISO; бесплатное программное обеспечение , Стандартная общественная лицензия GNU (GPL) [28]
  • M2Amiga - для Amiga ; бесплатное программное обеспечение [29]
  • M2M - Н. Вирт и соавторы из ETH Zurich, кроссплатформенный, генерирует M-код для виртуальной машины ; бесплатное ПО [30]
  • MacMETH - Н. Вирт и соавторы из ETH Zurich для Macintosh, только Classic; бесплатное ПО [31]
  • Mod51 - для семейства микроконтроллеров Intel 80x51, совместимость с ISO, расширения IEC1132; проприетарное программное обеспечение [32]
  • Megamax Modula-2 - только для Atari ST с документацией на немецком языке; бесплатное ПО [33]
  • Modula-2 R10 - эталонный компилятор для этой Модулы; открытый исходный код, экспертная оценка [34]
  • ModulaWare - для OpenVMS ( VAX и Alpha ), совместимость с ISO; проприетарное программное обеспечение [35]
  • ORCA / Modula-2 - для Apple IIGS от Byte Works для Apple Programmer's Workshop
  • p1 Modula-2 - для Macintosh , Classic и macOS (только PowerPC и Carbon (API) ), совместимость с ISO; проприетарное программное обеспечение [36]
  • MOCKA - для различных платформ, PIM-совместимый; коммерческие, бесплатные версии Linux / BSD [37]
  • TDI Modula-2 - для Atari ST , от TDI Software
  • Terra M2VMS - для OpenVMS ( VAX и Alpha ), совместим с PIM; проприетарное программное обеспечение [38]
  • m2c, Ulm Modula-2 System - для Solaris (Sun SPARC и Motorola 68k ); бесплатное программное обеспечение, Стандартная общественная лицензия GNU (GPL) [39]
  • XDS - ISO-совместимая библиотека, совместимая с TopSpeed: собственный XDS-x86 для x86 (Windows и Linux); XDS-C для Windows и Linux (16- и 32-разрядные версии), предназначен для C ( K&R & ANSI ); бесплатное ПО [40]

Турбо Модула-2 [ править ]

Turbo Modula-2 - это компилятор и интегрированная среда разработки для MS-DOS, разработанная, но не опубликованная Borland . Компания Jensen and Partners, в которую входил соучредитель Borland Нильс Дженсен, купила невыпущенную базу кода и превратила ее в TopSpeed ​​Modula-2. В конечном итоге он был продан компании Clarion, которая сейчас принадлежит компании SoftVelocity, которая по-прежнему предлагает компилятор Modula-2 как часть своей линейки продуктов Clarion .

Zilog Z80 CP / M версия Turbo Modula-2 был на короткое время фирмой Echelon по лицензии Борланд. Сопутствующий выпуск Hitachi HD64180 был продан Micromint в качестве инструмента разработки для своего одноплатного компьютера SB-180.

IBM Modula-2 [ править ]

У IBM был компилятор Modula-2 для внутреннего использования, который работал как на OS / 2, так и на AIX , и имел первоклассную поддержку в редакторе IBM E2 . [41] IBM Modula-2 использовалась для частей вертикального лицензионного внутреннего кода OS / 400 (фактически, ядра OS / 400). [42] Этот код был заменен на C ++ при переносе OS / 400 на семейство процессоров IBM RS64 . [43] Motorola 68000 бэкенд также существуют, которые могут быть использованы во встраиваемых системах продукции. [41]

Операционная система [ править ]

Операционная система для рабочих станций Lilith , названная Medos-2, была разработана Свендом Эриком Кнудсеном по совету Вирта. Это однопользовательская объектно-ориентированная операционная система, построенная из модулей Modula-2. [44] [45] [46]

Книги [ править ]

  • Вирт, Никлаус (1988). Программирование в Модуле-2 (4-е изд.). Берлин Гейдельберг : Springer-Verlag . ISBN 978-0-387-96051-7.
  • Кинг, KN (1 января 1988 г.). Модула-2: Полное руководство . Берлингтон, Массачусетс : издательство «Джонс и Бартлетт». ISBN 978-0669110913.
  • Сатклифф, Ричард Дж. (2004–2005). Модула-2: Абстракции для данных и программных структур . Книги Арджая. ISBN 978-0-669-11091-3. Использует стандарт ISO Modula-2.
  • Гливс, Ричард (1984). Модула-2 для программистов на языке Pascal (1-е изд.). Швейцария: Springer Nature. ISBN 978-0-387-96051-7.
  • Купер, Дуг (1 сентября 1990 г.). О боже! Модула-2: Введение в программирование . Нью-Йорк , Нью-Йорк : WW Norton & Company . ISBN 978-0393960099.

Ссылки [ править ]

  1. ^ "Краткое изложение проектов Н. Вирта, 1962–1999" . Департамент компьютерных наук . ETH Zurich .
  2. ^ Вирт, Никлаус (2002). «Паскаль и его преемники». В Бруе Манфред; Денерт, Эрнст (ред.). Пионеры программного обеспечения: вклад в разработку программного обеспечения . Берлин, Гейдельберг: Springer-Verlag . С. 108–120. DOI : 10.1007 / 978-3-642-59412-0 . ISBN 978-3-642-59412-0.
  3. Вирт, Никлаус (18 февраля 2005 г.). «История и цели Модулы-2» . Журнал доктора Добба . Informa PLC.
  4. ^ a b Вирт, Никлаус . Программирование в Модуле-2 (4-е изд.). Берлин, Гейдельберг: Springer. DOI : 10.1007 / 978-3-642-83565-0 . ISBN 978-3-642-83565-0. Стр. 4.
  5. Вирт, Никлаус ; Гуткнехт, Юрг ; Охран, Ричард; Пол, Роберт Дж .; Коар, Дэвид (август 1984). «Тема: Модуль-2» . Байт: Журнал малых систем . Vol. 9 нет. 8. С. 143–232. Доступно на Archive.org
  6. Вирт, Никлаус (1 мая 1984 г.). «Однопроходный компилятор Modula-2 для Lilith» (PDF) . CFB Software . Проверено 28 января 2019 .
  7. ^ ИСО / МЭК 10514-1: 1996
  8. ^ Тихи и др., Modula-2 *: расширение Modula-2 для высокопараллельных переносимых программ, Университет Карлсруэ [1990]
  9. ^ Bräunl, параллельное программирование, Prentice-Hall [1993]
  10. Перейти ↑ Muller, C. (ноябрь 1986). «Модула – Пролог: разработка программного обеспечения». Программное обеспечение IEEE . 3 (6): 39–45}. DOI : 10.1109 / MS.1986.229475 .
  11. ^ a b modula2.org, 5. Где я могу получить информацию об ISO Modula-2?
  12. ^ Карделли и др., Отчет Modula-3, Отчет об исследовании 31, Центр системных исследований, Корпорация цифрового оборудования, [1988]
  13. ^ Н. Вирт и Дж. Гуткнехт, Project Oberon: дизайн операционной системы и компилятора, ISBN 0-201-54428-8 , Addison-Wesley [1992] 
  14. ^ Moessenboeck & Wirth, язык программирования Оберон-2 , ETH Zurich [1995]
  15. ^ Thomas Bräunl, Parallaxis, язык для структурированного программирования с параллельными данными, Штутгартский университет [1996]
  16. ^ Пэт Д. Терри, Другой минимальный язык программирования, ACM SIGPLAN Notices No. 30 [1995]
  17. ^ D. Blasband, Язык программирования YAFL, второе издание, [1993]
  18. ^ Delco Electronics Electron Magazine, The Atwood Legacy, Spring '89, стр 25
  19. ^ Разработка электроники для автогонок GM
  20. ^ Колташев, А. А. (2006). «Модула-2 в российском космосе» . Кронос: История проекта . xTech . Проверено 8 апреля 2021 года .
  21. ^ Дано, Дэвид (9 октября 2020 г.). «ACK» . GitHub . Проверено 13 марта 2021 года .
  22. ^ "ADW Modula-2" . Modula-2.org . Проверено 13 марта 2021 года .
  23. ^ "Аглет Модула-2" . Аглет Модула-2 . 15 февраля 2012 . Проверено 13 марта 2021 года .
  24. ^ "Кембриджский модуль-2" . Кембриджские микропроцессорные системы . Проверено 13 марта 2021 года .
  25. ^ "ФСТ Модула-2" . psg.com . Проверено 13 марта 2021 года .
  26. ^ "Гарденс Пойнт Модула" . Группа языков и систем программирования факультета информационных технологий . Квинслендский технологический университет, Брисбен. 29 января 2007. Архивировано из оригинала 23 марта 2013 года . Проверено 13 марта 2021 года .
  27. ^ "Гарденс Пойнт Модула-2 (GPM / CLR)" . Архив CodePlex: Архив проектов с открытым исходным кодом . Microsoft. 29 января 2007 года. Архивировано 2018 годом . Проверено 13 марта 2021 года .
  28. ^ "GNU Modula-2" . Саванна . Фонд свободного программного обеспечения. 30 августа 2018 . Проверено 13 марта 2021 года .
  29. ^ Деген, Рене; Нидер, Клаудио; Preusing, Бернд; Шауб, Маркус; Штраубе, Йорг (2004). «М2Амига» . Веб-сайт Клаудио . A + L AG. Архивировано 20 января 2019 года . Проверено 13 марта 2021 года .
  30. ^ "Лилит и Модула-2" . CFB Software . Проверено 13 марта 2021 года .
  31. ^ "MacMETH: Быстрая языковая система Modula-2 для компьютеров Macintosh" . ETH Zurich: Экология наземных систем . 22 января 2020 . Проверено 13 марта 2021 года .
  32. ^ "Mod51 Язык программирования структурированного текста" . Инструменты дизайна . Архивировано из оригинального 21 октября 2008 года . Проверено 13 марта 2021 года .
  33. ^ Tempelmann, Томас (1 сентября 2020). "Домашняя страница Томаса Темпельмана" . Проверено 18 марта 2021 года .
  34. ^ "Модула-2 R10" . Проверено 18 марта 2021 года .
  35. ^ Dotzel, Чжи-Я (21 января 2020). "ModulAware" . Проверено 18 марта 2021 года .
  36. Видеманн, Альберт (13 января 2021 г.). «П1 Модуль-2» . p1 Общество компьютерных наук . Проверено 19 марта 2021 года .
  37. ^ Бек, Майкл; Гейсс, Рубино (2006). "Компилятор Карлсруэ Модула-2 MOCKA" . Институт программных структур и организации данных (IPD) . Карлсруэский технологический институт . Архивировано из оригинала 4 сентября 2009 года . Проверено 21 марта 2021 года .
  38. ^ "Системы Modula-2 для OpenVMS / Alpha и OpenVMS / VAX" . Terra Datentechnik (на английском и немецком языках). Эрленбах, Швейцария. 12 ноября 2002 . Проверено 23 марта 2021 года .
  39. ^ Borchert, Андреас; Хаш, Мартин (21 января 2003 г.). "m2c: Система Модула-2 Ульма" . Ульмский университет . Ульм , Германия . Проверено 23 марта 2021 года .
  40. ^ «Семейство продуктов XDS: Modula-2 - инструменты разработки Oberon-2» . ООО "Эксельсиор" . 1999–2009 гг. Архивировано из оригинального 27 мая 2009 года . Проверено 23 марта 2021 года .
  41. ^ а б "IBM Modula-2" . edm2.com . 2 марта 2019 . Проверено 12 марта 2021 года .
  42. ^ «Отзыв читателей об AS / 400, который я разгадал тайну» . itjungle.com . 21 февраля 2011 . Проверено 12 марта 2021 года .
  43. ^ Soltis, Frank G. (1997). Внутри AS / 400 (2-е изд.). Duke Press. ISBN 978-1882419661.
  44. ^ Кнудсен, Свенд Эрик (1983). Medos-2: ориентированная на Modula-2 операционная система для персонального компьютера Лилит (PhD). ETH Zurich . DOI : 10.3929 / ethz-a-000300091 .
  45. Knudsen, Свенд Эрик (25 октября 2000 г.). «Медос в ретроспективе». В Бёсёрменьи, Ласло; Гуткнехт, Юрг ; Помбергер, Густав (ред.). Школа Никлауса Вирта: Искусство простоты . Морган Кауфманн. С. 69–86. ISBN 978-1558607231. ISBN  1-55860-723-4 и dpunkt, ISBN 3-932588-85-1 . 
  46. Перейти ↑ Sand, Paul A. (сентябрь 1984). «Персональный компьютер Лилит» . Байт . С. 300–311 . Проверено 6 марта 2021 года . Перепечатка.

Внешние ссылки [ править ]

  • Официальный веб-сайт

Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.