Newspeak中的可执行语法解析器组合子设计与实现
141 浏览量
更新于2024-06-17
收藏 719KB PDF 举报
解析器组合子是本文的主题,它是Smalltalk家族中的Newspeak编程语言中实现的一种创新技术。作者Gilad Bracha,来自Cadence Design Systems的专家,介绍了一种设计和实现的解析器组合子库,该库使得语法设计与语言处理工具分离,从而实现了一种称为"可执行规范"的共享模型。这种设计类似于标准的BNF(Backus-Naur Form)语法,但区别在于组合子更像方法,它们是表示语法结果的对象,每个解析器都是由特定产生式生成的。
解析器组合子的概念源于函数式编程的传统,但在面向对象的上下文中,它们被看作是将BNF操作符转化为类或mixin的方法。例如,通过定义letter和digit这两个解析器,可以组合出接受字母或数字的复杂解析器,如`letterdigit`调用后加上`star`方法,得到可以匹配零次或多次重复的规则。
这种设计的优势在于它促进了语法的灵活性和复用性,使得语法可以在不同的工具之间独立定义,如解析器、语法着色器等,无需专门为每个工具定制。然而,这种灵活性也对静态类型系统的完整性提出了挑战,因为动态语言特性如反射可能会影响类型检查的精确性。
本文讨论了Newspeak语言的特点如何支持解析器组合子的使用,同时也揭示了实现过程中遇到的困难。关键词包括解析器组合子、动态编程语言(如Newspeak)、Smalltalk以及反射技术。整篇文章探讨了将解析器组合子理论应用于实际语言设计中的实践与思考,为动态语言的设计者和研究人员提供了有价值的洞察。
2013-01-31 上传
129 浏览量
2021-06-03 上传
2021-02-04 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
109 浏览量
128 浏览量
cpongm
- 粉丝: 5
- 资源: 2万+
最新资源
- 基于STM32硬件IIC DMA传输的SSD1306 OLED屏的高级应用程序
- 唯美创意PPT.zip
- witness:用于识别《见证人》中拼图模式的深度学习模型
- Free Password Manager & Authenticator & SSO-crx插件
- apkeasytool反编译工具
- automaticSkilledReaching_arduino:为Leventhal实验室中使用的鼠标单颗粒熟练触及盒开发的Arduino代码
- NSIS安装工具.rar
- torch_sparse-0.6.5-cp37-cp37m-linux_x86_64whl.zip
- 二级图文平滑下拉菜单
- IPVT Screen Capturing-crx插件
- hypothesis-gufunc:扩展假设以测试numpy通用函数
- 电信设备-基于移动终端的用户衣橱服饰管理方法.zip
- video downloadhelper 7.4及VdhCoAppSetup-1.5.0.exe
- 组合:来自训练营的项目组合
- 顶部固定、二级栏目之间相互滑动的导航菜单
- LJSuperScanParse