Введение в программирование на Лиспе

773123a3

Введение в программирование на Лиспе

Установка Лисп-системы
Диалог с Лисп-системой
Запуск Лисп-программ из файлов
Пошаговое вычисление
Сайты с Лисп-системами

Введение в программирование на Лиспе

Основы символьной обработки
Структуры данных
Точечная нотация
Выводы:
Пример 3.1

Введение в программирование на Лиспе

Специальные функции
Рекурсивные функции: определение и исполнение
Выводы:
Пример 4.1
Пример 4.1
Пример 4.10

Пример 4.10
Пример 4.11
Пример 4.11
Пример 4.12
Пример 4.12
Пример 4.14
Пример 4.14
Пример 4.2
Пример 4.3
Пример 4.3

Пример 4.4
Пример 4.4
Пример 4.5
Пример 4.6
Пример 4.8
Пример 4.8
Пример 4.9
Пример 4.9

Введение в программирование на Лиспе

Основные методы обработки списков
Выводы:

Пример 5.1
Пример 5.1

Введение в программирование на Лиспе

Определение универсальной функции
Вычисление
Предикаты и истинность в Лиспе

Выводы:
Пример 6.1
Пример 6.1

Введение в программирование на Лиспе

Числа и строки

Функционалы
Безымянные функции
Композиции функционалов, фильтры, редукции
Выводы:
Пример 7.1
Пример 7.1
Пример 7.10

Пример 7.10
Пример 7.11
Пример 7.11
Пример 7.12
Пример 7.12
Пример 7.13
Пример 7.13
Пример 7.2
Пример 7.2
Пример 7.3

Пример 7.3
Пример 7.4
Пример 7.4
Пример 7.5
Пример 7.5
Пример 7.6
Пример 7.6
Пример 7.7
Пример 7.7
Пример 7.8

Пример 7.8
Пример 7.9
Пример 7.9

Введение в программирование на Лиспе

Именование значений и подвыражений
Программы для Лисп-интерпретатора.
Выводы:
Пример 8.1
Пример 8.1
Пример 8.2

Пример 8.3
Пример 8.4
Пример 8.4

Введение в программирование на Лиспе

Замедленные вычисления (lazy evaluation)

Работа с событиями
Выводы:
Пример 9.1
Пример 9.1
Пример 9.2
Пример 9.3
Пример 9.3

Введение в программирование на Лиспе

Списки свойств атомов
Структура списков и памяти
Деструктивные (разрушающие) операции
"Сборка мусора" - повторное распределение памяти
Выводы:

Введение в программирование на Лиспе

Императивное программирование
Prog-форма
Присваивания
Циклы
Примеры программ с циклами

Выводы:
Пример 11.1
Пример 11.2
Пример 11.2
Пример 11.3
Пример 11.3
Пример 11.4
Пример 11.4
Пример 11.5
Пример 11.5

Пример 11.6
Пример 11.6

Введение в программирование на Лиспе

Вызов Лисп-интерпретатора и/или компилятора.

Практичные расширения Лиспа
Функциональное программирования

"Адское" программирование Ada-95 -Компилятор GNAT

Характерной особенностью языка программирования Ада является то, что он специально проектировался как инструмент разработки больших программных комплексов реального времени для встроенных компьютерных систем, к которым предъявляются высокие требования надежности. В первую очередь, такие требования предъявляются к системам военного предназначения. Однако, это не исключает применение языка Ада для решения всевозможных задач вычислительного характера, параллельной обработки, моделирования промышленных и технологических процессов в реальном масштабе времени, системного программирования и т.д. Более того, язык Ада часто рассматривается как язык общего назначения.
К сожалению, существующая на русском языке литература, посвященная языку программирования Ада, в большинстве случаев, относится к старому стандарту языка Ада (Ada-83). Таким образом, основной целью данной книги является попытка ликвидировать образовавшийся информационный пробел. Данная работа рассматривает средства языка программирования Ада в соответствии с действующим в настоящее время стандартом Ada-9 Представленный материал может быть полезен и интересен широкому кругу специалистов, чья работа связана с вычислительной техникой и программированием.

Основное содержание материала логически разделено на четыре части:
Первая часть посвящена обзору средств и возможностей языка Ада, в соответствии с действующим в настоящее время стандартом Ada-9
Вторая часть служит дополнением к первой части, и ее цель - дать некоторое представление об идеологии программирования на языке Ада.
Третья часть посвящена инструментальным средствам, и она рассматривает поставку компилятора GNAT, поскольку он является свободно доступным (включая исходные тексты).
Четвертую часть составляют приложения, которые содержат некоторый справочный и информационный материал.

Следует заметить, что представленный материал не можт расцениваться как исчерпывающий. Так, ввиду ограниченности объема книги, опущено обсуждение целого ряда самостоятельных тем, примерами которых могут служить: "Спецификация семантического интерфейса Ады" (ASIS - Ada Semantic Interface Specification), программирование распределенных систем (Distributed Systems), программирование систем реального времени (Real-Time Systems)...
Необходимо также заметить, что данная работа не может расцениваться как перевод стандарта, поэтому, в случае возникновения каких-либо конфликтных ситуаций, которые могут возникнуть при реальной работе, необходимо непосредственно обращаться к Ada-95 Reference Manual, который всегда является истиной в последней инстанции.

Введение
Сюрпризы переводной терминологии
Пакет Ada.Direct_IO
Особенности программирования защищенных входов
Приоритеты задач
Ссылочные типы для динамической памяти
Язык Ада - взгляд "сверху вниз"
Доступность средств разработки
Пакеты
Директивы компилятора