NEWP (New Executive Programming Language)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:30, 24 января 2018.

NEWP (или New Executive Programming Language) - это язык программирования высокого уровня, используемый в системах UNISYS MCP. Этот язык используется для записи операционной системы и других системных утилит, хотя он также может быть использован для написания программного обеспечения пользователя. Несколько конструкций отделяют его от расширенного ALGOL, на котором он основан. Операторы языка, таких как MEMORY, которая позволяет иметь прямой доступ к памяти.[Источник 1]

Структура программы

Традиционно новая запись состоит из 72 символов исходного текста 8-значным порядковым номером, за которым следует 10-значный код патч. NEWP также может принимать входные данные в других форматах исходных файлов. FILEKIND исходного файла определяет формат записи. В частности, записи из исходных файлов с FILEKIND WIDESYMBOL состоят из 11-значного порядкового номера, за которым следует 10 - значный идентификатор патча, за которым следует исходный текст. Длина этого исходного текста является остатком записи и должна находиться в диапазоне от 72 до 255 символов. Обратите внимание, что файлы с FILEKIND данных интерпретируются как в традиционном формате NEWP. Это происходит потому, что SYSTEM / PATCH (с настройками по умолчанию) иногда создает выходной файл в традиционном формате NEWP с FILEKIND данных. Файлы карты, ленты и включить файлы могут быть в любой комбинации поддерживаемых форматов.[Источник 2]

Элементы программы NEWP

Программа NEWP не может включать глобальную часть или отдельный список процедур, который действителен в ALGOL. В NEWP лексический уровень повышается только с помощью вложенных процедур, а не с помощью вложенных процедур и вложенных блоков, как в ALGOL. Таким образом, по умолчанию любая вложенная процедура вызывает изменение лексического уровня, в то время как вложенный блок, который не является процедурой, не вызывает. Сегментация основана на лексических уровнях. Можно изменить лексический уровень, на котором происходит сегментация, с помощью директивы блока SEGMENTLEVEL.[Источник 3]


Основные конструкции

NEWP-это блочно-структурированный язык, очень похожий на расширенный ALGOL. Он включает в себя несколько функций, заимствованных из других языков программирования, которые помогают при разработке программного обеспечения. К ним относятся модули (и более поздние, супер-модули), которые группируют вместе функции и их данные с определенными интерфейсами импорта и экспорта. Это обеспечивает инкапсуляцию данных и целостность модуля. Поскольку NEWP предназначен для использования в качестве языка операционной системы, он позволяет использовать несколько небезопасных конструкций. Каждый блок кода может иметь определенные небезопасные элементы. Небезопасные элементы-это элементы, разрешенные только в операционной системе. Они включают доступ к тегу каждому слову, доступ к произвольным элементам памяти, низкоуровневым машинным интерфейсам и т. д. Если программа не использует небезопасные элементы, она может быть скомпилирована и выполнена кем угодно. Если используются небезопасные элементы, компилятор помечает код как неисполняемый. Он по-прежнему может быть выполнен пи разрешении администратора безопасности.[Источник 4]

Фольклор

По слухам, NEWP действительно означает "Nearly Every Word Pascal" ("почти каждое слово Паскаля") после инженерной инициативы западного побережья, чтобы переместить языки Бурроуза, такие как ALGOL, в более похожий на Паскаль синтаксис. Также поговаривают, что это означает "No Executive Washroom Privileges" ("никаких привилегий начальнику уборной)", предположительно после того, как ее дизайнеры вышли из благосклонности к руководству. Кроме того, NEWP был выбран в качестве имени компилятора или языка в момент, когда дизайнер нажал на имя, под которым будет управляться код компилятора. Это означало "новый язык программирования", по существу скучное имя, с несчастливым свойством, ведь "новая" - это часть имени которая быстро станет неумесдимо добавитьтной. Первоначальный дизайнер проекта был Техасец и вскоре начал описывать имя как ответ на вопрос: "это еще не сделано?". NEWP звучал как Западная Техасская версия "nope"("нет"). После того, как проект был выпущен, название было "переопределено", которое теперь означало "No Executive Washroom Privileges" - описание типа человека, который, вероятно, будет использовать язык. Какое-то время был конкурс на придумывание нового имя для компилятора и языка, но к тому времени имя NEWP уже слишком приелось.[Источник 5]

Источники

  1. NEWP // Wikipedia,. [2001-2017]. URL: https://en.wikipedia.org/wiki/NEWP (Дата обращения: 10.01.2018).
  2. NEWP Programming Reference Manual // Unisys[2015–2017]. URL: http://public.support.unisys.com/aseries/docs/clearpath-mcp-17.0/pdf/86002003-407.pdf (Дата обращения: 10.01.2018)
  3. NEWP Programming Reference Manual // Unisys[2015–2017]. URL: http://public.support.unisys.com/aseries/docs/clearpath-mcp-17.0/pdf/86002003-407.pdf (Дата обращения: 10.01.2018)
  4. NEWP // Wikipedia,. [2001-2017]. URL: https://en.wikipedia.org/wiki/NEWP (Дата обращения: 10.01.2018).
  5. NEWP // Wikipedia,. [2001-2017]. URL: https://en.wikipedia.org/wiki/NEWP (Дата обращения: 10.01.2018).