Читатель Лиспа
В языке программирования Lisp программа чтения или read
Функция — это синтаксический анализатор , который преобразует текстовую форму объектов Lisp в соответствующую внутреннюю структуру объекта.
В исходном Лиспе S-выражения состояли только из символов , целых чисел и конструкторов списков. ( xi... )
и (x . y)
. Позже в Lisp, кульминацией которого стал Common Lisp , были добавлены литералы для чисел с плавающей запятой, комплексных и рациональных чисел, строк и конструкторов для векторов.
Программа чтения отвечает за анализ структуры списка, интернирование символов, преобразование чисел во внутреннюю форму и вызов макросов чтения.
Читать таблицу
[ редактировать ]Читатель управляется readtable
, который определяет значение каждого символа .
Чтение макросов
[ редактировать ]В отличие от большинства языков программирования, Lisp поддерживает выполнение программ во время анализа, называемое «макросами чтения» или «макросами чтения». Они используются для расширения синтаксиса либо универсальными, либо специфичными для программы способами. Например, цитируемая форма (quote x)
оператор можно сократить как 'x
. '
оператор можно определить как макрос чтения, который читает следующий список и обертывает его quote
. Аналогично, оператор обратной кавычки (`) может быть определен как макрос чтения.
Ссылки
[ редактировать ]Библиография
[ редактировать ]- Джон Маккарти и др. , Руководство программиста LISP 1.5 , MIT Press, 1962.
- Дэвид А. Мун , Справочное руководство MACLISP , 1974.
- Гай Стил , Common LISP: Язык , второе издание, 1990.