stringtranslate.com

Apple (язык программирования)

Apple — язык программирования на диалекте PL/I , созданный исследовательскими лабораториями General Motors для суперкомпьютера Control Data Corporation STAR-100 .

Apple — это подмножество полного PL/I, но оно было расширено для интеграции с языком ассоциативного программирования (APL — не путать с APL (языком программирования) ) [1] : стр.9  [2] : стр.92 

Возможности ассоциативного программирования

Другие особенности

Переменная OFFSETопределяет относительное расположение базовой переменной в содержащем файле. Переменная DESCRIPTORнапоминает переменную-указатель, но также содержит длину связанной базовой переменной в дополнение к ее адресу.

Оператор LOCKпереводит программу в "заблокированное состояние", в котором все асинхронные события будут поставлены в очередь. Соответствующий UNLOCKоператор переводит программу в "разблокированное состояние", способное обрабатывать асинхронные события. Все поставленные в очередь события будут обработаны.

Асинхронная обработка

Apple использует тип данных PL/I EVENTдля реализации асинхронной обработки.

Переменная события может быть связана с внешним действием, например, нажатием клавиши на терминале пользователя, с помощью системного вызова. Каждое событие имеет «состояние задержки» и «состояние завершения», связанные с ним. Когда происходит событие, связанное с действием, событие становится завершенным и остается завершенным, пока программа не получит доступ к информации, связанной с событием. События также могут быть помечены как завершенные с помощью SIGNALоператора, а не стандартного назначения PL/I псевдопеременной COMPLETION. Событие может быть переведено в состояние задержки с помощью DELAYпсевдопеременной, и распознавание останется отложенным, пока программа не сбросит состояние задержки.

События могут быть связаны с "ON-Units" с помощью ON EVENTоператора, аналогичного стандарту PL/I для условий. Оператор REVERTудаляет связь. Когда событие распознано (завершено и не задержано), выполняется On-Unit. Этот ON-Unit может получить доступ к системной информации о событии с помощью ONPTRвстроенной функции, которая возвращает адрес "Event Completion Block" и устанавливает событие для завершения.

Аппаратный доступ

Класс REGISTERхранения и INLINEвстроенная подпрограмма обеспечивают доступ к аппаратным функциям STAR.

Скалярная арифметическая переменная может быть объявлена REGISTER [register-specification]​​. register-specificationможет быть беззнаковой целой константой 0..255 для указания одного из аппаратных регистров компьютера. Если она опущена, компилятор назначит регистр. [ необходима цитата ]

Встроенная подпрограмма INLINEвставляет произвольную инструкцию машинного языка в скомпилированный код. За исключением кода функции (кода операции) и подкода инструкций все операнды могут быть числовыми константами, переменными или арифметическими константами.

Пример: [1] : стр.202 

ВЫЗОВ ВСТРОЕННОЙ("F8", 5, 0, ИСТОЧНИК, 0, "20", 0, ЦЕЛЬ);

Замена текста

Спецификация LITERALLYпозволяет программисту указать текст замены, который будет заменен во время компиляции. Синтаксис:

%DECLARE <идентификатор> LITERALLY [ (<список-параметров> ) ] <символьная-константа> ;

Если <parameter-list> не указан, компилятор заменяет все вхождения <identifier> во всей программе на <character-constant>. Если <parameter-list> указан, заменяющая строка символов формируется путем замены всех вхождений имени параметра соответствующим аргументом.

Пример:

%ОБЪЯВИТЬ БИТЫ ЛИТЕРАЛЛИЧЕСКИ(A1,A2) 'A1*A2*64'; I = БИТЫ(J,B);

сгенерирует утверждение:

Я=Дж*8*64;

Пропущенные функции PL/I

Некоторые функции стандартного PL/I не включены в Apple. Наиболее значимыми являются: [1]

Ссылки

  1. ^ abcde Крулл, Фред; Маркотти, Майкл; Пикртт, Мэри; Томас, Джеймс; Цайлингер, Рональд (1972). Справочное руководство Apple (PDF) . Исследовательские лаборатории General Motors . Получено 29 июня 2024 г. .
  2. ^ Бахман, Чарльз (январь 2006). Интервью с Чарльзом В. Бахманом. doi :10.1145/1141880.1141882. ISBN 978-1-4503-1771-9. Получено 29 июня 2024 г. через цифровую библиотеку ACM.«Джордж [Додд] создал очень привлекательную систему, похожую на IDS, под названием «Язык ассоциативного программирования» (APL), которая была интегрирована с PL/1. General Motors широко использовала ее в системе графического дизайна для разработки автомобилей. IBM позже попросила GM отказаться от аббревиатуры APL, чтобы они могли использовать ее со своим «Языком программирования»».

Внешние ссылки