Ometa是「一種新的面向對象的模式匹配語言」。我在Oz工具等語言中遇到了模式匹配,以便在之前解析像Lexx/Yacc或Pyparsing這樣的語法。儘管查看示例代碼,閱讀討論以及與朋友交談,但我仍然無法真正瞭解Ometa的特色(或者至少爲什麼有些人認爲它)。任何解釋?什麼使Ometa特別?
23
A
回答
8
這是一個元語言,從我可以告訴。您可以創建新的語言結構,並創建DSL;但最引人注目的是,您可以從現有解析器中繼承子類來擴展語言。無論如何,這正是我所能記住的。
我發現這很有趣:http://www.moserware.com/2008/06/ometa-who-what-when-where-why.html
11
而且,最重要的是我,Ometa的佳樂端口允許左遞歸規則。
從它的PEG遺產中獲得回溯和無限的前瞻。先前解析結果的記憶允許線性解析時間(幾乎所有時間(*))。
高階製作允許人們輕鬆重構語法。
This paper - Packrat解析器可以支持左遞歸 - 解釋左遞歸屬性。 (*)本文的第5部分解釋說,可能會遇到超線性解析時間,但是這個問題並沒有在實際的語法中體現出來。
+0
大概你不能有左遞歸和線性解析時間,但? – 2009-02-16 17:50:45
相關問題
- 1. 如何使用ometa-js
- 2. Scheme中的「Stack」。什麼使它特別?
- 3. 爲什麼我們特別使用JMS?
- 4. 什麼是\ 003特別的?
- 5. Indexhibit有什麼特別之處?
- 6. 什麼是VAS?溝通是否特別?
- 7. 有什麼特別的:conditions => [a_field IN(..,..,..)]?
- 8. 80端口有什麼特別之處?
- 9. prn.csv有什麼特別之處?
- 10. Unix時間有什麼特別之處?
- 11. c中有什麼特別的字符?
- 12. UI線程有什麼特別之處?
- 13. 爲什麼(爲getpagesize() - 1)特別?
- 14. 關閉有什麼特別之處?
- 15. `str_replace`有什麼特別之處?
- 16. const @「SomeString」有什麼特別之處?
- 17. ashmem有什麼特別的權力?
- 18. 布爾值是什麼特別?
- 19. 屬性有什麼特別之處?
- 20. 爲什麼在MySQL中_特別?
- 21. 關於0x55AA有什麼特別之處?
- 22. wget有什麼特別的嗎?
- 23. 有什麼特別的考慮使用xpaths使用HTML抓取?
- 24. Ruby中_有什麼特別的含義,你爲什麼使用它
- 25. 與C#一起使用GhostDocs有什麼特別的好處?
- 26. 有什麼特別的使用最小高度的百分比?
- 27. 什麼是鹽的使用,特別是「干擾」字
- 28. 爲什麼SQL ID序列不同步(特別是使用Postgres)?
- 29. requst.getContextPath()和basePath有什麼區別?特別在集羣
- 30. Git特性分支有什麼特別之處嗎?
子類化不是您可以將語法組合起來的唯一方式,ometa還提供了一個外部規則調用機制。當你想從多個類「派生」時,這很有用。 – 2012-01-18 05:09:25