词法分析器的目的是什么?

时间:2012-07-07 15:07:07

标签: compiler-construction lexical-analysis

我正在阅读this question. 的答案 我似乎找不到为什么有人需要词法分析

的答案

这是程序在编译过程中经历的步骤之一吗? 有人可以用简单的术语解释为什么我需要一个词法分析器,它的目的是什么?

2 个答案:

答案 0 :(得分:5)

词法分析器将获取输入字符流并将其转换为标记。

这可用于各种目的。您可以将变换应用于词法,以进行简单的文本处理和操作。

或者lexemes流可以被提供给解析器,解析器将其转换为解析器树。

如果目标是编译,那么词法分析是第一步。将其视为较低级别的步骤,它将字符转换为标记。解析器是一个更高级别的机制,其字母表由令牌(由词法分析器创建)组成,它解析并创建一个解析树。

如果目标是文本操作,那么操作规则可以应用于词法本身。

答案 1 :(得分:3)

一个很好的例子是维基百科http://en.wikipedia.org/wiki/Lexical_analysis

例如,如果要评估表达式“(33 + 3)* 2”,第一步是将字符串拆分为标记“(”,“33”,“+”,“3”,“)” ,“*”,“2”。至于我记得关于编译器的课程,这是由最长匹配的单词自动机完成的。