PL360 (або PL/360) — мова системного програмування, розроблена Ніклаусом Віртом і реалізована Віртом, Джозефом В. Веллсом молодшим та Едвіном Саттертуейтом молодшим для комп’ютера IBM System/360 у Стенфордському університеті . Опис PL360 опубліковано на початку 1968 року, хоча реалізація, ймовірно, була завершена до того, як Вірт покинув Стенфорд у 1967 році.

Основні особливості PL/360 — це однопрохідний компілятор мови, синтаксис якої подібний до ALGOL, який надає можливості низькорівневого програмування (машинні інструкції, робота з регістрами тощо), подібно до мови асемблера, але також надає функції, які зазвичай зустрічаються у мовах програмування високого рівня, такі як складні арифметичні вирази та потоки керування. Вірт використовував PL360 для створення ALGOL W .

Типи даних:

Byte (character) – 1 байт Short integer – 2 байти, інтерпретується як ціле число в двійковій системі запису Integer / logical – 4 байти, що інтерпретуються як ціле число в двійковій нотації з доповненням до двох Real – 4 байти, інтерпретовані як коротке арифметичне число з рухомою комою з основою 16 (шістнадцяткове) Long real – 8 байт, інтерпретується як довге число з плаваючою комою з основою 16

Регістри можуть містити ціле, дійсне або довге дійсне.

Індивідуальні інструкції System/360 можна генерувати inline за допомогою «інструкції функції» 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 роках. На початку своєї роботи там він розробляв свій компілятор та інтерпретатор мови Euler, початковий код яких датовані 1965 роком. Також у 1965 році Стенфорд оновив свій B5000 на базі феритової пам’яті з барабанним накопичувачем до B5500 з дисковим накопичувачем .

Оскільки цільовий IBM System/360 (який мав замінити наявний IBM 7090) не був встановлений до 1967 року, початкова реалізація PL360 була написана на ALGOL і протестована на станфордському B5500. Після роботи компілятор був перекодований у PL360, перекомпільований у системі Burroughs і переміщений як двійковий файл до S/360.

Основною мовою для B5500 була Executive Systems Problem Oriented Language (ESPOL), похідна від ALGOL, а PL360 був призначений для того, щоб привнести подібні можливості в архітектуру мейнфреймів IBM, хоча йому бракувало основних можливостей як Assembler F, так і ESPOL. Цей намір було здебільшого проігноровано, а програмісти продовжували використовувати реалізації макро-асемблерів IBM.

Однак на початку 1970-х років PL360 було розширено, щоб забезпечити більше можливостей, і це була мова програмування, вибрана для розробки Stanford Physics Information Retrieval System (SPIRES), Стенфордської системи керування базами даних.

Див. також IBM PL/S Асемблер високого рівня PL-11

Примітки

Список літератури

Зовнішні посилання PL360 Підручник