Информация о книге

978-5-94074-979-0, 978-5-97060-237-9

Главная  » Тематика определяется » Теория вычислений для программистов

Стюарт Т., Теория вычислений для программистов


серия: Теория программирования
ДМК-Пресс, 2016 г., 978-5-94074-979-0, 978-5-97060-237-9


Наличие в интернет-магазинах

Магазинов: 4, Цена: от 1236 руб. посмотреть все

Описание книги

Наконец-то появился увлекательный и практичный способ изучать теорию вычислений и проектирование языков программирования. В этой книге теоретическая информатика излагается в хорошо знакомом вам контексте, что поможет оценить, почему ее идеи важны и как они отражаются на том, чем программист изо дня в день занимается на работе. Вместо математической нотации или незнакомого академичного языка программирования типа Haskell или Lisp в этой книге для объяснения формальной семантики, теории автоматов и функционального программирования вкупе с лямбда-исчислением применяется язык Ruby, сведенный к минимуму. Это идеальное решение для программистов, знакомых хотя бы с одним из современных языков, но не имеющих формальной подготовки в информатике.

Купить эту книгу можно в интернет-магазинах

  Лабиринт - 1236 руб.   Book24 - 1879 руб.   Буквоед - 1879 руб.   Читай-Город - 1879 руб.
  Страница товара выбранного интернет-магазина откроется в новом табе

Скачать, но не бесплатно эту книгу можно в интернет-магазинах

  Литрес - 439 руб.

Читать онлайн


Доступен для чтения фрагмент книги

Поделиться ссылкой на книгу



Содержание книги

Предисловие
Для кого предназначена эта книга
Графические выделения
О примерах кода
Как с нами связаться
Благодарности
Глава 1. Все, что нужно знать о Ruby
Интерактивная оболочка Ruby
Значения
Простые данные
Структуры данных
Процедуры
Поток управления
Объекты и методы
Классы и модули
Прочее
Локальные переменные и присваивание
Строковая интерполяция
Инспектирование объектов
Печать строк
Методы с переменным числом аргументов
Блоки
Модуль Enumerable
Класс Struct
Партизанское латание
Определение констант
Удаление констант
Часть I. ПРОГРАММЫ И МАШИНЫ
Глава 2. Семантика программ
В чем смысл слова "смысл"?
Синтаксис
Операционная семантика
Семантика мелких шагов
Выражения
Предложения
Корректность
Приложения
Семантика крупных шагов
Выражения
Предложения
Приложения
Денотационная семантика
Выражения
Предложения
Сравнение способов определения семантики
Приложения
Формальная семантика на практике
Формализм
Поиск смысла
Альтернативы
Реализация синтаксических анализаторов
Глава 3. Простейшие компьютеры
Детерминированные конечные автоматы
Состояния, правила и входной поток
Вывод
Детерминированность
Моделирование
Недетерминированные конечные автоматы
Недетерминированность
Свободные переходы
Регулярные выражения
Синтаксис
Семантика
Синтаксический анализ
Эквивалентность
Минимизация ДКА
Глава 4. Кое-что помощнее
Детерминированные автоматы с магазинной
памятью
Память
Правила
Детерминированность
Моделирование
Недетерминированные автоматы с магазинной
памятью
Моделирование
Неэквивалентность
Разбор с помощью автоматов с магазинной
памятью
Лексический анализ
Синтаксический анализ
Применение на практике
Насколько мощнее?
Глава 5. Окончательная машина
Детерминированные машины Тьюринга
Память
Правила
Детерминированность
Моделирование
Недетерминированные машины Тьюринга
Максимальная мощность
Внутренняя память
Подпрограммы
Несколько лент
Многомерная лента
Машины общего назначения
Кодирование
Моделирование
Часть II. ВЫЧИСЛЕНИЯ И ВЫЧИСЛИМОСТЬ
Глава 6. Программирование на пустом месте
Имитация лямбда-исчисления
Работа с процедурами
Задача
Числа
Булевы значения
Предикаты
Пары
Операции над числами
Списки
Строки
Решение
Более сложные приемы программирования
Реализация лямбда-исчисления
Синтаксис
Семантика
Синтаксический разбор
Глава 7. Универсальность повсюду
Лямбда-исчисление
Частично рекурсивные функции
SKI-исчисление
Iota
Таг-системы
Циклические таг-системы
Игра "Жизнь" Конвея
Правило 110
Вольфрамова 2,3 машина Тьюринга
Глава 8. Невозможные программы
Факты как они есть
Универсальные системы могут выполнять
алгоритмы
Программы могут замещать машины Тьюринга
Код - это данные
Универсальные системы могут зацикливаться
Программы могут ссылаться сами на себя
Разрешимость
Проблема остановки
Построение анализатора остановки
Это никогда работать не будет
Другие неразрешимые проблемы
Печальные следствия
Почему так происходит?
Жизнь в условиях невычислимости
Глава 9. Программирование в игрушечной
стране
Абстрактная интерпретация
Планирование маршрута
Абстракция: умножение знаков
Аппроксимация и безопасность: сложение знаков
Статическая семантика
Реализация
Достоинства и ограничения
Приложения
Послесловие
Предметный указатель


