自顶向下运算符优先级解析技术
1. 自顶向下运算符优先级解析技术概述
在 1973 年,Vaughan Pratt 在波士顿举行的第一届年度程序设计语言原理研讨会上提出了“自顶向下运算符优先级”解析技术。该技术结合了递归下降和 Robert W Floyd 的运算符优先级语法技术的优点,具有易于理解、实现简单、使用方便、效率极高且非常灵活等特点。
然而,这样一种看似理想的编译器构建方法如今却被完全忽视。原因之一是人们过于关注 BNF 语法及其衍生形式,以及相关的自动机和定理,从而阻碍了在自动机理论领域之外的发展。另一个原因是,该技术在动态函数式编程语言中最为有效,而在静态过程式语言中实现则要困难得多。
1.1 LISP 语言的尝试
Pratt 在论文中使用 LISP 语言,几乎毫不费力地从令牌流构建了解析树。但 LISP 社区并不重视解析技术,他们崇尚简洁的语法。自 LISP 诞生以来,有许多尝试为其赋予丰富的、类似 ALGOL 的语法,例如:
- Pratt’s CGOL:http://zane.brouhaha.com/~healyzh/doc/cgol.doc.txt
- LISP 2:http://community.computerhistory.org/scc/projects/LISP/index.html#LISP_2_
- MLISP:ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/68/92/CS-TR-68-92.pdf
- Dylan:http://www.opendylan.org
- Interlisp’s Clisp:http
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



