Scheme

  • 19 дек. 2010 г.
  • 3352 Слова
Содержание:

0. Введение ……………………………………………………………………………….…….3
1. Построение абстракций с помощью процедур……………………………………….……3
1.0. Элементы программирования……………………………………………….……3
1.0.0. Выражения……..…………………………………………………..………3
1.0.1. Имена и окружение..………………………………………………………4
1.0.2. Вычисление комбинаций...……………………………...………………..4
1.0.3.Составные процедуры.……………………………………………….…...4
1.0.4. Условные выражения и предикаты......…………………………………..5
1.0.5. Процедуры как абстракции типа «черный ящик»...........……………….6
1.1. Рекурсии и итерации……………………….…………………………………….6
1.1.0. Итерации………………………….………………………………… ..…..6
1.1.1.Рекурсии……….……..……………………………………………………7
1.2.Формулированиеабстракций с помощью процедур высших порядков………7
1.2.0. Процедуры как аргументы……………………………………………….8
1.2.1. Построение процедур с помощью lambda………………………………8
1.2.2. Процедуры как возвращаемые значения………………………………..8
1.2.3. Процедуры как полноправные элементы языка………………………..8
2.Построение абстракция с помощью данных………………………………………………9
2.0. Введение в абстракцию данных…………………………………………………92.0.0.Пары………………………………………………………………………..9
2.1. Иерархические данные и свойство замыкания…………………………………9
2.1.0. Представление последовательностей…………………………………..10
2.1.1. Операции со списками…………………………………………………..10
2.1.2. Отображение списков…………………………………………………...11
2.1.3. Иерархически структуры. Деревья……………………………………..11
2.1.4. Последовательности как стандартные интерфейсы.Операции над последовательностями…………………………………11
2.2 Символьные данные……………………………………………………………..12
2.2.0.Кавычки…………………………………………………………………..13
2.2.1. Символьное дифференцирование……………………………………...13
2.2.2.Программа дифференцирования с абстрактными данными………….13
3.Реализация алгоритма Краскала на языке Scheme………………………………………15
4.Вывод………………………………………………………………………………………17
5.Списоклитературы……………..…………………………………………………………19

0. Введение.
Лисп - семейство языков программирования, программы и данные в которых представляются системами линейных списков символов. Лисп был изобретен Джоном Маккарти на основе его статьи «Рекурсивные функции над символьными выражениями и их вычисление с помощью машины» в конце 1950-х как формализм для рассуждений об определенном типе логическихвыражений, называемых уравнения рекурсии, как о модели вычислений. Лисп, чье название происходит от сокращения английских слов LISt Processing (обработка списков), был создан с целью обеспечить возможность символьной обработки для решения таких программистских задач, как символьное дифференцирование и интегрирование алгебраических выражений. Среди ныне используемых языков программирования старше Лиспа толькоФортран.
Scheme – это функциональный язык программирования, один из двух наиболее популярных диалектов языка Лисп (другой популярный диалект – это Common Lisp). Scheme ветеран, Гай Стил и Джеральд Сассмен из Массачусетского технологического института создали его в середине 70-х годов.
Scheme развивался из первоначального Лиспа, но отличается от него по нескольким аспектам: в частности,использование статических областей связывания переменных и возвращение функциями других функций в качестве значения. По семантической структуре Scheme близок к Алгол 60 и ранним вариантам Лиспа. Scheme наследовал простоту синтаксиса от Лиспа, он настолько прост, что синтаксический разбор является элементарной задачей. От Алгола Scheme получил лексическую область действия и блоковую структуру. Все формальные деталиэтого языка очень просто описать. Большим преимуществом лиспоподобных языков является то, что они поддерживают стратегии разбиения программ на модули. Можно строить абстракции процедур и данных, можно использовать функции высших порядков, можно связывать программы с помощью потоков и задержанных вычислений, можно с легкостью...
tracking img