ПИЛОТ
Programmed Inquiry, Learning или Teaching ( PILOT ) — простой язык программирования высокого уровня, разработанный в 1960-х годах. [1] Как и его младший брат LOGO , это был первый шаг в освоении технологии компьютерного обучения .
PILOT — это императивный язык, похожий по структуре на BASIC и FORTRAN по своей базовой компоновке и структуре. Его ключевые слова представляют собой отдельные символы, T
для «типа» для печати текста или A
для «принятия» — для ввода значений от пользователя.
Его история [ править ]
PILOT был разработан Джоном Амсденом Старкуэзером , профессором психологии в медицинском центре Калифорнийского университета в Сан-Франциско . В 1962 году он разработал простой язык для автоматизации обучающих тестов под названием Computest. Начиная с 1968 года, он разработал следующий проект под названием PILOT для различных компьютеров того времени, таких как SDS 940 . [2]
Синтаксис языка [ править ]
Строка кода 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
- С
- Вычислите и присвойте числовое значение. Большинство реализаций PILOT поддерживают только целочисленную арифметику и не используют массивы . Пример:
R:Assign arithmetic mean of #X and #Y to #AM C:#AM=(#X+#Y)/2
- Д
- Измерьте массив в некоторых реализациях.
- И
- Завершить подпрограмму (возврат из нее) или (если вне подпрограммы) прервать программу. Всегда используется без операнда.
- Дж
- Перейти к метке. Пример:
J:*RESTART
- М
- Сопоставьте буфер приема со строковыми переменными или строковыми литералами . Пример:
R:Search accept buffer for "TRUTH", the value of MEXICO and "YOUTH", in that order M:TRUTH,$MEXICO,YOUTH
Первая строка соответствия (если есть), которая является подстрокой приемного буфера, присваивается специальной переменной $MATCH. буфера Символы слева от первого совпадения назначаются $LEFT, а символы справа — $RIGHT.
Флаг совпадения устанавливается на «да» или «нет», в зависимости от того, установлено ли совпадение. Любая инструкция, после буквы команды которой стоит буква Y, обрабатывается только в том случае, если установлен флаг соответствия. Операторы с 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.
- В
- Используйте (вызовите) подпрограмму. Подпрограмма начинается с метки и заканчивается буквой E: Пример:
R:Call subroutine starting at label *INITIALIZE U:*INITIALIZE
- И
- Эквивалент TY: (введите, если последнее совпадение было успешным)
- Круглые скобки
- Если в инструкции есть выражение в скобках, это условное выражение, и инструкция обрабатывается только в том случае, если проверка имеет значение «истина». Пример:
R:Type message if x>y+z T(#X>#Y+#Z):Condition met
Производные [ править ]
Расширения ядра PILOT включают массивы и числа с плавающей запятой в Apple PILOT для Apple II , а также LOGO в стиле черепаховую графику в Atari PILOT для 8-битных компьютеров Atari . [3]
В период с 1979 по 1983 год группой пользователей UK PILOT руководил Алек Вуд, учитель гимназии для мальчиков Уиррал в Мерсисайде, Великобритания. Для микрокомпьютеров того времени было создано несколько версий машинного кода мини-ПИЛОТ, а школа в Шотландии разработала интерактивный учебник по иностранному языку, в котором ученики вели следы по городу, задавая вопросы и отвечая на них на немецком, французском и т. д. Статья в декабрьском журнале В 1979 году в журнале Computer Age была описана ранняя реализация под названием Tiny Pilot и приведен полный список машинного кода.
Версии PILOT, наложенные на интерпретаторы BASIC первых микрокомпьютеров, были известны в конце 1970-х и начале 1980-х годов, и журнал Byte Magazine в какой-то момент опубликовал не- тьюринговскую полную производную от PILOT, известную как Waduzitdo Ларри Хериарти, как способ продемонстрировать, что такое PILOT. компьютер был способен. [4] [5] PETPILOT (PILOT для Commodore PET) был первым языком для PET, не принадлежащим Commodore, и был написан на Microsoft BASIC, который поставлялся вместе с PET, при небольшой помощи Билла Гейтса. Он был создан в 1979 году Дэйвом Гомбергом и мог работать на 4K PET (который никогда не поставлялся) и хорошо работал на 8K PET, поставляемых Commodore. Оно было написано в гостиной Ларри Тесслера на ПЭТ-серийном номере 2.
В Vanilla PILOT 1983 года для Commodore 64 добавлена графика черепахи. [6] как и Super Turtle PILOT , который был опубликован в виде типового списка в октябрьском номере журнала COMPUTE за 1987 год! журнал. [7]
В 1991 году Институт инженеров по электротехнике и электронике (IEEE) опубликовал стандарт для пилотов как IEEE Std 1154-1991. С тех пор оно было отозвано. [8] Эталонная реализация, основанная на этом, была реализована Эриком Рэймондом и поддерживалась (хотя и неохотно) в течение следующих 15 лет. [9]
В 1990 году eSTeem PILOT для компьютеров Atari ST был разработан и запрограммирован Томом Нильсеном, EdD. Основанный на стандартах IEEE для PILOT, он включает в себя специфичные для Atari функции, такие как управление устройствами Laserdisc и CDROM. [10]
Реализация psPILOT для любителей, созданная в 2018 году и частично основанная на стандарте IEEE, была реализована с использованием языка сценариев Microsoft PowerShell. [11]
Ссылки [ править ]
- ^ Роб Линвуд. «Ресурсный центр ПИЛОТ» . Проект Сорсфордж . Проверено 13 октября 2011 г.
- ^ Сючжи Чжоу (1998). «Реестр документов Джона А. Старквезера, 1965–1985 гг. » Библиотека Калифорнийского университета в Сан-Франциско . Получено 13 , октября
- ^ Джим Конлан, Трейси Делиман (1983). Atari PILOT для новичков . Рестон Паблишинг. ISBN 9780835903028 .
- ^ Брайан Коннорс (6 апреля 2001 г.). «Вадузитдо 2001» . Проверено 13 октября 2011 г.
- ^ Ларри Хериарти (сентябрь 1978 г.). «ВАДУЗИТДО: Как написать язык, используя 256 слов или меньше». Байт .
- ^ «Ванильный ПИЛОТ, ПИЛОТ с черепашьей графикой» . Инфомир . 12 сентября 1983 г., стр. 67–69 . Проверено 13 октября 2011 г.
- ^ Atarimagazines.com — ВЫЧИСЛЯЙТЕ! Выпуск 89, октябрь 1987 г., стр.74.
- ^ Стандарт IEEE 1154-1991 для программируемого исследования, обучения или преподавания (ПИЛОТ) . Комитет по стандартам IEEE. 1991. doi : 10.1109/IEESTD.1991.108548 . ISBN 0-7381-1184-8 .
- ^ «Двадцать лет спустя» .
- ^ «Пресс-релиз: eSTeem PILOT» .
- ^ «псПилот» .
Дальнейшее чтение [ править ]
- Джон Старквезер (1985). Руководство пользователя по Pilot . Прентис-Холл. ISBN 978-0-13-937755-6 .