Введение в программирование на Лиспе: Информация
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
Вам нравится? Нравится 25 студентам
Уровень:
Для всех
Длительность:
10:15:00
Студентов:
2252
Выпускников:
430
Качество курса:
4.30 | 4.23
За почти полувековую историю своего существования язык Лисп зарекомендовал себя как система с практически неограниченными возможностями символьного программирования. Лисп и его диалекты послужили основой широкого спектра прикладных разработок, оказавших существенное влияние на распространение информационных технологий.
Знакомство с Лиспом - важная составляющая современного образования в области информатики. Лисп является ключом для изучения типовых задач системного программирования и искусственного интеллекта.
Темы: Программирование
Специальности: Программист, Архитектор программного обеспечения
Теги: clisp, common lisp, gnu clisp, lisp, rplaca, rplacd, ассоциативный список, безымянная функция, вычисления, лямбда-конструктор, отображающая функция, потоки, программирование, рабочая переменная, системы программирования, структуры данных, указатели, форматы, функциональное программирование, элементы
План занятий
Занятие
Заголовок <<
Дата изучения
Лекция 1
22 минуты
Рекурсивные функции и структуры данных
Целью курса является изучение языка Лисп и техники программирования на Лиспе. Первая лекция вводит общие понятия, используемые при определении языка Лисп, его реализации и применении. В центре внимания идеи символьной обработки информации и принципы функционального программирования.
Оглавление
-
Лекция 2
18 минут
Работа с Лисп-системой
Вторая лекция адресована практикам, предпочитающим изучение языка программирования сопровождать немедленным экспериментом, умеющим находить информацию в сетях и устанавливать на компьютере системы программирования. Но и новичкам имеет смысл познакомиться с системой программирования на Лиспе сразу, не дожидаясь полной картины изучаемого языка. Рассмотрим следующее:
Диалог с Лисп-системой
Запуск Лисп-программ из файлов
Пошаговое вычисление
Сайты с Лисп-системами
Оглавление
-
Лекция 3
32 минуты
Списки и атомы
Третья лекция знакомит с основами символьной обработки информации и структурами данных, удобно приспособленными для символьной обработки. Рассматривается базовый набор элементарных функций над списками и S-выражениями (символьными выражениями).
Оглавление
-
Лекция 4
31 минута
Запись Лисп-программ
Теперь рассмотрим правила записи программ на Лиспе. Такие правила различны для обычных и специальных функций. Для Лиспа характерно предпочтение рекурсивных функций. Функции могут иметь названия или быть безымянными, сконструированными для разового использования.
Оглавление
-
Лекция 5
29 минут
Определение языка программирования
Теперь можем дать более точное определение Лиспа как языка программирования и показать методы программирования на Лиспе. Рассмотрим синтаксис языка Лисп и его семантику. Познакомимся с техникой накопительных параметров, позволяющей при программировании обходиться без глобальных переменных, и методом вспомогательных функций, обеспечивающим управление уровнем абстрагирования информационной обработки.
Оглавление
-
Лекция 6
26 минут
Интерпретатор
Теперь рассмотрим определение операционной семантики Лиспа в виде универсальной функции, задающей правила вычисления форм и применения функций к аргументам. Проанализируем требования к определению семантики, удобно сопоставимой с синтаксической сводкой правил языка. Дадим лаконичное определение универсальной функции EVAL, вычисляющей произвольное выражение языка, и APPLY, применяющей функции языка к их аргументам. Отметим специфику предикатов и истинности, принятой в языке Лисп.
Оглавление
-
Лекция 7
32 минуты
Отображения и функционалы
После изучения идеального Лиспа переходим к знакомству с приемами создания его практичных расширений. В данной лекции мы рассмотрим базовые средства обработки чисел и строк, примеры которых помогут разобраться с техникой программирования отображений. При определении отображений вполне естественно используются безымянные функции. Приведены примеры определения фильтров и сверток (редукций).
Оглавление
-
Лекция 8
32 минуты
Имена и контексты
Данная лекция посвящена организации эффективной работы с определениями функций. Рассматривается оптимизационная техника именования значений и подвыражений на разных уровнях вложенности блоков, представление переменных и констант, а также локализация функций по блокам
Оглавление
-
Лекция 9
13 минут
Оперирование вычислениями
Теперь рассмотрим менее очевидные методы повышения эффективности и результативности вычислений, такие как замедленные (ленивые) вычисления, организация оптимальных рецептов вычисления и работа с событиями.
Оглавление
-
Лекция 10
19 минут
Свойства атомов и работа с памятью
Теперь рассмотрим более подробно следующие механизмы эффективной работы со структурами данных в памяти. Рассмотрим списки свойств атома, работающие как встроенная база данных, организацию структуры данных в памяти и деструктивные, способные разрушить состояние памяти, операции над структурами данных, а также основной механизм повторного использования памяти - "Сборка мусора".
Оглавление
-
Лекция 11
19 минут
Стандартное программирование
Эта лекция посвящена привычным методам программирования. Для этого в Лисп введена функциональная модель средств императивного программирования в виде специальной функции Prog, а также специальных функций для представления в программах на Лиспе присваиваний и циклов.
Оглавление
-
Лекция 12
24 минуты
Расширения и приложения Лиспа
В заключении рассмотрим как дальше осваивать Лисп, практично использовать возможности Лисп-систем и систем функционального программирования. Познакомимся немного с историей Лиспа
Оглавление
-