【发布时间】:2011-03-21 00:04:15
【问题描述】:
我正在努力学习更多关于编译器和编程语言的知识,很遗憾我的大学没有提供关于编译器的课程,所以我必须自己做(感谢互联网)。
目前我尝试理解并为我的语言实现词法分析器,我需要正则表达式。
我习惯于快速编写 perl 正则表达式脚本,并且我认为 我可以将 Perl 嵌入到我的 C++ 词法分析器中。现在的问题是:
- 会不会造成很大的开销?
- 我应该尝试与 BOOST(或任何其他 c++ 库好的 gor regex)和平相处吗?
感谢您阅读本文:)
【问题讨论】:
-
为什么不是旧的好 lex/yacc? (嗯,弯曲/野牛)
-
实际上我知道它们,但我想对编译器内部有一个“深入”的了解。我也读过关于 Quex 的文章,看起来也不错:)
-
我见过一个用 Icon 编写的词法分析器,它(如 Perl)也具有非常好的字符串处理能力,并且对正则表达式等功能的需求远没有你想象的那么强烈.我建议您找一本大学通常用于编译器编写课程的书,例如“Crafting a Compiler in C”。我知道人们非常了解编译器的工作原理。
-
目前我正在阅读龙书(编译器等),我会尽快获取您的书的副本 :)
-
@fatmatto,如果你想深入了解,你一定要编写自己的正则表达式编译器。
标签: c++ perl compiler-construction programming-languages lexer