【发布时间】:2010-12-09 17:17:02
【问题描述】:
我对编写编译器完全陌生。所以我目前正在启动项目(用Java编码),在编码之前,我想更多地了解词法分析部分。我在网上研究过,我发现他们中的大多数都使用标记器。
该项目要求我不使用它们(标记器),而是使用有限状态自动机。我很困惑,我需要使用链表来实现它吗?或者一个简单的嵌套开关案例就可以了。我对实现有限自动机不是很熟悉,有什么好处?
【问题讨论】:
-
编译器资源大列表是Learning to write a compiler。其中的各种理论书籍/站点/等将解释如何使用 FSA 构建词法分析器(或者您可以自己找出解决方案来直接完成任务)。在 Java 中实现 FSA 可能存在多个问题。
-
查看一些词法分析器生成的代码可能会有所帮助。例如。 COCO/R for Java 生成可读性很强的代码。
-
@max taldykin,感谢指向 COCO/R 的指针,它看起来很有趣。对于 OP,源代码中的scanner.java 是解析器格式本身的FSA扫描仪,因此可能会提供一些灵感。
标签: compiler-construction linked-list theory analysis lexical