Аннотация

Описываются основные концепции и парадигмы, лежащие в основе современных языков программирования. Более подробно рассматриваются функциональные и логические языки. Показано, как на этих языках можно быстро написать прототипный транслятор. Излагаются методы построения лексических анализаторов на основе регулярных выражений и конечных автоматов. Рассматриваются методы синтаксического разбора: рекурсивный спуск, сдвиг-свертка, таблично-управляемые методы для грамматик: LL (1), SLR (1), LR (1), LALR (1). Показано, как на основе атрибутных грамматик определяются алгоритмы получения результата трансляции. Соответствует ФГОС ВО последнего поколения. Для студентов магистратуры, обучающихся по направлению «Прикладная математика и информатика».

Аннотация

Предназначен для начального изучения функционального программирования. Излагаются методы рекурсивного программирования, построение алгоритмов из функций высшего порядка, использование ленивых вычислений. Рассматриваются алгебраические методы преобразования программ и методы доказательства законов функциональных программ. Особое внимание уделяется системе проверки типов и алгебраическим типам данных. На примере реализации компилятора для простого императивного языка показаны преимущества функционального программирования. Соответствует ФГОС ВО последнего поколения. Для студентов магистратуры, обучающихся по направлениям, связанным с программированием, и для программистов, желающих изучить основы функционального программирования.