首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么让Ometa变得特别?

是什么让Ometa变得特别?
EN

Stack Overflow用户
提问于 2008-09-19 23:41:55
回答 2查看 4.1K关注 0票数 21

Ometa是“一种用于模式匹配的新的面向对象语言”。我以前在Oz tools等语言中遇到过模式匹配,用于解析Lexx/Yacc或Pyparsing等语法。尽管查看了示例代码,阅读了讨论,并与朋友交谈,但我仍然无法真正理解Ometa的特别之处(或者至少,为什么有些人认为它是特别的)。有什么解释吗?

EN

回答 2

Stack Overflow用户

发布于 2008-12-10 09:27:13

此外,对我来说最重要的是,Ometa的Squeak端口允许使用左递归规则。

从它的PEG传统,它得到了回溯和无限的前瞻。先前解析结果的记忆允许线性解析时间(几乎所有时间(*))。

高阶产生式允许人们轻松地重构语法。

This paper - Packrat解析器可以支持左递归-解释左递归属性。

(*)本文的第5节解释了超线性解析时间,但这个问题在实际语法中并不明显。

票数 12
EN

Stack Overflow用户

发布于 2008-09-20 05:34:20

据我所知,这是一种元语言。您可以创建新的语言构造,也可以创建DSL;但最引人注目的是,您可以从现有解析器派生子类来扩展一种语言。不管怎么说,这就是我所记得的。

我发现这很有趣:http://www.moserware.com/2008/06/ometa-who-what-when-where-why.html

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/106431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档