Описание книги
Наконец-то появился увлекательный и практичный способ изучать теорию вычислений и проектирование языков программирования! В этой книге теоретическая информатика излагается в хорошо знакомом вам контексте, что поможет оценить, почему ее идеи важны и как они отражаются на том, чем программист изо дня в день занимается на работе. Вместо математической нотации или незнакомого академичного языка программирования типа Haskell или Lisp в этой книге для объяснения формальной семантики, теории автоматов и функционального программирования вкупе с лямбда-исчислением применяется язык Ruby, сведенный к минимуму. Издание предназначено для программистов любой квалификации, знакомых хотя бы с одним из современных языков, но не имеющих формальной подготовки в информатике.
Пользователь
Книги, посвященные теории вычислений, обычно состоят из сухого математического языка, обилия формул и теорем. В этой книге все не так! Каждую рассматриваемую идею Том Стюарт демонстрирует законченными примерами кода, давая возможность опробовать ее на практике. В процессе чтения мы не узнаем, что конечный автомат это кортеж вида {V,Q,s,F,m}, язык это множество конечных строк над алфавитом, а машина Тьюринга имеет правила, вида q[i]a[j] -> q[i1]a[j1]d[k]. Вместо этого автоматы мы смоделируем, что такое синтаксис и семантика языка поймем написав собственный интерпретатор, запрограммируем собственную реализацию машины Тьюринга и попробуем много чего еще! Та минимальная часть языка программирования Ruby, которую использует автор для демонстрации рассматриваемых идей, почти не требует времени для изучения, к примерам можно приступать практически сразу же!