Код | 299631 | ||
Дата создания | 2016 | ||
Страниц | 30 ( 14 шрифт, полуторный интервал ) | ||
Источников | 10 | ||
Файлы
|
|||
Без ожидания: файлы доступны для скачивания сразу после оплаты.
Ручная проверка: файлы открываются и полностью соответствуют описанию. Документ оформлен в соответствии с требованиями ГОСТ.
|
LISP (в переводе с английского языка - «обработка списков») — это семейство языков программирования, основанное на представлении программы в виде системы линейных списков символов, которые при этом являются базовой структурой данных языка. Является вторым разработанным после Фортрана высокоуровневым языком программирования.
Язык ЛИСП был создан в Стэнфорде под началом Дж. Маккарти в начале 60-х годов ХХ в. По изначальному замыслу предполагалось, что он будет включать в себя наряду со всеми средствами Фортрана возможности для работы с матрицами, указателями и структурами из указателей. К сожалению, для подобного проекта не хватило материальных средств.
В основу языка ЛИСП положены следующие принципы:
Язык ЛИСП низкого уровня, поэтому его можно представить, как ассемблер, который ориентирован на работу со списковыми структурами. По этой причине за всё время существования языка предпринималось много попыток его усовершенствовать путем введения дополнительных базисных примитивов и управляющих структур. Тем не менее, эти изменения обычно не становились отдельными языками. В своих новых редакциях ЛИСП быстро приобретал все ценные дополнения своих конкурентов.
Дальнейшее развитие ЛИСПа следует, во-первых, в направлении его стандартизации (Стандарт-ЛИСП, Франц-ЛИСП, Коммон-ЛИСП), а во-вторых – по пути разработки концептуально новых языков для представления и манипулирования знаниями в ЛИСП-среде. В настоящее время ЛИСП реализован на всех классах ЭВМ, начиная с ПК и кончая высокопроизводительными вычислительными системами.
Одной из наиболее гибких форм представления информации в памяти компьютеров считаются списки. Это послужило одной из главных причин для быстрого завоевания ЛИСПом популярности. Ведь это весьма удобный язык, предназначенный специально для работы со списками.
После разработки и выхода в свет языка ЛИСП различными авторами был предложено множество других алгоритмических языков ориентированных на решение задач в области искусственного интеллекта. Тем не менее, это не помешало ЛИСП остаться наиболее популярным языком для решения таких задач. За сорок лет существования ЛИСПа появился ряд его диалектов: Common LISP, Mac LISP, InterLISP, Standard LISP и прочие. Разница между ними не принципиальна, однако их отличает набор встроенных функций и форма записи программ. Следовательно, программист, выучивший один из этих диалектов, без особых усилий сможет работать и с любым другим.
Немалым преимуществом языка ЛИСП является то, что программирование осуществляется с помощью функций – сопоставления элементам некоторого класса соответствующие элементы другого класса. Само сопоставление не оказывает влияния на выполнение программы, нужен только результат – значение функции. Это позволяет довольно легко создавать и отлаживать большие программные комплексы.
Цель курсовой работы – изучение особенностей языка ЛИСП. Для достижения цели курсовой работы в ней будут рассмотрены основные функции данного языка программирования и отличительные особенности некоторых его диалектов.
Для достижения цели курсовой работы были поставлены и решены следующие задачи:
1.1 Основные функции языка ЛИСП
К основным особенностям языка ЛИСП можно отнести то, что программа - это несколько пользовательских функций. С точки зрения синтаксиса, лисповская функция, как и данные, обрабатываемые ей, являются S-выражением. В простейшем случае S-выражение – атом (идентификатор или число), в случае сложнее - список, то есть последовательность элементов, обычно разделенных пробелами и заключен в скобки.
В ЛИСПе списки имеют рекурсивную структуру: элемент списка может быть любым S-выражением - такие, как атом или список, например: (1() (a b (c)) class). Некоторые S-выражения могут быть вычислены, в результате чего получаются значения (также S-выражения). Эти выражения называются формами.
...
1.2 Арифметические функции
(add1 n) – значением аргумента этой функции должно быть число, функция прибавляет к этому числу 1 и выдает результат в качестве своего значения.
(sub1 n) – значением аргумента должно быть число, функция вычитает из него 1 и выдает результат в качестве своего значения.
...
1.3 Логические функции
Предикатом, как правило, называется форма, в которой значение рассматривается как логическое понятие «ложь» или «истина», как false и true в паскале. В ЛИСПе «ложью» является пустой список, который записывается как () или null, а «истина» - это любое другое выражение (часто в этой роли выступает атом T).
...
2.1 MacLISP
Кроме символьной обработки MacLISP повсеместно использовался в традиционных числовых вычислениях, применяемых, например, в обработке речи и изображений. Помимо исследователей искусственного интеллекта и разработчиков алгебраической системы Максима на MacLISP повлияли также работы групп в МИТ по робототехнике, обработке речи и изображений. Исходя из требований, предъявляемых этими областями, в Маклисп были включены новые математические типы данных, такие как матричная и битовая обработка, а также широкий набор арифметических функций и средств. Быть может, важнейшая из них – возможность вычислений с неограниченной точностью, основывающаяся на созданных Кнутом в 1969 году алгоритмах.
...
2.4 CommonLISP
Этот диалект характеризуется широким представительством различных структур данных и включает около 800 встроенных функций. В CommonLISP обеспечены средства для обработки наиболее важных классов численных данных: целых, комплексных и вещественных. Символы в CommonLisp соответствуют основным характеристикам других LISP - систем. Кроме того, обработка непечатных символов в символьных именах.
Одним из основных преимуществ является наличие в CommonLISP средств обработки массивов и структур, их возможности не уступают средствам в традиционных языках программирования (Fortran, Pascal). Массивы у CommonLISP могут иметь некоторое неотрицательное число измерений и индексированную последовательность целых чисел. Возможен произвольный тип компонентов массива. Подкласс векторов - одномерных массивов, среди которых считаются отдельными строки и битовые массивы.
...
3 Особенности языка ЛИСП
От остальных языков программирования ЛИСП отличается следующим набором свойств:
- одинаковая форма данных и программ;
- хранение данных вне зависимости от места;
...
Рассмотрим эти свойства более подробно.
В ЛИСПе формы представления программ и обрабатываемых ей данных представляют собой одно и то же. И одно, и второе является списочной структурой, которая имеет одинаковую форму. Таким образом, приложения могут обрабатывать и конвертировать другие программы и даже самих себя. В процессе перевода может быть введено и преобразовано в результате вычислений выражение данных, которое можно интерпретировать в программу и запустить непосредственно. Это имеет не только теоретическое, но и большое практическое значение.
...
ЗАКЛЮЧЕНИЕ
В данной курсовой работе рассматривались основные назначения и особенности языка программирования ЛИСП и отличительные черты его диалектов.
Современные диалекты языка ЛИСП можно рассматривать как мощные интерактивные системы программирования. Это обусловлено двумя причинами. Первая – подверженность языка ЛИСП серьезным изменениям – улучшаются с помощью языка, предназначенные для обработки нетрадиционных для ЛИСПа типов данных: векторов, массивов, матриц; появляются некоторые средства для работы с памятью (пакеты), отсутствующие в ЛИСПе. Серьезные изменения претерпевают и управляющие структуры. Появились чуждые природе языка ЛИСП функции, заимствованные из Фортрана, Алгола, Паскаля, Си: Do, Loop, Goto, Case и тому подобные, благодаря которым пользователь, незнакомый с принципами функциональных языков, легко переключается на ЛИСП. Качество программ снижается, на растет популярность языка.
...