Программирование в Erlang
Здесь можно купить книгу "Программирование в Erlang " в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Автор: Франческо Чезарини, Саймон Томпсон
Форматы: PDF
Серия: Функциональное программирование
Издательство: ДМК Пресс
Артикул: 94882
Возрастная маркировка: 16+
Краткая аннотация книги "Программирование в Erlang"
Эта книга познакомит вас с Erlang, языком программирования, который идеально подходит для создания параллельных отказоустойчивых приложений, предназначенных для работы в режиме реального времени. С появлением многоядерных процессоров, предоставляющих новые средства масштабирования распараллеленных приложений, Erlang становится все более популярным. Независимо от уровня предварительной подготовки, вы сможете научиться написанию сложных параллельных приложений. Книга написана лидерами международного сообщества Erlang. В ней вы найдете подробное описание правильно построенных списков, рекурсии, отладки, сетвевого и параллельного программирования, а также многих других аспектов синтаксиса и семантики языка Erlang.
Содержание книги "Программирование в Erlang "
Предисловие к русскому изданию
Вступительное слово
Предисловие
Франческо: Почему Erlang
Саймон: Почему Erlang
Для кого эта книга
Как читать эту книгу
Условные обозначения
Использование кода из примеров
Safari Books Online
Как связаться с нами
Благодарности
Благодарности от российского издательства
1. Введение
1.1. Почему Erlang
1.2. История Erlang
1.3. Особенности Erlang
Высокоуровневые конструкции
Параллельные вычисления и передача сообщений
Масштабируемые, безопасные и эффективные параллельные вычисления
Применение в системах реального времени
Надёжность
Распределённые вычисления
Интеграция и открытость
1.4. Erlang и многоядерные процессоры
1.5. Erlang на практике
Коммутатор ATM AXD301
CouchDB
Erlang и C++
1.6. Как применять Erlang
2. Основы Erlang
2.1. Целые числа
2.2. Интерпретатор Erlang
2.3. Действительные числа
Арифметические операции
2.4. Атомы
2.5. Логические значения
2.6. Кортежи
2.7. Списки
Символы и строки
Атомы и строки
Создание и обработка списков
Функции и операции, определённые на списках
2.8. Сравнение термов
2.9. Переменные
2.10. Сложные структуры данных
2.11. Сопоставление с образцом
2.12. Функции
2.13. Модули
Компиляция и виртуальная машина Erlang
Директивы модулей
2.14. Упражнения
3. Последовательное программирование в Erlang
3.1. Условные выражения
case-выражение
Область видимости переменных
if-выражение
3.2. Охранные выражения
3.3. Встроенные функции
Извлечение элементов объекта и формирование запросов к объектам
Преобразование типов
Словарь процессов
Метапрограммирование
Процессы, порты, распределённые программы и системная информация
Ввод-вывод
3.4. Рекурсия
Хвостовая рекурсия
Оптимизация хвостовой рекурсии
Итерационные функции против рекурсивных
3.5. Ошибки времени выполнения
3.6. Обработка ошибок
С помощью try … catch
C помощью catch
3.7. Библиотечные модули
Документация
Полезные модули
3.8. Отладчик
3.9. Упражнения
4. Параллельное программирование
4.1. Создание процессов
4.2. Передача сообщений
4.3. Приём сообщений
4.4. Выборочный приём сообщений
4.5. Пример эхо-процесса
4.6. Зарегистрированные процессы
4.7. Время задержки
4.8. Анализ производительности
4.9. Каркас процессов
4.10. Хвостовая рекурсия и утечки памяти
4.11. Один случай из практики параллельного программирования
4.12. Состояние гонки, взаимная блокировка, голодание процессов
4.13. Менеджер процессов
4.14. Упражнения
5. Шаблоны проектирования процессов
5.1. Модель клиент/сервер
Пример модели клиент/сервер
5.2. Пример шаблона процессов
5.3. Конечный автомат
Пример конечного автомата
Одноместный семафор
5.4. Менеджер и обработчик событий
Пример обобщённого менеджера событий
Обработчики событий
5.5. Упражнения
6. Обработка ошибок в процессах
6.1. Соединение процессов и сигналы выхода
Перехват сигналов выхода
Функции наблюдения за процессами
Функции останова
Встроенные функции и терминология
Семантика распространения сигналов выхода
6.2. Построение надёжных систем
Наблюдение за клиентами
Пример процесса-наблюдателя
6.3. Упражнения
7. Записи и макросы
7.1. Записи
Записи, первое знакомство
Применение записей
Функции и сопоставление с образцом
Записи в интерпретаторе
Реализация записей
Встроенные функции для работы с записями
7.2. Макросы
Простые макросы
Параметризованные макросы
Отладка и макросы
Заголовочные файлы
7.3. Упражнения
8. Обновление приложений
8.1. Обновление модулей
8.2. За кулисами
Загрузка кода
Сервер кода
Очищение модулей
8.3. Обновление процессов
8.4. Файл .erlang
8.5. Упражнения
9. Новые типы данных и высокоуровневые выражения
9.1. Функциональное программирование
9.2. Тип fun и функции высшего порядка
Функция как аргумент
Определение функций на лету: fun-выражения
Функция как результат
Использование определённых функций
Функции и переменные
Стандартные функции высшего порядка
Ленивые вычисления и списки
9.3. Генераторы списков
Первый пример
Обобщённые генераторы списков
Несколько генераторов
Стандартные функции
9.4. Двоичные данные и сериализация
Двоичные данные
Битовый синтаксис
Битовое сопоставление с образцом
Генераторы двоичных данных
Пример: декодирование сегментов TCP
Битовые операции
Сериализация
9.5. Ссылки
9.6. Упражнения
10. ETS- и Dets-таблицы
10.1. ETS-таблицы
Реализация и оптимальный выбор типа таблиц
Создание таблиц
Работа с таблицей
Пример: построение предметного указателя, первая часть
Обход таблицы
Пример: построение предметного указателя, вторая часть
Извлечение данных: match
Извлечение данных: select
Другие операции с таблицами
Записи и ETS-таблицы
Визуализация таблиц
10.2. Dets-таблицы
10.3. Пример: база данных абонентов мобильной связи
Интерфейс базы данных
Сервер базы данных
10.4. Упражнения
11. Распределённое программирование
11.1. Распределённые приложения в Erlang
11.2. Распределённые приложения в Erlang: основы
Имена узлов и область видимости
Взаимодействие и безопасность
Взаимодействие и сообщения
Соединение узлов
Удалённый вызов процедур
Модуль rpc
Ключевые модули для распределённого программирования
11.3. Процесс epmd
Распределённый Erlang за межсетевым экраном
11.4. Упражнения
12. Поведения OTP
12.1. Введение в поведения ОТР
12.2. Обобщённый сервер
Запуск сервера
Передача сообщений
Завершение сервера
Полный текст примера
Тестирование gen_server
12.3. Наблюдатель
Спецификация наблюдателя
Спецификация дочерних процессов
Пример
Динамические дочерние процессы
12.4. Приложения
Структура директорий
Resource-файл
Запуск и завершение приложений
Менеджер приложений
12.5. Управление релизами
12.6. Другие поведения и источники для самостоятельного изучения
12.7. Упражнения
13. Начала работы с Mnesia
13.1. Для чего подходит Mnesia
13.2. Настройка Mnesia
Задание схемы
Запуск Mnesia
Таблицы Mnesia
13.3. Транзакции
Запись
Чтение и удаление
Индексация
Грязные операции
13.4. Разрыв соединения
13.5. Дополнительные источники информации
13.6. Упражнения
14. Создание GUI-приложений средствами wxErlang
14.1. wxWidgets
14.2. wxErlang. Порт wxWidgets для Erlang
Объекты и типы
Обработка событий, идентификаторы объектов и типы событий
Соберём всё вместе
14.3. Первый пример: микроблог
14.4. Мини-блог
14.5. Установка и запуск wxErlang
14.6. Упражнения
15. Работа с сокетами
15.1. User Datagram Protocol
15.2. Transmission Control Protocol
Пример обмена данными через TCP
15.3. Модуль inet
15.4. Дополнительные источники информации
15.5. Упражнения
16. Взаимодействие с другими языками программирования
16.1. Обзор средств взаимодействия
16.2. Взаимодействие с Java
Узлы и почтовые ящики
Представление типов Erlang
Обмен сообщениями
Соберём всё вместе: и вновь RPC
Взаимодействие
Мелким шрифтом
Но и это ещё не всё
16.3. Узлы С
Дополнительные возможности
16.4. Вызов Erlang из командной строки UNIX: erl_call
16.5. Порты
Команды управления
Обмен данными
16.6. Библиотечная поддержка обмена данными
Работаем с Ruby: electricity
16.7. Подключаемые драйверы и FFI
16.8. Упражнения
17. Отладка приложений в Erlang
17.1. Введение
17.2. Трассировочные встроенные функции
Трассировочные флаги для процессов
Флаги наследования
Сборка мусора и отсчёты времени
17.3. Трассировка вызовов с помощью функции trace_pattern
17.4. Трассировщик dbg
Первые шаги
Трассировка и профилирование функций
Трассировка локальных и глобальных вызовов функций
Распределённая трассировка
Перенаправление вывода
17.5. Спецификация сопоставления: fun-синтаксис
Создание спецификаций функцией fun2ms
Разница между спецификациями для ets и dbg
17.6. Устройство спецификаций сопоставления
Голова
Условные выражения
Тело спецификации
Сохранение спецификаций сопоставления
17.7. Дополнительная литература
17.8. Упражнения
18. Типы и документация
18.1. Типы в Erlang
Пример: записи с типизированными полями
Нотация типов в Erlang
18.2. TypeEr
Dialyzer: утилита для статической проверки кода Erlang
18.3. Создание документации с помощью EDoc
Документация к модулю usr_db
Запуск EDoc
Типы в EDoc
Дополнительные возможности EDoc
18.4. Упражнения
19. EUnit и разработка через тестирование
19.1. Разработка через тестирование
19.2. EUnit
Как пользоваться EUnit
Функциональное тестирование: сериализация дерева
19.3. Инфраструктура EUnit
Макрос assert
Функции для генерации тестов
Представление тестов в EUnit
19.4. Тестирование приложений с состоянием
Окружения: инициализация и очистка
19.5. Тестирование параллельных программ
19.6. Упражнения
20. Стиль и эффективность
20.1. Приложения и модули
Библиотеки
Грязный код
Интерфейсы
Возвращаемые значения
Внутренние структуры данных
20.2. Процессы и параллельные вычисления
20.3. Стилевые соглашения
20.4. Стратегии разработки
20.5. Эффективность
Последовательное программирование
Списки
Хвостовая и нехвостовая рекурсия
Параллельное программирование
20.6. И наконец
Приложение
Основы работы с Erlang
Установка
Запуск интерпретатора
Средства разработки
Редакторы
Другие средства
Дополнительные источники информации
Об авторах
Все отзывы о книге Программирование в Erlang
Чезарини Ф. другие книги автора
С книгой "Программирование в Erlang" читают
Внимание!
При обнаружении неточностей или ошибок в описании книги "Программирование в Erlang (автор Франческо Чезарини, Саймон Томпсон)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку