本周的 Tunight 由朱俸民带来《Parsing from scratch》。
文法解析或许是计算机科学中将理论与实践结合得最成功的一个领域:解析技术基于形式语言与自动机理论,成熟的生成器与组合子库也在工业界得到广泛应用。几乎所有的软件中,你都能找到它的影子:编译器构造,命令行解析,结构化文本信息提取,使用喜闻乐见的正则表达式来匹配文本,等等。对于那些喜欢设计自己的语言的人来说,文法解析很有可能是他们在实现编译器过程中的第二道难关——在他们终于设计出令人满意的具体文法之后。
这次讲座会介绍两种主流的构造文法解析方法——生成器与组合子库。我们将尝试实现其中的一部分,这样你就能发现其实文法解析器并没有什么神秘的,一切都只是操作字符串的艺术。最后,我们还将从学界的最新进展中探寻到一些新的方法,它们让解析器的构造变得更加“安全”和“正确”,或者更加“自动化”。
地图:
路线: