Публикации по теме 'compiler-design'


Создание компилятора для современного функционального языка с нуля в Rust (часть 2: оценка)
Оценка терминов лямбда-исчисления обычно осуществляется в одном из двух возможных вариантов: вызов по имени или вызов по значению. Иногда их также называют ленивыми или нетерпеливыми. Мы будем внедрять нетерпеливую оценку. Нетерпеливая оценка довольно прямолинейна. Большая часть информации, которая нам нужна для оценки выражения, уже хранится в нашем термине. Единственная дополнительная информация, которая нам нужна, — это Context. Контекст определяется как связанный список переменных..

Компилятор 101
Все, что вам нужно знать о компиляторах и о том, как создать их с нуля Что такое компилятор? Ответ звучит так: «Компилятор — это один из компонентов цепочки инструментов программ, используемых для создания исполняемых файлов из исходного кода». Что делает компилятор? Компилятор транслирует программу на исходном языке в программу на целевом языке. Что в основном переводит язык высокого уровня, такой как C, на собственный язык ассемблера машины, чтобы его можно было..

Написание синтаксического анализатора - Часть III: Обработка синтаксических ошибок
Один из кошмаров внедрения синтаксического анализатора промышленного уровня - иметь дело с пользовательскими ошибками и недопустимыми кодами. В моей предыдущей статье обсуждались алгоритмы и некоторые детали реализации лексера и парсера. В этой статье я расскажу, как обрабатывать синтаксические ошибки в синтаксическом анализаторе и восстанавливать их для создания устойчивого дерева синтаксического анализа. Ошибки синтаксиса Синтаксическая ошибка - это случай, когда достигается..