Такую задачу не решить на одной странице. Я попытаюсь сделать это в нескольких статьях. Каждая статья раскрывает один аспект теории создания компиляторов и может быть изучена в отдельности от всех других. Если вас в настоящее время интересует только какой-то определенный аспект, тогда вы можете обратиться к нужной статье. Каждая статья будет появляться по мере завершения, так что вы должны дождаться последней для того, чтобы считать себя закончившими обучение. Пожалуйста, будьте терпеливы.
В общем, каждая книга по теории создания компиляторов раскрывает множество основ, которые мы не будем рассматривать. Типичная последовательность:
• вступление, в котором описывается что такое компилятор.
• одна или две главы, описывающие задание синтаксиса с использованием формы Бэкуса-Наура (БНФ).
• одна или две главы с описанием лексического анализа, с акцентом на детерминированных и недетерминированных конечных автоматах.
• несколько глав по теории синтаксического анализа, начиная с рекурсивного спуска и заканчивая LALR анализаторами.
• глава, посвященная промежуточным языкам, с акцентом на P-код и обратную польскую запись.
• множество глав об альтернативных путях для поддержки подпрограмм и передачи параметров, описания типов, и т.д.
• завершающая глава по генерации кода, обычно для какого-нибудь воображаемого процессора с простым набором команд.
• финальная глава или две, посвященные оптимизации. Эта глава часто остается непрочитанной, очень часто.
В этой серии я буду использовать совсем другой подход. Для начала, я не остановлюсь долго на выборе. Я покажу вам путь, который работает. Если же вы хотите изучить возможности, хорошо… я поддержу вас... но я буду держаться того, что я знаю. Я также пропущу большинство тех теорий, которые заставляют людей засыпать. Не поймите меня неправильно: я не преуменьшаю важность теоретических знаний, они жизненно необходимы, когда приходится иметь дело с более сложными элементами какого либо языка. Но необходимо более важные вещи ставить на первое место. Мы же будем иметь дело с методами, 95% которых не требуют много теории для работы.
Комментарии к книге «Давайте создадим компилятор!», Джек Креншоу
Всего 0 комментариев