article

ПЛ/1 (PL/I, Programming Language I — "Язык программирования номер один", (жарг.)Плюшкин/1) — разработанный в 1964 году язык программирования, созданный для научных, инженерных и бизнес-ориентированных вычислений. Он содержит такой широкий набор синтаксических конструкций и встроенных функций, что, вероятно, не существует ни одного компилятора, поддерживающего все возможности языка ПЛ/1. ПЛ/1 поддерживает рекурсию и структурное программирование, и его основная область применения — обработка данных.

Основные свойства языка:

  • Свободный синтаксис
  • Ключевые слова нечувствительны к регистру
  • По умолчанию передаёт параметры по ссылке
  • Поддерживает сложные структуры с объединениями (в терминологии языка Паскаль — записи с вариантами)
  • Встроенная поддержка многих типов данных, включая два вида строк
  • Несколько видов динамического выделения памяти

История ПЛ/1


ПЛ/1 был разработан в IBM как часть системы System/360. До того, IBM разработала несколько несовместимых компьютеров для разных целей: одни для научных, другие — для бухглатерских приложений. Целью System/360 была разработка единой системы совместимых компьютеров, которые заменили бы все предыдущие модели и могли бы с успехом использоваться для любых задач.

Научные и бухгалтерские программы не только использовали разные компьютеры, но ещё и писались на разных языках: научные — на Фортране, бухгалтерские — в основном на Коболе. Целью ПЛ/1 было создание языка, подходящего для обоих типов приложений. Другой целью было добавление конструкций для структурного программирования, взятых из Алгол-60, не поддерживаемых в то время ни Коболом, ни Фортраном.

Для разработки ПЛ/1 был сформирован комитет, состоящий из программистов IBM и пользователей со всех концов США. Работа комитета длилась несколько месяцев. Изначально планировалось, что ПЛ/1 будет готов к использованию к моменту запуска System/360, но это не было выполнено.

Язык изначально был назван NPL (New Programming Language — "Новый Язык Программирования"), но эта аббревиатура уже использовалось британской Национальной Физической Лабораторией (National Physics Laboratory). Поэтому название изменили на ПЛ/1.

Поначалу ПЛ/1 вызвал большой энтузиазм, но оказался не так успешен, как планировалось, по следующим причинам:

  • Чрезвычайная сложность языка, в значительной мере потому, что язык был разработан комитетом, пытавшимся найти соглашение и удовлетворить нужды совершенно разных пользователей (научных и банковских).
  • Противоречия в самой концепции языка. Противоречия возникали из-за обилия грамматических и синтаксических нюансов, которые создателями языка не были до конца продуманы. Опять же причина являлась в попытке скрестить научные и банковские приложения.
  • Трудность реализации компилятора, и, как следствие, большое количество сбоев и ошибок и низкое качество первых компиляторов. Это возникало также из-за того, что ПЛ/1 содержал много почти не используемых возможностей, вроде поддержки многопоточности.
  • Неоптимальность скомпилированного кода, что было очень критично для математических расчётов. Отчего ПЛ/1 не смог заменить собой Фортран. Асинхронная модификация переменных (например, в результате конструкции 'on error') крайне затрудняла оптимизацию.

Хотя ПЛ/1 и не смог вытеснить Фортран и КОБОЛ (или даже сравниться с ними по популярности), тем не меннее он широко использовался в 1960-х и 1970-х годах, особенно для бухгалтерских приложений, в основном из-за отсутствия в то время лучшей альтернативы. Как Фортран , так и КОБОЛ были бедны по своим возможностям даже для задач того времени. ПЛ/1, напротив, представлял богатый набор средств. Так, проект Мультикс, одна из первых попыток написать ОС на языке высокого уровня, использовал ПЛ/1. Его подмножество, PL/M, использовалось для написания системы CP/M, а диалект XPL был использован для создания языка HAL/S, на котором программировались компьютеры космических кораблей проекта "Шаттл". Для ещё одного подмножества — PL/C — в Корнелльском университете был создан уникальный компилятор, который мог скомпилировать программу с любыми синтаксическими ошибками, путём исправления многих ошибок и преобразования оставшихся в объектный код. Первая система резервирования авиабилетов, SABRE, была написана (по крайней мере, её предполагалось написать) на ПЛ/1.

ПЛ/1 был, вероятно, первым коммерческим языком, компилятор для которого писался на компилируемом языке. (Подобные экспериментальные языки были и раньше: например, NELIAC был разработан как мнинимум за 5 лет до ПЛ/1, были и другие.)

Хотя ПЛ/1 использовался в основном на мейнфреймах, есть также версии для AIХ, Windows и Unix.

Пример программы


Test: procedure options(main);

declare My_String char(20) varying initialize('Hello, world!'); put skip list(My_String); end Test;

Ссылки


Языки программирования

PL/I | PL/I | PL/I | PL/1 | PL/I | PL/I | PL/I | PL/I | PL/1 | PL/I | PL/I | PL/I | PL/I | PL/I

 

This article is licensed under the GNU Free Documentation License. It uses material from the "ПЛ/1".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld