Понятием/функцией/реализацией, каковы различия между компиляторами и синтаксическими анализаторами?
Компилятор часто состоит из нескольких компонентов, один из которых является синтаксическим анализатором. Обычный набор компонентов в компиляторе:
Как упоминалось в другом месте, small C - это рекурсивный достойный компилятор, который генерирует код по мере его анализа. В основном синтаксический анализ, семантический анализ и генерация кода за один проход. Насколько я помню, он также был преобразован в синтаксический анализатор.
Давным-давно я написал компилятор C (на самом деле несколько: семейство Introl-C для микроконтроллеров), который использовал рекурсивную приличность и выполнял синтаксическую и семантическую проверку во время синтаксического анализа и создал древовидное представление программы, из которой был сгенерирован код.
Сегодня я работаю над компилятором , который выполняет исходный -> токены -> AST -> IR -> код, почти как Я описал выше.
Парсер является одним из элементов компилятор .
Вы ищете различия между интерпретатором и компилятором?
В компиляторе всегда есть парсер. Парсер просто обрабатывает язык и возвращает его древовидное представление, компилятор генерирует что-то из этого дерева, фактические машинные коды или другой язык.
Анализатор принимает необработанные данные и анализирует
их в древовидной структуре. Это синтаксическое дерево затем передается генератору, который превратит его во все, что он должен генерировать.
Итак, синтаксический анализатор является частью компилятора.
Синтаксический анализатор просто считывает текст во внутреннее, более абстрактное представление, часто в дерево или какой-то граф.
Компилятор переводит такое внутреннее представление в другом формате. Чаще всего это означает преобразование исходного кода в исполняемые программы. Но цель не обязательно должна быть машинным кодом. Это также может быть другой язык программирования; компилятор останется компилятором. Очевидно, компилятору нужен синтаксический анализатор, чтобы на самом деле читать его ввод.
Компилятор - это компьютерная программа особого типа, которая переводит читаемый человеком текстовый файл в форму, более понятную компьютеру. На самом базовом уровне компьютер может понимать только две вещи: 1 и 0. На этом уровне человек будет работать очень медленно и найдет информацию, содержащуюся в длинной цепочке единиц и нулей, непонятной. Компилятор - это компьютерная программа, которая устраняет этот пробел.
Парсер - это часть программного обеспечения, которое оценивает синтаксис сценария, когда он выполняется на веб-сервере. Для языков сценариев, используемых в Интернете, синтаксический анализатор работает так же, как компилятор может работать в других типах сред разработки приложений. Анализаторы обычно используются при разработке сценариев, поскольку они могут оценивать код при выполнении сценария и не требуют компиляции кода. первый.