14、自顶向下运算符优先级解析技术

自顶向下运算符优先级解析技术

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值