PL360
| PL360 | |
|---|---|
| Парадигма | процедурне програмування, імперативне програмування і структурне програмування |
| Дата появи | 1966 |
| Система типізації | статична і строга типізація |
PL360 (або PL/360) — мова системного програмування, розроблена Ніклаусом Віртом і реалізована Віртом, Джозефом В. Веллсом молодшим та Едвіном Саттертуейтом молодшим для комп’ютера IBM System/360 у Стенфордському університеті . Опис PL360 опубліковано на початку 1968 року, хоча реалізація, ймовірно, була завершена до того, як Вірт покинув Стенфорд у 1967 році.[1]
PL/360 — це однопрохідний компілятор мови, синтаксис якої подібний до ALGOL, який надає можливості низькорівневого програмування (машинні інструкції, робота з регістрами тощо), подібно [a] до мови асемблера, але також надає функції, які зазвичай зустрічаються у мовах програмування високого рівня, такі як складні арифметичні вирази та потоки керування. Вірт використовував PL360 для створення ALGOL W .
Типи даних: :8
- 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. [2] Після роботи компілятор був перекодований у PL360, перекомпільований у системі Burroughs і переміщений як двійковий файл до S/360.[1]:66
Основною мовою для B5500 була Executive Systems Problem Oriented Language (ESPOL), похідна від ALGOL, а PL360 був призначений для того, щоб привнести подібні можливості в архітектуру мейнфреймів IBM, хоча йому бракувало основних можливостей як Assembler F, так і ESPOL. Цей намір було здебільшого проігноровано, а програмісти продовжували використовувати реалізації макро-асемблерів IBM.
Однак на початку 1970-х років PL360 було розширено, щоб забезпечити більше можливостей, і це була мова програмування, вибрана для розробки Stanford Physics Information Retrieval System (SPIRES), Стенфордської системи керування базами даних.
- ↑ Але можливостей неявного адресування, типу асемблерного
USING, не було.
- 1 2 Wirth, Niklaus (Січень 1968). PL360, a Programming Language for the 360 Computers. Journal of the ACM. 15 (1): 34—74. doi:10.1145/321439.321442.
- ↑ Satterthwaite, E. (Березень 1968). Notes on Construction of Subsystems within Operating System/360 (PDF). с. 1. CGTM #43.
- PL360 Підручник
- PL360. everything2 (англ.).
На цю статтю не посилаються інші статті Вікіпедії. Будь ласка розставте посилання відповідно до прийнятих рекомендацій. |