ПЛ360
Парадигмы | Процедурный , императивный , структурированный. |
---|---|
Семья | Вирт АЛГОЛ |
Разработано | Никлаус Вирт , Джозеф В. Уэллс младший, Эдвин Саттертуэйт мл. |
Разработчик | Стэнфордский университет |
Впервые появился | 1966 год |
Дисциплина набора текста | Статический , сильный |
Объем | Лексический (статический) |
Язык реализации | АЛГОЛ , затем PL360 |
Платформа | Берроуз B5000 , IBM System/360 |
Под влиянием | |
АЛГОЛ , Проблемно-ориентированный язык исполнительных систем (ESPOL) | |
Под влиянием | |
АЛГОЛ W |
PL360 (или PL/360) — язык системного программирования, разработанный Никлаусом Виртом и написанный Виртом, Джозефом Уэллсом-младшим и Эдвином Саттертуэйтом-младшим для компьютера IBM System/360 в Стэнфордском университете . Описание PL360 было опубликовано в начале 1968 года, хотя реализация, вероятно, была завершена до того, как Вирт покинул Стэнфорд в 1967 году. [1]
Описание
[ редактировать ]PL/360 — это однопроходный компилятор с синтаксисом, похожим на ALGOL , который предоставляет возможности для указания точных инструкций машинного кода (языка) и регистрирует аналогичные [а] на ассемблер , но также предоставляет функции, обычно встречающиеся в языках программирования высокого уровня , такие как сложные арифметические выражения и структуры управления . Вирт использовал PL360 для создания АЛГОЛА W.
Типы данных: [2] : 8
- Байт или символ – 1 байт
- Короткое целое число – 2 байта, интерпретируемое как целое число в двоичной записи с дополнением до двух.
- Целое или логическое число — 4 байта, интерпретируемые как целое число в двоичной записи с дополнением до двух.
- Real — 4 байта, интерпретируемые как шестнадцатеричное ( шестнадцатеричное ) короткое с плавающей запятой. арифметическое число
- Длинное действительное число — 8 байт, интерпретируемое как длинное число с плавающей запятой по основанию 16.
Регистры могут содержать целые, действительные или длинные действительные значения.
Отдельные инструкции System/360 можно генерировать в режиме реального времени с помощью «оператора функции» PL360, который определяет инструкцию по формату и коду операции. Аргументы функции присваивались последовательно полям инструкции. Примеры [ нужны разъяснения ] являются:
определение | ссылка | |
---|---|---|
UNPK(10,#F300) |
UNPK(3,7,B2,worker) |
|
EX(2,#4400) |
EX(R1,MVC(0,lines,buffer)) |
обратите внимание на вложенную ссылку |
Пример
[ редактировать ]R0, R1, R2 и FLAG — это заранее объявленные имена.
BEGIN INTEGER BUCKET;
IF FLAG THEN
BEGIN BUCKET := R0; R0 := R1; R1 := R2;
R2 := BUCKET;
END ELSE
BEGIN BUCKET := R2; R2 := R1; R1 := R0;
R0 := BUCKET;
END
RESET(FLAG);
END
Выполнение
[ редактировать ]Вирт работал в Стэнфорде с 1963 по 1967 год, в начале которого он разрабатывал свой компилятор и интерпретатор Эйлера , исходные тексты которого датированы 1965 годом. Также в 1965 году Стэнфорд обновил свою память базовую B5000 с барабанной памятью на основную память. на базе B5500 с дисковым хранилищем .
Поскольку целевой IBM S/360 (который должен был заменить существующий IBM 7090 ) не был установлен до 1967 года, первоначальная реализация PL360 была написана на ALGOL и протестирована на Стэнфордском B5500. [3] После работы компилятор был перекодирован в PL360, перекомпилирован в системе Burroughs и перемещен в виде двоичного файла на S/360. [1] : 66
B5500 запрограммирован на языке высокого уровня, производном от ALGOL, проблемно-ориентированном языке исполнительных систем (ESPOL), а PL360 был предназначен для придания сопоставимых возможностей архитектуре мэйнфреймов IBM, хотя ему не хватало основных возможностей как Assembler F , так и ESPOL. Это намерение было по большей части проигнорировано, и программисты продолжали использовать реализации макроассемблеров IBM .
Однако в начале 1970-х годов PL360 был расширен, чтобы предоставить больше возможностей, и стал языком программирования, выбранным для разработки Стэнфордской системы поиска информации по физике (SPIRES), Стэнфордской системы управления базами данных.
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Но отсутствуют средства для неявной адресации, например,
USING
Ссылки
[ редактировать ]- ^ Jump up to: а б Вирт, Никлаус (январь 1968 г.). «PL360, язык программирования для компьютеров 360°» . Журнал АКМ . 15 (1): 34–74. дои : 10.1145/321439.321442 . S2CID 7376057 .
- ^ Вирт, Никлаус (24 декабря 1965 г.). Язык программирования для компьютеров 360° (PDF) (Технический отчет). Стэнфордский университет. CS33.
- ^ Саттертуэйт, Э. (март 1968 г.). «Заметки о построении подсистем в операционной системе/360» (PDF) . п. 1. КГТМ №43.
Внешние ссылки
[ редактировать ]- Вирт, Никлаус (24 декабря 1965 г.). Язык программирования для компьютеров 360° (PDF) (Технический отчет). Стэнфордский университет. CS33.
- Малькольм, Майкл А. (май 1972 г.). PL360 (пересмотренный) Язык программирования для компьютеров 360 (PDF) (Технический отчет). Стэнфордский университет. СТАН-CS-71-215р.