Модуль-2


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

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

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

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

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

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