Cтраница 2
Типы данных языка Коммон Лисп образуют иерархию понятий ( conceptual hierarchy): расположенные ниже классы типов автоматически входят и в расположенный выше более абстрактный класс данного типа. [16]
На настоящем этапе Коммон Лисп содержит важнейшие черты современных Лисп-систем: разнообразные типы данных, возможности определения типов, императивные управляющие структуры, макросы, с помощью которых легко определяются новые синтаксические формы, функционалы, замыкания, пространства имен, последовательности, ориентированные на использование потоков ввод и вывод, а также синтаксический интерпретатор и транслятор. [17]
По сравнению с Коммон Лиспом Зеталксп в качестве расширения содержит объектную систему Flavor, позволяющуюосуществлятьобъектноепрограммирова-ние. В систему входит набор готовых базовых флейво-ров ( flavor), которые программист может использовать по своему усмотрению. Например, оконная система основывается на объектах, с помощью которых программист может, особенно гибко комбинируя базовые возможности, создавать окна нового типа. [18]
Кроме того, в Коммон Лиспе существует множество функций для проверки типа и параметров массивов, для их преобразования, например для увеличения общего размера. [19]
Далземы изложим определенные в Коммон Лиспе для среды граничные условия и основные компоненты. После этого в качестве примера мы рассмотрим лиспозские среды программирования систем Интерлисп и Зеталисп. Интерлисп представляет собой классический пример интегрированной среды, которая первоначально разрабатывалась для системы разделения времени вычислительных машин DEC-IQ / 20 и которая после этого в документированном виде используется на Лисп-машинах фирмы Xerox. [20]
Однако изложение не ограничивается рамками Коммон Лиспа. По мере надобности приводятся сведения о важнейших свойствах и особенностях других систем и расширениях стандарта. Например, объекты и объектно-ориентированное программирование, которое сейчас ( 1985) еще не входят в состав Коммон Лиспа, представлены здесь в том виде, как они реализованы в системе Flavor среды Зеталисп. [21]
Действие макроса чтения определяется в Коммон Лиспе при помощи обыкновенной функции. Она читает и возвращает в качестве значения форму, для построения которой она в свою очередь может предварительно использовать макросы. Определим для примера макрос чтения %, действующий так же, как апостроф. [22]
Замечание: Предикат MEMBER в Коммон Лиспе определен в более общем виде, чем мы его представили. [23]
Последним аргументом функции APPEND в Коммон Лиспе не обязательно должен быть список. [24]
Однако изложение не ограничивается рамками Коммон Лиспа. По мере надобности приводятся сведения и о важнейших свойствах и особенностях других систем и расширениях стандарта. [25]
Второе расширение по сравнению с Коммон Лиспом составляет макрос итерации LOOP ( Loop Macro), обладающий большими возможностями. С его помощью можно изобразить сложные по структуре циклы на языке, напоминающем естественный. Структурами LOOP можно гибко комбинировать известные из языков с фразовой структурой циклические предложения и другие полезные в различных ситуациях формы циклов, такие как FOR, DO, WHILE, REPEAT, UNTIL, WHEN, WITH, APPEND, COLLECT, COUNT, SUM, INITIALLY и FINALLY. Эти итерации, как это видно и из названия, реализованы в виде макросов. [26]
Наиболее общим предикатом, проверяющим в Коммон Лиспе наличие логического равенства, является EQUALP, с помощью которого можно сравни-вать произвольные лисповские объекты, будь то числа различных типов, выражения или другие объекты. Этот предикат может потребо-ваться, когда нет уверенности в типе сравниваемых объектов или в корректности использования других предикатов сравнения. [27]
Основой изложения нами был выбран диалект Коммон Лисп, ставший де-факто промышленным стандартом языка Лисп. [28]
Приложение содержит сводку определенных в языке Коммон Лисп ( Steele G. [29]
Основой изложения нами был выбран диалект Коммон Лисп, ставший де-факто промышленным стандартом языка Лисп. В книге представлены все важнейшие языковые формы и свойства конструкций Коммон Лиспа, а также типы функций и данных. Материал изложен не в виде справочного руководства, а в логически последовательной и поэтому пригодной для обучения форме. Даются пояснения для рассматриваемых в книге понятий и методов, которые в справочных руководствах обычно не освещаются. В то же время сведено к минимуму количество трудночитаемой системной технической информации. Чтобы можно было использовать книгу и как справочное руководство, в конце ее приведено краткое описание всего Коммон Лиспа. [30]