Cтраница 3
Далее мы рассмотрим чтение и выдачу результатов, осуществляемые между Лисп-системой и пользователем. Эти функции, как будет видно в конце главы, подходят и для управления файлами. [31]
С помощью макросов можно определить формы и языки более высокого уровня, которые Лисп-система транслирует в Лисп и тем самым их реализует. [32]
Развитее Лисп-культуры и Лисп-систем В конце книги приводится обзор развития языка Лисп и Лисп-систем в университетах, в исследовательских центрах и в промышленности США, а также дается представление о распространении Лисп-культуры по всему миру вплоть до Финляндии. Отдельно будут отмечены важнейшие переломные моменты в истории Лиспа. Книга заканчивается изложением истории н направлений развития Лисп-машин и Пролог-машин пятого поколения. [33]
Проект NIL распался, поскольку часть участников считала свои идеи о том, как должна выглядеть хорошая Лисп-система, лучше чужих. [34]
Символы могут состоять как из прописных, так и из строчных букв, хотя в большинстве Лисп-систем, как и в описываемом в данной книге диалекте Коммон Лисп, прописные и строчные буквы отождествляются и представляются прописными буквами. [35]
При загрузке функций, переменных и других объектов в систему, объекты становятся как бы частью Лисп-системы в этом сеансе и образуют персональное расширение системы пользователя, которое может содержать даже новое определение самой системы. [36]
Уже в системе SP 1 впервые представ - аб ленной в 1960 г. С тех пор диалоговая и интерпретирующая среда программирова-ни Я; а также пошаговое программирование, тестирование и отладка ( incremental programming) признаны не только в Лисп-системах, но и во многих других интегрированных средах. [37]
Запись в виде списка гибка, свободна по форме и одновременно достаточно точка и понятна, Как видно из примера, такая запись с раскрывающим структуру расположением текста помогает получить общее представление о структуре и вникнуть в нее. В Лисп-системах существует специальная структурная печать ( pretty-printer), которая выводит списки в красивом удобочитаемом виде. [38]
Логические ошибки такого рода вообще трудно найти, а плохая читаемость определений функций в Лиспе удваивает трудность этой задачи. В большинстве Лисп-систем имеется счетчик скобок, при использовании которого в листинге программы ниже скобок выводятся целые числа, указывающие на парность скобок. [39]
Ранее мы использовали функции, возвращающие одно значение, или один лисповский объект. Во многих Лисп-системах, в том числе и в Коммон Лиспе, можно определить я многозначные функции ( multiple valued functions), которые возвращают множество значений. Этот механизм более удобен, чем возврат значений через глобальную переменную или через построение списка результатов. Для выдачи и принятия многокомпонентных значений используются специальные формы. [40]
Интерпретатор Коммон Лиспа не допускает использование в качестве первого элемента вызова функции вычисляемого выражения. В некоторых других Лисп-системах имя функции допустимо задавать с помощью вычисляемого выражения. [41]
В Коммой Лиспе много внимания уделено практическим требованиям, и, ве роятно, поэтому не все его черты эстетичны и чисты. Несомненно, что и другие Лисп-системы будут использоваться в дальнейшем, и их также необходимо развивать. [42]
Одновременно проводились соревнования между Лисп-системами ( Lisp Contest ( Takeuchi 1978)), позднее ставшие своего рода традицией. Под влиянием этого интерес к Лиспу продолжал быстро расти. [43]
Из других ранних реализаций необходимо упомянуть Лисп-систему, реализованную на компьютере ICL 1905 в Университете Куинз и Интерлисп, реализованный на ICL 4 в Эдинбургском университете. [44]
Программирование и тестирование программы осуществляется функция за функцией, которые последовательно определяются и подвергаются тестированию. Написание, тестирование и исправление программы осуществляется внутри Лисп-системы без промежуточного использования операционной системы. Специальные операционные системы более не используются, точнее они скрыты от пользователя. Все услуги имеются в интегрированной системе программирования. [45]