【发布时间】:2013-08-19 01:18:28
【问题描述】:
最近我决定尝试实现一种非常小的语言,只是为了看看我能做什么。在过去的几个小时里,我设法为我的语言编写了一个词法分析器,效果很好。所以在阅读了理论和东西之后,我明白下一步是编写一个解析器。解析器的工作对我来说仍然有点不清楚,(我正在编写一种小型解释语言作为开始,所以事情将直接在代码中完成)它是否通过标记,理解含义,然后执行代码所说的/生成代码(用于编译器)?或者我读过抽象语法树,这是我应该用解析器构造的东西吗?我不太确定 AST 到底是什么…… 所以我想我的问题是,在词法分析器之后我的下一步是什么?解析器的工作是什么?最后但并非最不重要的一点是抽象语法树的作用是什么?
感谢您的帮助!
【问题讨论】:
-
你能做的最好的事情就是去找任何关于编译器的书去读一读。对这些部分的作用有一些模糊的概念并尝试将工作工具放在一起不会非常有效,而且您不会了解那些构建编译器的人花了 50 年时间弄清楚了什么。 Aho/Ullman/Sethi 关于编译器的书是 标准参考书,它将直接回答您的问题。
标签: parsing tokenize lexer abstract-syntax-tree