Об авторе


Отзывы

Не рекомендую  [20 May 2015]
Начал читать книгу. осилил только первых 2-3 главы. Очень сложно написано + мне сложно оценить перевод т.к. до сих пор я не сталкивался с терминами и с темой написания языков программирования. Будет интересна только тем, кто собирается написать свой язык или хочет узнать как всё устроено. Книга для очень узкого круга специалистов.
Огромным недостатком является Ruby - на нём написаны все примеры
Отличная книга!!!  [ 1 December 2014]
Очень полезная книга для всех кто хочет познакомиться с внутренним миром интерпретаторов и компиляторов языков, а также хочет углубить свои навыки в парсинге данных.

Ruby выбран не случайно, там используются некоторые особенности его синтаксиса и библиотеки, глубокого понимания руби не требуется, а из-за дружелюбности его кода книга подойдёт даже тем кто Ruby изучать не особо планирует.
Руби  [ 5 July 2014]
Несколько напрягает, что авторы книги навязывают читателю Руби. Да, язык не особо сложный, но все же синтаксис приходится держать в голове.
Я имею особенность читать книги с большими перерывами. Могу прочесть главу сегодня, а следующую главу - через неделю. И каждый раз, возвращаясь к книге, мне приходится вспоминать этот чертов Руби, на котором в обычное время я не пишу. Конечно, это не слишком мотивирует продолжать чтение. Считаю, что авторам стоило последовать примеру классиков и писать код на псевдо-языке или на чем-то с более классическим синтаксисом (неплохо подошло бы нечто вроде Java).
В остальном книга довольно интересная, если бы не описанные выше затыки.

Последние поступления в рубрике "Тематика определяется"



Алиса Селезнева. Сто лет тому вперед Алиса Селезнева. Сто лет тому вперед Булычев Б.

Третья планета от солнца готова услышать голоса новых героев! Повесть Кира Булычёва «Сто лет тому вперёд» озвучили актёры Марк Эйдельштейн (он же сыграл Колю Герасимова в экранизации 2024 года) и Дарья Савичева (сериал «Беспринципные»). Шестиклассник Коля вдруг обнаруживает в обычной московской квартире машину времени....

Странная история доктора Джекила и мистера Хайда Странная история доктора Джекила и мистера Хайда Стивенсон Л.У.

Читает Алена Долецкая! Одно из первых произведений в жанре научной фантастики: мрачная готическая повесть о раздвоении личности и тёмной изнанке человеческой души. Генри Джекил, уважаемый в обществе врач и ученый, поставил неудачный эксперимент и материализовал тёмную часть своей личности....

Этика Этика Спиноза С.

Бенедикт Спиноза – основополагающая, веховая фигура в истории мировой философии. Учение Спинозы продолжает начатые Декартом революционные движения мысли в европейской философии, отрицая ценности былых веков, средневековую религиозную догматику и непререкаемость авторитетов....

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Стюарт Т., Теория вычислений для программистов в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.