龙书笔记用Python实现简单数学表达式中缀转后缀语法翻译器(基于递归下降分析法)
发布时间
阅读量:
阅读量
上篇笔记阐述了与语法分析相关的若干基本概念,本篇笔记依据龙书第2.5节的内容,设计并实现了一个用于处理简单表达式的后缀式语法翻译器的演示程序。
备注:原书中提供的示例为Java语言编写,而本文将提供一个逻辑相符的Python语言版本。
在着手编写简单后缀翻译器的代码之前,还需对若干基础概念进行说明。
**1. 自顶向下分析法(top-down parsing)
**从名称即可理解,自顶向下分析法在推导产生式时,以产生式的起始符号作为根节点,自上而下逐步生成其子节点,最终形成完整的语法分析树。在实际操作中,该方法会按照输入字符串从左到右的顺序进行扫描,并在此过程中逐步构建出分析树。
假设有如下一组文法产生式:

再假设当前需要进行推导的输入字符串为:
for ( ; expr; expr; ) other
那么,采用自顶向下分析方法的推导流程如以下图表所示:

还没有任何评论哟~
