2013-10-03 4 views
7

मैं रेगेक्स नोटेशन से बीमार हूं। यह बदसूरत, अपठनीय, और डीबग करने के लिए असंभव है। हालांकि, गणितज्ञ दशकों तक नियमित अभिव्यक्तियों को डिजाइन करने के लिए परिमित राज्य मशीनों का उपयोग कर रहे हैं।क्या कोई ऐसा प्रोग्राम है जो मुझे एक फिनेट स्टेट मशीन ग्राफ़ का उपयोग कर रेगेक्स डिज़ाइन करने की अनुमति देता है?

Finite State Machines

मैं regexes से नाराज हो रही हैं, तो मैं जाकर एक परिमित राज्य मशीन हाथ से बाहर के रूप में यह आकर्षित करेंगे और फिर जो कुछ भी घृणित regex वाक्यविन्यास मैं में परिमित राज्य मशीन अनुवाद करने के लिए है मैं आज का उपयोग कर रहा हूँ।

क्या कोई ऐसा प्रोग्राम है जो मुझे परिमित राज्य मशीनों को डिजाइन करने और रेगेक्स को थूकने देता है?

+1

कुछ ऐसे हैं जो नियमित अभिव्यक्तियों द्वारा समर्थित हैं जो परिमित राज्य मशीनों में नहीं हैं। –

+0

मैंने इस तरह के एक कार्यक्रम के बारे में नहीं सुना है; आपको इसे स्वयं बनाना होगा। शायद इंकस्केप के लिए एक स्क्रिप्ट? – Marcin

+1

उन दिनों में जब सुस्मान एक नौसिखिया मिन्स्की थे, एक बार उनके पास आए क्योंकि पीडीपी -6 में हैकिंग बैठे थे। "तुम क्या कर रहे हो?" मिन्स्की से पूछा। "मैं टिक-टैक-टो खेलने के लिए एक यादृच्छिक वायर्ड तंत्रिका नेट प्रशिक्षण दे रहा हूं।" "नेट बेतरतीब ढंग से तार क्यों है?" मिन्स्की से पूछा। "मैं नहीं चाहता कि इसे कैसे खेलना है, इस बारे में कोई पूर्वकल्पनाएं हों।" मिन्स्की ने अपनी आंखें बंद कर दीं। "तुम अपनी आंखें क्यों बंद करोगे?" सुस्मान ने अपने शिक्षक से पूछा। "तो कमरा खाली हो जाएगा।" – FrankieTheKneeMan

उत्तर

1

JFLAP गैर नियतात्मक परिमित ऑटोमेटा, गैर नियतात्मक पुशडाउन ऑटोमेटा, बहु टेप ट्यूरिंग मशीन, व्याकरण के कई प्रकार, पार्स करने, और एल प्रणालियों सहित औपचारिक भाषाओं विषयों के साथ प्रयोग करने के लिए सॉफ्टवेयर है। इनके लिए उदाहरण बनाने और परीक्षण करने के अलावा, जेएफएलएपी एक को एक फॉर्म से दूसरे फॉर्म में निर्माण प्रमाणों के साथ प्रयोग करने की अनुमति देता है, जैसे एनएफए को डीएफए में एक न्यूनतम राज्य डीएफए में नियमित अभिव्यक्ति या नियमित व्याकरण में परिवर्तित करना।

JFLAP

+0

आह, रजिस्टरवेयर। मिठाई :-) –

2

आप अजगर जानते हैं, तो आप greenery कोशिश कर सकते हैं। पैकेज fsm परिमित राज्य मशीनों के लिए है, और lego नियमित अभिव्यक्ति वस्तुओं के लिए है। दोनों स्वतंत्र रूप से interconverted किया जा सकता है।

>>> from greenery import fsm 
>>> x = fsm.fsm(
...  alphabet={"1", "2"}, 
...  states={"A", "B", "C", "D", "E"}, 
...  initial="A", 
...  finals={"E"}, 
...  map={ 
...   "A": {"1": "C", "2": "A"}, 
...   "B": {"1": "B", "2": "D"}, 
...   "C": {"1": "E", "2": "C"}, 
...   "D": {"1": "A", "2": "B"}, 
...   "E": {"1": "C", "2": "D"} 
...  } 
...) 
>>> print(x.lego()) 
(1(11|2)*12(21*2)*1|2)*1(11|2)*1 

मैं मैं कहना चाहिए कि आपके उदाहरण परिमित राज्य मशीन दोनों एक प्रारंभिक राज्य और कोई भी अंतिम राज्यों का अभाव महसूस करते हैं, तो मैं उन्हें अनुमान लगाया। इसके अलावा, एक मनमानी एफएसएम आमतौर पर एक बहुत ही भयानक नियमित अभिव्यक्ति में परिवर्तित हो जाता है, और एक नियमित अभिव्यक्ति को सरल बनाना मुश्किल है ...

संबंधित मुद्दे

 संबंधित मुद्दे