СЛИП (язык программирования)
SLIP для обработки списков — это язык компьютерного программирования , изобретенный Джозефом Вайценбаумом в 1960-х годах. Название SLIP означает симметричный LIst процессор . Впервые он был реализован как расширение языка программирования Фортран , а позже встроен в MAD и ALGOL . [ 1 ] Самая известная программа, написанная на этом языке, — это ELIZA , ранняя для обработки естественного языка, компьютерная программа созданная Вайценбаумом. [ 2 ] в Лаборатории искусственного интеллекта Массачусетского технологического института . [ 3 ]
Общий обзор
[ редактировать ]Короче говоря, SLIP состоял из набора функций доступа FORTRAN, которые работали с циклическими двусвязными списками с полями данных фиксированного размера. Функции «аксессора» имели варианты прямой и косвенной адресации.
Представление списка
[ редактировать ]Представление списка имело четыре типа ячеек: считыватель , заголовок , индикатор подсписка и ячейка полезной нагрузки . Заголовок включал поле счетчика ссылок для целей сбора мусора . Индикатор подсписка позволил ему представлять вложенные списки, такие как (A, B, C, (1, 2, 3), D, E, F), где (1, 2, 3) — это подсписок, обозначенный ячейка в позиции '*' в списке (A, B, C, *, D, E, F). Считыватель по сути представлял собой стек истории состояний — хороший пример шаблона сувениров — где каждая ячейка указывала на заголовок читаемого списка, текущую позицию в читаемом списке, а также уровень или глубину стека истории.
Ссылки
[ редактировать ]- ^ Языки компьютерного программирования - S
- ^ «Алан Тьюринг в 100 лет» . Гарвардская газета . 13 сентября 2012 года . Проверено 22 февраля 2016 г.
- ^ Вайценбаум, Джозеф (1976). Мощь компьютера и человеческий разум: от суждения к расчету . Нью-Йорк: WH Freeman and Company. стр. 2, 3, 6, 182, 189 . ISBN 0-7167-0464-1 .
- Процессор симметричных списков , Джозеф Вайзенбаум, CACM 6:524-544 (1963). Саммет 1969, с. 387.
- Мощь компьютера и человеческий разум: от суждения к расчету , Джозеф Вайценбаум, Сан-Франциско: WH Freeman, 1976. ISBN 0-7167-0463-3