Jump to content

Язык обработки информации

(Перенаправлено с IPL-V )
Язык обработки информации (IPL)
Парадигма Сборка
Разработано Аллен Ньюэлл , Клифф Шоу , Герберт А. Саймон
Разработчик Аллен Ньюэлл, Клифф Шоу, Герберт А. Саймон
Впервые появился 1956
Стабильная версия
IPL-V
ТЫ Кроссплатформенность : JOHNNIAC , IBM 650 , IBM 704 , IBM 7090.
Под влиянием
Лисп

Язык обработки информации ( IPL ) — язык программирования, созданный Алленом Ньюэллом , Клиффом Шоу и Гербертом А. Саймоном в корпорации RAND и Технологическом институте Карнеги примерно в 1956 году. Ньюэлл работал прикладным программистом спецификаторов языка, Шоу был системой. программист, а Саймон работал программистом-пользователем приложений.

Код включает функции, предназначенные для помощи программам, выполняющим простые действия по решению проблем, такие как списки, динамическое распределение памяти , типы данных , рекурсия , функции в качестве аргументов, генераторы и совместная многозадачность . IPL изобрела концепцию обработки списков, хотя и в стиле ассемблера .

Основы IPL

[ редактировать ]

Компьютер IPL имеет:

  1. Набор символов . Все символы являются адресами и именами ячеек. В отличие от символов в более поздних языках, символы состоят из символа, за которым следует число, и записываются H1, A29, 9–7, 9–100.
    1. Имена ячеек, начинающиеся с буквы, являются региональными и являются абсолютными адресами.
    2. Имена ячеек, начинающиеся с «9-», являются локальными и имеют смысл в контексте одного списка. 9–1 одного списка не зависит от 9–1 другого списка.
    3. Другие символы (например, чистые числа) являются внутренними .
  2. Набор ячеек . Списки составляются из нескольких ячеек, включая взаимные ссылки. Ячейки имеют несколько полей:
    1. P — 3-битное поле, используемое для кода операции, когда ячейка используется в качестве инструкции, и не используется, когда ячейка представляет собой данные.
    2. Q — трехзначное поле, используемое для косвенной ссылки, когда ячейка используется как инструкция, и не используется, когда ячейка представляет собой данные.
    3. SYMB — символ, используемый в качестве значения в ячейке.
  3. Набор примитивных процессов называются примитивными функциями . , которые в современных языках

Структура данных IPL — это список, но списки представляют собой более сложную структуру, чем во многих языках. Как и следовало ожидать, список состоит из односвязной последовательности символов, а также некоторых списков описаний , которые представляют собой вспомогательные односвязные списки, интерпретируемые как чередующиеся имена и значения атрибутов. IPL предоставляет примитивы для доступа и изменения значения атрибута по имени. Спискам описаний присваиваются локальные имена (формы 9–1). Таким образом, список с именем L1, содержащий символы S4 и S5 и описываемый сопоставлением значения V1 с атрибутом A1 и V2 с атрибутом A2, будет храниться следующим образом. 0 указывает на конец списка; имена ячеек 100, 101 и т. д. автоматически генерируются внутренними символами, значения которых не имеют значения. Эти ячейки могут быть разбросаны по всей памяти; только L1, который использует региональное имя, которое должно быть известно во всем мире, должен находиться в определенном месте.

Пример структуры списка IPL-V
Имя СИМВОЛ СВЯЗЬ
Л1 9-1 100
100 С4 101
101 С5 0
9-1 0 200
200 А1 201
201 V1 202
202 А2 203
203 V2 0

IPL — это язык ассемблера для управления списками. Он имеет несколько ячеек, которые используются как регистры специального назначения. H1, например, является счетчиком программ. Поле SYMB в H1 представляет собой имя текущей инструкции. Однако H1 интерпретируется как список; Говоря современным языком, LINK H1 — это указатель на начало стека вызовов. Например, вызовы подпрограмм помещают в этот стек SYMB H1.

H2 — свободный список. Процедуры, которым необходимо выделить ячейки захвата памяти из H2; процедуры, завершающие работу с памятью, кладут ее на H2. При входе в функцию список параметров задается в H0; при выходе результаты должны быть возвращены в H0. Многие процедуры возвращают логический результат, указывающий успех или неудачу, который помещается в H5. Десять ячеек, W0-W9, зарезервированы для общедоступного рабочего хранилища. Процедуры «морально обязаны» (цитируя статью CACM) сохранять и восстанавливать значения этих ячеек.

Существует восемь инструкций, основанных на значениях P: вызов подпрограммы, нажатие/выталкивание S в H0; нажмите/вставьте символ в S в список, прикрепленный к S; скопировать значение в S; условная ветвь. В этих инструкциях целью является S. S — это либо значение поля SYMB, если Q=0, либо символ в ячейке с именем SYMB, если Q=1, либо символ в ячейке, названный символом в ячейке с именем SYMB, если Q=2. Во всех случаях, кроме условного перехода, поле LINK ячейки указывает, какую инструкцию выполнять следующей.

IPL имеет библиотеку, содержащую около 150 основных операций. К ним относятся такие операции, как:

  • Символы проверки на равенство
  • Найти, установить или удалить атрибут списка
  • Найдите следующий символ в списке; вставить символ в список; стереть или скопировать весь список
  • Арифметические операции (над именами символов)
  • Манипулирование символами; например, проверьте, обозначает ли символ целое число, или сделайте символ локальным
  • Операции ввода-вывода
  • «Генераторы», соответствующие итераторам и фильтрам в функциональном программировании. Например, генератор может принять список чисел и создать список их квадратов. Генераторы могли принимать в качестве аргументов правильно спроектированные функции (точнее, адреса кода правильно спроектированных функций).

