Ometa "पैटर्न मिलान के लिए एक नई ऑब्जेक्ट उन्मुख भाषा है।" मुझे ओज़ टूल्स जैसी भाषाओं में मिलान पैटर्न का सामना करना पड़ा है जो लीक्स/वाईएसी या पाइपरिंग जैसे व्याकरण को पार्स करने के लिए है। उदाहरण कोड देखने, चर्चाओं को पढ़ने और किसी मित्र से बात करने के बावजूद, मैं अभी भी ओमेटा विशेष (या कम से कम, कुछ लोगों को क्यों लगता है) की वास्तविक समझ प्राप्त करने में सक्षम नहीं हूं। कोई स्पष्टीकरण?ओमेटा विशेष क्या बनाता है?
उत्तर
यह एक धातुभाषा है, जो मैं बता सकता हूं। आप नई भाषा संरचनाएं बना सकते हैं, और डीएसएल बना सकते हैं; लेकिन सबसे आकर्षक बात यह है कि आप मौजूदा पार्सर्स से एक भाषा का विस्तार करने के लिए उपclass कर सकते हैं। वैसे भी, मैं इसके बारे में याद रख सकता हूं।
मैंने पाया इस दिलचस्प होने के लिए: http://www.moserware.com/2008/06/ometa-who-what-when-where-why.html
इसके अलावा, मेरे लिए सबसे महत्वपूर्ण, Ometa की स्क्वीक बंदरगाह बाएं पुनरावर्ती नियमों के लिए अनुमति देता है।
अपनी पीईजी विरासत से यह बैकट्रैकिंग और असीमित लुकहेड प्राप्त करता है। पिछले पार्स परिणामों के ज्ञापन रैखिक पार्स समय (लगभग हर समय (*)) के लिए अनुमति देता है।
उच्च-आदेश प्रस्तुतियों में से एक को व्याकरण को आसानी से दोबारा करने की अनुमति मिलती है।
This paper - पैकेट पार्सर्स बाएं रिकर्सन का समर्थन कर सकते हैं - बाएं रिकर्सिव गुणों को बताते हैं।
(*) पेपर की धारा 5 बताती है कि कोई सुपरलाइनर पार्स टाइम्स का सामना कर सकता है, लेकिन यह समस्या व्यावहारिक व्याकरण में प्रकट नहीं होती है।
संभवतः आप दोनों बाएं रिकर्सन और रैखिक पार्स टाइम्स नहीं हो सकते हैं, हालांकि? –
हाँ, आप यादों के कारण कर सकते हैं। वैसे, अधिकतर। पेपर की धारा 5 आगे बताती है। हाइट ऑर्डर प्रोडक्शंस के लिए –
+1 :) – elias
- 1. क्या बाध्यकारी धीमा बनाता है?
- 2. क्या बनाता है! रेल में मतलब है?
- 3. क्यों स्वचालित बनाता है?
- 4. एसक्यूएल कथन को क्या योग्य बनाता है?
- 5. शिरो से बेहतर क्या बनाता है?
- 6. क्रॉस डोमेन AJAX असुरक्षित बनाता है क्या?
- 7. क्या पीईपी 412 __slots__ अनावश्यक बनाता है?
- 8. क्या टोमकैट प्रति उपयोगकर्ता धागा बनाता है?
- 9. रूबी एक सुरुचिपूर्ण भाषा क्या बनाता है?
- 10. एसटीएल तेजी से क्या बनाता है?
- 11. क्या node.js SlowBuffers "धीमा" बनाता है?
- 12. यह "घोषणाकर्ता अमान्य" क्या बनाता है? सी ++
- 13. क्या फॉपेन फ़ाइल डिस्क्रिप्टर बनाता है?
- 14. क्या लाटेक्स कमांड एक emdash बनाता है?
- 15. टीएफएस कैसे बनाता है?
- 16. क्या कोई अच्छा विकल्प/सेटिंग्स संवाद बॉक्स बनाता है?
- 17. क्या विधि थ्रेड-सुरक्षित बनाता है? नियम क्या हैं?
- 18. मूल निष्पादन योग्य का कौन सा हिस्सा (विशेष रूप से) इसे गैर पोर्टेबल बनाता है?
- 19. QSlider अनावश्यक कदम बनाता है
- 20. फ्लोट ओवरलैपिंग डिवीज बनाता है
- 21. eclipse एक .settings निर्देशिका क्यों बनाता है?
- 22. इस विशेष XML फ़ाइल में xmlns क्या है?
- 23. क्या underscore.js में चेन फ़ंक्शन एक मोनड बनाता है?
- 24. क्या SqlCommand.Clone() एक गहरी प्रतिलिपि या उथली प्रतिलिपि बनाता है?
- 25. क्या जावा का डॉट नया कोड गंध बनाता है?
- 26. इस कोड को "एंडियन स्वतंत्र" क्या बनाता है?
- 27. क्या एक कीचेन आइटम अद्वितीय (आईओएस में) बनाता है?
- 28. ऐप्पल की पावरपीसी इतनी तेजी से क्या बनाता है?
- 29. क्या आप एक स्रोत कोड भंडार में बनाता है?
- 30. ऐप कंसोल या विंडोज फॉर्म एप्लिकेशन क्या बनाता है?
सबक्लासिंग एकमात्र तरीका नहीं है जिसमें आप व्याकरण को जोड़ सकते हैं, ओमेटा भी एक विदेशी नियम आमंत्रण तंत्र प्रदान करता है। यह तब उपयोगी होता है जब आप एक से अधिक कक्षाओं से "व्युत्पन्न" करना चाहते हैं। –