ПИЛОТ - PILOT

Программируемый запрос, обучение или обучение ( PILOT ) - это простой язык программирования высокого уровня, разработанный в 1960-х годах. Как и его младший брат LOGO , это был ранний набег на технологию компьютерного обучения .

PILOT - это императивный язык, похожий по структуре на BASIC и FORTRAN по своей базовой схеме и структуре. Его ключевые слова состоят из одиночных символов T для «type» для печати текста или A для «accept» для ввода значений от пользователя.

Его история

PILOT был разработан Джоном Амсденом Старквезером , профессором психологии Калифорнийского университета в медицинском центре Сан-Франциско . В 1962 году он разработал простой язык для автоматизации обучающих тестов под названием Computest. Начиная с 1968 года, он разработал следующий проект под названием PILOT для различных компьютеров того времени, таких как SDS 940 .

Синтаксис языка

Строка кода PILOT содержит (слева направо) следующие элементы синтаксиса :

  • необязательный ярлык
  • командное письмо
  • необязательный Y (если да) или N (нет)
  • необязательное условное выражение в круглых скобках
  • двоеточие (":")
  • операнд , или несколько операндов с разделителями запятыми.

Метка также может быть одна в строке, за которой не следует другой код. Синтаксис метки - это звездочка, за которой следует идентификатор (буквенно-цифровая строка с буквенным начальным символом).

Командные буквы

Следующие команды используются в "core PILOT". Строки, начинающиеся с «R:», обозначают примечание (или комментарий), объясняющее следующий код.

А
Принять ввод в « буфер приема ». Примеры:
 R:Next line of input replaces current contents of accept buffer
 A:
 R:Next line of input replaces accept buffer, and string variable 'FREE'
 A:$FREE
 R:Next 3 lines of input assigned to string variables 'X', 'Y' and 'Z'
 A:$X,$Y,$Z
 R:Numeric input assigned to numeric variable "Q"
 A:#Q
C
Вычислить и присвоить числовое значение. Большинство реализаций PILOT имеют только целочисленную арифметику и не имеют массивов . Пример:
 R:Assign arithmetic mean of #X and #Y to #AM
 C:#AM=(#X+#Y)/2
D
Измерьте размер массива в некоторых реализациях.
E
Завершить подпрограмму (возврат из нее ) или (если она находится вне подпрограммы) прервать выполнение программы. Всегда используется без операндов.
J
Перейти к ярлыку. Пример:
  J:*RESTART
M
Сопоставьте буфер приема со строковыми переменными или строковыми литералами . Пример:
  R:Search accept buffer for "TRUTH", the value of MEXICO and "YOUTH", in that order
  M:TRUTH,$MEXICO,YOUTH

Первая строка соответствия (если есть), которая является подстрокой буфера приема, назначается специальной переменной $ MATCH. Буферные символы слева от первого совпадения назначаются $ LEFT, а символы справа назначаются $ RIGHT.

Флаг совпадения устанавливается на «да» или «нет», в зависимости от того, выполнено ли совпадение. Любой оператор, у которого после буквы команды стоит буква Y, обрабатывается, только если установлен флаг соответствия. Операторы с N обрабатываются, только если флаг не установлен.

N
Эквивалентно TN: (введите, если последнее совпадение оказалось неудачным)
р
Операнд R: является комментарием и поэтому не действует.
Т
Операнд «Тип» в качестве вывода. Примеры:
  R:The next line prints a literal string
  T:Thank you for your support.
  R:The next line combines a literal string with a variable expression
  T:Thank you, $NAME.
U
Используйте (вызовите) подпрограмму. Подпрограмма начинается с метки и заканчивается буквой E: Пример:
  R:Call subroutine starting at label *INITIALIZE
  U:*INITIALIZE
Y
Эквивалентно TY: (введите, если последнее совпадение было успешным)
Круглые скобки
Если в операторе есть выражение в скобках, это условное выражение, и оператор обрабатывается только в том случае, если тест имеет значение «истина». Пример:
  R:Type message if x>y+z
  T(#X>#Y+#Z):Condition met

Производные

Расширения ядра PILOT включают в себя массивы и с плавающей точкой чисел в Apple , PILOT и реализацию LOGO -inspired черепахи графики в Atari PILOT.

В период с 1979 по 1983 год группой пользователей UK PILOT руководил Алек Вуд, преподаватель в Wirral Grammar School for Boys, Мерсисайд, Великобритания. Для микрокомпьютеров того времени было создано несколько машинных версий mini PILOT, а в школе в Шотландии было разработано интерактивное учебное пособие по иностранному языку, в котором ученики проводили по городу следы, задавая и отвечая на вопросы на немецком, французском и т. Д. Статья в декабрьском номере. Компьютерная эра 1979 года охватывала раннюю реализацию под названием Tiny Pilot и давала полный листинг машинного кода.

Версии PILOT, наложенные на интерпретаторы BASIC ранних микрокомпьютеров, не были известны в конце 1970-х - начале 1980-х, и журнал Byte в какой-то момент опубликовал полную производную PILOT не по Тьюрингу, известную как Waduzitdo Ларри Хериарти, чтобы продемонстрировать, что такое компьютер был способен.

В Vanilla PILOT 1983 года для Commodore 64 была добавлена ​​графика черепахи, как и в Super Turtle PILOT, который был опубликован в виде листинга в октябрьском выпуске COMPUTE! 1987 года ! журнал.

В 1991 году Институт инженеров по электротехнике и радиоэлектронике (IEEE) опубликовал стандарт для пилотов как IEEE Std 1154-1991. С тех пор он был отозван. Эталонная реализация на этой основе был реализован Эрик Реймонд и поддерживал - неохотно - в течение следующих 15 лет.

В 1990 году Том Нильсен, EdD, разработал и запрограммировал eSTeem PILOT для компьютеров Atari ST. Основанный на стандартах IEEE для PILOT, он включает специфические для Atari функции, такие как управление устройствами Laserdisc и CDROM.

Реализация psPILOT для любителей 2018 года, частично основанная на стандарте IEEE, была реализована с использованием языка сценариев Microsoft PowerShell.

использованная литература

дальнейшее чтение

  • Джон Старквезер (1985). Руководство пользователя Pilot . Прентис-Холл. ISBN   978-0-13-937755-6 .