我正在阅读this question. 的答案 我似乎找不到为什么有人需要词法分析
的答案这是程序在编译过程中经历的步骤之一吗? 有人可以用简单的术语解释为什么我需要一个词法分析器,它的目的是什么?
答案 0 :(得分:5)
词法分析器将获取输入字符流并将其转换为标记。
这可用于各种目的。您可以将变换应用于词法,以进行简单的文本处理和操作。
或者lexemes流可以被提供给解析器,解析器将其转换为解析器树。
如果目标是编译,那么词法分析是第一步。将其视为较低级别的步骤,它将字符转换为标记。解析器是一个更高级别的机制,其字母表由令牌(由词法分析器创建)组成,它解析并创建一个解析树。
如果目标是文本操作,那么操作规则可以应用于词法本身。
答案 1 :(得分:3)
一个很好的例子是维基百科http://en.wikipedia.org/wiki/Lexical_analysis。
例如,如果要评估表达式“(33 + 3)* 2”,第一步是将字符串拆分为标记“(”,“33”,“+”,“3”,“)” ,“*”,“2”。至于我记得关于编译器的课程,这是由最长匹配的单词自动机完成的。