नियमित भाव, नियमित व्याकरण और परिमित ऑटोमेटा एक ही चीज के लिए तीन अलग-अलग औपचारिकताएं हैं। उनमें से किसी से किसी भी अन्य में परिवर्तित करने के लिए एल्गोरिदम हैं।
मूल कारण जो हम तीनों के पास है वह यह है कि वे स्वतंत्र रूप से बनाए गए थे, क्लीने द्वारा सिद्ध समकक्षों के पहले सेट (साथ ही कई अन्य औपचारिकताएं भी हैं) (इस परिणाम, या उसके भाग को क्लेने का प्रमेय कहा जाता है)।
तो उस संदर्भ में, आप मॉडल को किस तरीके से चलाना चाहते हैं, इस आधार पर, वे सभी एक नियमित भाषा के तार को पहचानते हैं या उत्पन्न करते हैं, और गणितीय रूप से, इस अर्थ में, कोई अंतर नहीं है।
बेशक कभी-कभी एक मॉडल औपचारिकता के विवरण के कारण किसी विशेष कार्य के लिए दूसरे की तुलना में उपयोग करना आसान होता है। इसके अलावा जिस तरह से वे एक मानव के सिर में काम करते हैं वह अक्सर थोड़ा अलग होता है, परिमित ऑटोमेटा "महसूस" जैसे कंप्यूटर, नियमित अभिव्यक्ति "महसूस" जैसे आप छोटे सब्सट्रिंग्स से एक स्ट्रिंग का निर्माण कर रहे हैं और नियमित व्याकरण "महसूस" एक अधिक पारंपरिक व्याकरणिक की तरह किसी भाषा में किसी वाक्य की व्युत्पत्ति या वर्गीकरण (इतिहास को देखने पर अचरज की बात)।
तो दो की तुलना करने के लिए, चलो उन्हें परिभाषित करते हैं:
नियमित अभिव्यक्ति
इसलिए नियमित अभिव्यक्तियों को निम्न प्रकार से परिभाषित किया जाता है:
- ∅ एक नियमित अभिव्यक्ति है
- ε एक नियमित अभिव्यक्ति है
- एक ∈ Σए हर लिए एक नियमित अभिव्यक्ति हैएक ∈ Σ
- यदि और नियमित अभिव्यक्ति हैं
बएबी
- A ⋅ बी एक नियमित अभिव्यक्ति है (संक्षेपण)
- A ∣ बी एक नियमित अभिव्यक्ति (प्रत्यावर्तन) है
- ए* एक नियमित अभिव्यक्ति है (क्लेन स्टार)
कुछ शब्दार्थों के साथ (अर्थात कैसे हम एक स्ट्रिंग प्राप्त करने के लिए ऑपरेटरों की व्याख्या करते हैं), हमें एक नियमित भाषा से तार उत्पन्न करने का एक तरीका मिलता है।
नियमित व्याकरण
नियमित व्याकरण में एक चार टपल जहाँ गैर-टर्मिनलों का समूह होता है, टर्मिनलों का समूह होता है, प्रारंभ गैर-टर्मिनल है और एक सेट है। प्रोडक्शंस जो हमें बताते हैं कि स्टार्ट सिंबल, स्टेप बाई स्टेप को में एक स्ट्रिंग में कैसे बदला जाए । की दो से एक प्रकार से तैयार की गई प्रोडक्शंस हो सकती हैं (हालांकि दोनों नहीं):एन Σ एस पी Σ * पी( एन, Σ , पी, एस∈ एन)एनΣएसपीΣ*पी
सही रैखिक व्याकरण
गैर-टर्मिनलों , , टर्मिनल और खाली स्ट्रिंग , सभी नियम इस प्रकार हैं:सी ए εबीसीएε
- बी → ए
- बी → ए सी
- बी → ε
वाम रेखा व्याकरण
बाएं रैखिक व्याकरण समान हैं, लेकिन नियम # 2 ।बी → सीए
पंडर को चीजें
इसलिए इन परिभाषाओं को देखते हुए और उनके साथ खेलते हुए, हम देख सकते हैं कि नियमित अभिव्यक्तियाँ मेल खाने वाले नियमों की तरह दिखती हैं, या एक समय में थोड़े से निपटने के तरीके।
व्याकरण स्ट्रिंग के "लेबल" अनुभागों को लगता है, और स्ट्रिंग को मान्य करने के लिए नए लेबल के तहत समूह लेबल (यानी यदि हम से स्ट्रिंग पर प्राप्त कर सकते हैं , या इसके विपरीत, हम खुश हैं)।एस
हालाँकि ये वास्तव में एक ही मौलिक काम कर रहे हैं, और आप उनके कार्य के रूपक को कैसे देखते हैं, यह वास्तव में आप पर निर्भर है।