Главная > Энциклопедия кибернетики. Т.2
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

ПЛ-1

- многоцелевой универсальный язык программирования. Разработан в 1963—66 амер. фирмой ИБМ. Язык ПЛ-1 в значительной мере объединил в себе фундаментальные понятия и средства таких более ранних языков, как ФОРТРАН, АЛГОЛ-60, КОБОЛ, адресный язык. Существенной его особенностью является ориентация на совр. операционные системы, что значительно повышает эффективность применения его. В то же время с ПЛ-1 связано много новых идей и понятий, он обладает рядом новых свойств.

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

ПЛ-1 - универсальный машинно-независимый язык программирования достаточно высокого уровня. Он обладает широким набором средств для эффективного описания вычисл. процессов, задач обработки данных, обработки символьной информации, процессов моделирования, решения логич. задач, исследования логич. схем, решения задач в реальном масштабе времени и даже для разработки систем матем. обеспечения. Важной особенностью языка является его модульность — возможность образовывать специализированные (для конкретной области применения) подмножества языка различной сложности путем отбрасывания ненужных для данных приложений средств. Указанная особенность облегчает обучение языку и его использование и существенно сказывается на структуре и эффективности работы соответствующих трансляторов.

Операторы программы на ПЛ-1 объединяются в т. н. блоки. Программа может состоять из одного или нескольких блоков, которые могут быть вложены один в другой. Блоки определяют область действия переменных и других имен, так что одно и то же имя может использоваться в разных блоках для различных целей; кроме того, понятие блока позволяет отводить память под переменные только на время выполнения данного блока и освобождать ее для использования в других целях по прекращении работы блока.

Памяти распределение для данных можно выполнять либо статически, до начала выполнения программы, либо динамически — в некоторый момент ее выполнения. Динамическое распределение памяти осуществляется либо автоматически, в момент входа в блок, либо управляется программистом с помощью спец. операторов и аппарата т. н. указателей, выступающих в роли фиксаторов места памяти, в которое помещается данное. Если при размещении в памяти некоторого данного используется указатель, то такая переменная наз. базированной. В памяти возможно хранение и использование нескольких «поколений» данных; распределением памяти между ними управляет программист.

В качестве объектов обработки в языке могут использоваться скалярные величины, -мерные упорядоченные совокупности элементов с одинаковыми свойствами, иерархически

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

По типам различают рабочие данные и данные, управляющие выполнением программы. К рабочим данным относятся числовые величины (вещественные и комплексные числа), строки символов, строки битов. Управляющие данные служат для организации передач управления в программе, параллельного выполнения отдельных ветвей программы, прерывания программы при наступлении некоторого события и организации динамического распределения памяти. Каждое данное описывается в программе с помощью т. н. объявления, в котором указываются приписываемые ему свойства. В качестве свойств рабочих данных могут фигурировать особенности формы их представления (основание системы счисления, разрядность, представление с фиксированной или плавающей запятой), размер, шаблон, аналогичный шаблону в КОБОЛе, его класс (вещественные или комплексные числа), особенности способа размещения и хранения в памяти ЦВМ и области действия, а также начальные значения данных. При объявлении свойств в языке последовательно проведена концепция т. н. умолчания: если некоторое свойство явно не указано и имеется несколько альтернативных возможностей, одна из них, определяемая языком, приписывается автоматически, причем в тех случаях, когда выбор свойств можно сделать неоднозначно, он осуществляется по контексту объявления. Всякое объявление имеет в программе определенную область действия, определяемую блочной структурой программы.

Операторы языка позволяют производить следующие действия: вычислять арифм. выражения над действительными и комплексными числами (в т. ч. над упорядоченными последовательностями данных и над структурами); выполнять логич. операции «И», «ИЛИ», «НЕ» над строками битов, «склеивать» строки; выполнять операции сравнения для различных типов данных; осуществлять передачу значений между данными с необходимыми преобразованиями формы представления; осуществлять ввод — вывод данных, в т. ч. обмен информацией с массивами, хранящимися на лентах магнитных и дисках магнитных, редактирование данных и т. д.; динамически управлять выполнением программы; обрабатывать списковые структуры; выполнять отдельные операторы в процессе трансляции; управлять распределением памяти; обращаться к т. н. встроенным функциям — стандартным подпрограммам, предусмотренным в самом языке.

При управлении выполнением программы, помимо операторов условного и безусловного переходов, циклов и возможности обращения к подпрограмме, имеются средства для параллельного выполнения отдельных участков программы и прерывания ее. Для реализации этих средств вводится понятие ветви. Под ветвью понимают выполнение некоторой совокупности операторов. Программа в языке ПЛ-1 всегда содержит главную ветвь; если некоторый участок программы желательно выполнять параллельно, асинхронно с главной ветвью, то при вызове в работу его можно объявить ветвью, чем разрешается асинхронное выполнение его. Завершение выполнения ветви рассматривается как свершение некоторого события. Выполнение ветви может быть приостановлено и задержано до тех пор, пока не будет достигнута некоторая точка при выполнении другой ветви — с этой целью программист указывает специальный оператор, предписывающий ждать событие, связанное с ветвью. Т. о. достигается синхронизация ветвей. При образовании ветви указывается приоритет. ее выполнения.

В языке ПЛ-1 имеется возможность управлять прерыванием, а именно: блокировать стандартные реакции системы на прерывание; определять особые действия для той или иной ситуации прерывания; заказывать особые причины прерывания, не предусмотренные стандартными действиями системы. Последняя возможность представляет мощные средства отладки программ; так, программист может оговорить возникновение ситуации прерывания при каждом изменении значения некоторого данного или при каждом выполнении некоторого помеченного оператора и в качестве реакции на прерывание заказать выдачу некоторого сообщения; ситуацией прерывания может быть выход за объявленные границы диапазона индексов.

Наконец, ситуацией прерывания может служить свершение некоторого события, при этом имеется возможность имитировать его свершение в любой точке программы. Ряд операторов языка выполняется во время трансляции. Эти операторы преобразуют текст исходной программы на языке программирования ПЛ-1 в рабочую программу. Имеется возможность, в частности, производить вставки, исправлять текст исходной программы (напр., при ее отладке), видоизменять программу для получения более эффективной рабочей программы и др. Особенности языка ПЛ-1 позволяют повысить эффективность работы трансляторов и изготовляемых ими рабочих программ и более рационально использовать имеющееся оборудование ЭВМ.

Лит.: Универсальный язык программирования PL/1. Пер. с англ. М., 1968; Джермейн К. Программирование на IBM/360. Пер. с англ. М., 1971 [библиогр. с. 852]. Л. П. Бабенко.

1
Оглавление
email@scask.ru