Впервые IPL был использован для демонстрации того, что теоремы из Principia Mathematica , которые были кропотливо доказаны вручную Бертраном Расселом и Альфредом Нортом Уайтхедом , на самом деле могут быть доказаны с помощью вычислений . Согласно автобиографии Саймона «Модели моей жизни» , это приложение первоначально было разработано сначала путем ручного моделирования с использованием его детей в качестве вычислительных элементов, а записи и удерживание карточек для заметок — в качестве регистров, содержащих переменные состояния программы.

IPL использовалась для реализации нескольких ранних программ искусственного интеллекта , также написанных теми же авторами: Logic Theorist (1956), General Task Solver (1957) и их компьютерной шахматной программы NSS (1958).

Было создано несколько версий IPL: IPL-I (никогда не реализовывалась), IPL-II (1957 г. для JOHNNIAC ), IPL-III (существовало недолго), IPL-IV, IPL-V (1958 г., для IBM 650 , IBM 704 , IBM 7090 , модель Philco 212 и многие другие). IPL-VI был предложением по аппаратному обеспечению IPL. [ 1 ] [ 2 ] [ 3 ]

Для CDC 3600 в Аргоннских национальных библиотеках был разработан сопроцессор «IPL-VC», который мог выполнять команды IPL-V. [ 4 ] [ 5 ] На нем была реализована еще одна программа для игры в шашки. [ 6 ] Эта аппаратная реализация не улучшила время работы в достаточной степени, чтобы «выгодно конкурировать с языком, более непосредственно ориентированным на структуру современных машин». [ 7 ]

IPL вскоре был вытеснен Lisp , который имел гораздо более мощные функции, более простой синтаксис и преимущества автоматической сборки мусора .

Наследие компьютерного программирования

[ редактировать ]

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

  • Манипулирование списками — но только списками атомов, а не общими списками.
  • Списки свойств — но только если они прикреплены к другим спискам.
  • Функции высшего порядка - хотя программирование на ассемблере всегда позволяло выполнять вычисления с адресами функций, IPL была ранней попыткой принципиально обобщить это свойство языка ассемблера.
  • Вычисления с помощью символов — хотя в IPL символы имеют ограниченную форму (за буквой следует цифра).
  • Виртуальная машина

Многие из этих функций были обобщены, рационализированы и включены в Lisp. [ 8 ] а оттуда во многие другие языки программирования в течение следующих нескольких десятилетий.

  1. ^ Эта статья основана на материалах, взятых из раздела «Информация+Обработка+Язык» в Бесплатном онлайн-словаре вычислительной техники до 1 ноября 2008 г. и включенных в соответствии с условиями «повторного лицензирования» GFDL версии 1.3 или более поздней.
  2. ^ Шоу и др. 1958 год .
  3. ^ Бархат 1969 , стр. 389.
  4. ^ Ходжес 1964 .
  5. ^ Бархат 1969 , стр. 393–394.
  6. ^ Коуэлл и Рид 1965 .
  7. ^ Карсон и Робинсон 1966 , с. 5.
  8. ^ Джон Маккарти (1979) История Лиспа «Предыстория LISP - с лета 1956 по лето 1958 года».

Источники

[ редактировать ]
  • Карсон, Дэниел Ф.; Робинсон, Джордж А. (май 1966 г.). Gyro II, макроопределенная система для обработки списков (отчет). Отдел прикладной математики Аргоннских национальных лабораторий. АНЛ-7149.
  • Коуэлл, WR; Рид, MC (октябрь 1965 г.). Программа игры в шашки для компьютера IPL-VC (Отчет). Отдел прикладной математики Аргоннских национальных лабораторий. АНЛ-7109.
  • Ходжес, Дональд (май 1964 г.). IPL-VC: Компьютерная система, имеющая набор инструкций IPL-V (отчет). Отдел прикладной математики Аргоннских национальных лабораторий. АНЛ-6888.
  • Саммет, Жан Э. (1969). Языки программирования: история и основы . Энглвуд Клиффс, Нью-Джерси: Прентис Холл. стр. 388–400.
  • Шоу, Джей Си; Ньюэлл, А.; Саймон, штат Ха; Эллис, Т.О. (1958). «Командная структура для сложной обработки информации». Материалы Западной объединенной компьютерной конференции 6–8 мая 1958 г.: Контрасты в компьютерах . IRE-ACM-AIEE '58 (вестерн). Ассоциация вычислительной техники. стр. 119–128. дои : 10.1145/1457769.1457803 . ISBN  9781450378642 .

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

[ редактировать ]
  • Ньюэлл, Аллен; Шоу, Дж. К. (1957). «Программирование логической теоретической машины». Доклады, представленные 26–28 февраля 1957 г. на Западной объединенной компьютерной конференции: методы обеспечения надежности . IRE-AIEE-ACM '57 (вестерн). Ассоциация вычислительной техники. стр. 230–240. дои : 10.1145/1455567.1455606 . ISBN  9781450378611 .
  • Ньюэлл, Аллен; Тонге, Фред М.; и др. (1964). Руководство по языку обработки информации-V . Энглвуд Клиффс, Нью-Джерси: Прентис Холл.
  • Сэмюэл, Артур Л. (1960). «Программирование компьютеров для игр». В Alt, Франц Л. (ред.). Достижения в области компьютеров, том 1 . Достижения в области компьютеров. Том. 1. Эльзевир. стр. 165–192. дои : 10.1016/S0065-2458(08)60608-7 . ISBN  9780120121014 . ISSN   0065-2458 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 07b64632a5e55edd3a58b8adc8141af4__1722192300
URL1:https://arc.ask3.ru/arc/aa/07/f4/07b64632a5e55edd3a58b8adc8141af4.html
Заголовок, (Title) документа по адресу, URL1:
Information Processing Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)