Описание книги
Языки программирования от Фортрана и Кобола до Caml и Java играют ключевую роль в управлении сложными компьютерными системами. Книга «Введение в теорию языков программирования» представляет читателю средства, необходимые для проектирования и реализации подобных языков. В ней предлагается единый подход к различным формализмам для определения языков программирования – операционной и денотационной семантике. Особое внимание при этом уделяется способам задания отношений между тремя объектами: программой, входным значением и результатом. Эти формализмы демонстрируются на примере таких типичных элементов языков программирования, как функции, рекурсия, присваивание, записи и объекты. При этом показывается, что теория языков программирования состоит не в последовательном изучении самих языков один за другим, а строится вокруг механизмов, входящих в различные языки. Изучение таких механизмов в книге приводит к разработке вычислителей, интерпретаторов и компиляторов, а также к реализации алгоритмов вывода типов для учебных языков.
Пользователь
Добротное теоретическое введение
Книга для тех, кто хочет получить представление о теоретических основах языков программирования, теории типов, компиляторах и т. п. Содержит все основные понятия, проиллюстрированные довольно практическим способом: конкретным языком программирования, который авторы назвали PCF, а на самом деле являющимся довольно типичным функциональным языком программирования, перекликающимся с языками семейства ML, и другими языками программирования на уровне лежащих в основе механизмов. При этом даётся и объясняется очень многое из принятой в области терминологии. Формализмы определения языков программирования (в данной книге взяты операционная и денотационная семантики) систематично использованы в применении к различным механизмов языков. Книгу можно рекомендовать программистам и студентам, которые более глубоко интересуются языками программирования и их механизмами, хотят понимать научные труды по теории языков программирования, теории типов, строить свои языки, или расширить кругозор.