Автор работы: Пользователь скрыл имя, 26 Ноября 2011 в 02:00, курсовая работа
LISP (от англ. LISt Processing — «обработка списков») — семейство языков программирования, основанных на представлении программы системой линейных списков символов, которые притом являются основной структурой данных языка. Лисп считается вторым после Фортрана старейшим высокоуровневым языком программирования.
Введение ……..3
1. Язык программирования ЛИСП …….6
1.1 Основные функции языка Лисп …….6
1.2 Арифметические функции …….8
1.3 Логические функции …….9
1.4 Специальные функции ...….11
2. Особенности диалектов языка ЛИСП …...13
2.1. MacLISP …...13
2.2. MuLISP …… 14
2.3. InterLISP ……15
2.4 CommonLISP ……17
3. Особенности языка ЛИСП …...21
Заключение …... 25
Глоссарий …....28
Список использованных источников…… ……29
Приложения…..………………………………………………………………..….30
Программирование и тестирование программы осуществляется функция за функцией, которые последовательно определяются и тестируются. Написание, тестирование и исправление программы осуществляются внутри Лисп-системы без промежуточного использования ОС.
Вспомогательные средства, такие например как, редактор, трассировщик, транслятор и другие образуют общую интегрированную среду, язык которой нельзя отличить от системных средств. Отдельные средства по своему принципу являются прозрачными, чтобы их могли использовать другие средства. Работа может производиться часто на различных уровнях или в различных рабочих окнах. Такой способ работы особенно хорошо подходит для исследовательского программирования и быстрого построения прототипов.
Лисп является одновременно как языком прикладного так и системного программирования. Он напоминает машинный язык тем, что как данные, так и программы представлены в одинаковой форме. Язык превосходно подходит для написания интерпретаторов и трансляторов как для него самого, так и для других языков. Наиболее короткий интерпретатор Пролога, написанный на Лиспе занимает несколько десятков строк.
Традиционно
Лисп-системы в основной своей части
написаны на Лиспе. Лисп можно в хорошем
смысле считать языком машинного и системного
программирования высокого уровня. И это
особенно хорошо для Лисп-машин, которые
вплоть до уровня аппаратуры спроектированы
для Лиспа и системное программное обеспечение
которых написано на Лиспе.10
В курсовой работе были рассмотрены основные функции и особенности языка программирования LISP и отличительные особенности его диалектов.
Современные диалекты языка LISP можно рассматривать как мощные интерактивные системы программирования. Это объясняется двумя причинами. Во-первых, сам язык LISP претерпевает серьезные изменения – развиваются средства языка, предназначенные для обработки нетрадиционных для LISP типов данных: массивов, векторов, матриц; появляются некоторые средства управления памятью (пакеты), отсутствующие в LISP. Серьезные изменения претерпевают и управляющие структуры. Появились несвойственные природе языка LISP функции, заимствованные из Фортрана, Алгола, Паскаля, Си: Do, Loop, Goto , Case и прочие, позволяющие пользователю, незнакомому с принципами функциональных языков, легко переходить на LISP. Качество программ снижается, зато возрастает популярность языка. Во-вторых, если на первом этапе развития LISP -системам была присуща небольшая скорость обработки данных и серьезные ограничения на емкость используемой оперативной памяти, то современные Лисп-системы уже могут соперничать по этим параметрам с такими языками, как Си, Паскаль и др. Использование LISP – машин вообще практически снимает ограничения памяти и быстродействия.
Для ПЭВМ ограничения по памяти и быстродействию все еще остаются существенными. Однако положение не безнадежно. Развитие LISP – систем для ПЭВМ идет сегодня по трем различным направлениям. Первое связано с увеличением емкости памяти, которая может использоваться LISP – системой. С этой целью ряд компаний разработал версии языка Golden Common Lisp, использующие расширения оперативной памяти и виртуальную память. Второе направление связанно с повышением быстродействия LISP – систем. Третье направление состоит в разработке эффективных компиляторов программ с языка LISP в традиционные языки (чаще всего в язык Си).
Положительным нововведением в современные диалекты языка можно считать псевдоассемблерные команды, которые позволяют оперировать основными регистрами машины и организовывать прерывания на уровне DOS и BIOS. Кроме того, многие LISP – системы имеют хорошие интерфейсы с другими языками (Фортран, Паскаль, Ассемблер, Си), что позволяет повысить эффективность прикладных LISP – программ.
Если же говорить о глобальной
тенденции развития самой
Анализ существующих языков обработки символьной информации, использование их для реализации интеллектуальных систем, а также сравнение тенденций развития этих языков позволяют сделать несколько замечаний.
Можно предположить, что LISP еще значительное время будет оставаться основным языком для реализации интеллектуальных систем. Уже в ближайшее время можно ожидать появления языков, вобравших в себя лучшие черты LISP и др. языков программирования ИИ.
Наблюдается
явная тенденция к созданию параллельных
версий языков для программирования задач
ИИ. Языки типа Лисп, Пролог, Рефал (а также
всевозможные модификации и «смеси» этих
и/или других языков символьной обработки)
будут все больше уступать свои позиции
на уровне инженеров по знаниям специальным
языкам представления знаний, оставаясь
инструментарием системных программистов.
№ п/п | Понятие | Определение |
1 | Атомы | простейшие неделимые элементы, из которых состоят программы на языке Лисп |
2 | Искусственный интеллект | раздел информатики, ставящий своей целью разработку методов решения задач, для которых отсутствуют формальные алгоритмы: понимание естественного языка, обучение, доказательство теорем, распознавание образов |
3 | Компилятор | программа
ЭВМ, предназначенная для |
4 | Логическое программирование | один из подходов к программированию, при котором в качестве языка высокого уровня используется логика предикатов первого порядка |
5 | Параллельная рекурсия | рекурсия,
которая встречается |
6 | Простая рекурсия | рекурсия, при которой вызов функции встречается в некоторой ветви лишь один раз |
7 | Предикат | функция, которая определяет, обладает ли аргумент определенным свойством |
8 | Список | упорядоченная последовательность, элементами которой являются либо атомы, либо списки |
9 | Символ | имя, состоящее из букв, цифр или специальных знаков, которое обозначает какой либо предмет или действие, а так же число, функцию (программу) и другие объекты |
10 | Строка | любая последовательность символов, которые могут быть напечатаны (кроме двойных кавычек), заключенная в двойные кавычки |
11 | Рекурсия | способ
организации вычислительного |
1 | Байдун В.В «Программирование на языке ЛИСП в системе muLISP-90» [Текст]/. Байдун В.В., Кружилов С.И., Сергиевский А.Е, Чернов П.Л. - М.: Моск. энеpг. ин-т, 2005. – 40 С. |
2 | Хендерсон П«Функциональное программирование» [Текст]/ Хендерсон П.: Пер. с англ.-М.: Мир, 2003. – 637 С. |
3 | Хювёнен Э «Мир Лиспа». [Текст]/ Хювёнен Э., Сеппянен Й. В 2-х т. / Пер. с финск.. — М.: Мир, 2000. —534с. |
4 | Русскоязычное сообщество лисперов [Электронный ресурс]. Режим доступа: http://lisp.ru/ |
5 | Начальные сведения о языках Лисп-семейства на русском [Электронный ресурс]. Режим доступа: lisp.narod.ru |
6 | Русский перевод книги Practical Common Lisp(англ.) [Электронный ресурс]. Режим доступа: pcl.catap.ru/doku.php |
7 | Тужилов И. В «Язык программирования XLISP». [Текст]/ Тужилов И. В. Учеб. пособие. - Пенза: Изд-во Пенз. гос. техн. ун-та, 2004. – 126 С.[Текст] |
8 | Личный
сайт Дж. Маккарти с текстами его
публикаций [Электронный ресурс]. Режим
доступа: http://www-formal.stanford. |
9 | Городняя Л.В «Введение в программирование на языке Лисп» [Текст]/ Городняя Л.В.: Учебное пособие для начинающих. - Новосибирск: НГУ, 2005. - 93 с. |
10 | Энциклопедия
языков программирования. [Электронный
ресурс]. Режим доступа: http://progopedia.ru/language/ |
А | |
Б |