নিয়মিত বনাম প্রসঙ্গে ফ্রি ব্যাকরণ


101

আমি আমার কম্পিউটিং ভাষা পরীক্ষার জন্য অধ্যয়ন করছি , এবং আমার ধারণা প্রায় আমার মাথা গুটিয়ে রাখা সমস্যা আছে একটি ধারণা।

আমি বুঝতে পেরেছিলাম যে নিয়মিত ব্যাকরণগুলি সহজ এবং অস্পষ্টতা থাকতে পারে না তবে প্রোগ্রামিং ভাষার জন্য প্রয়োজনীয় অনেকগুলি কাজ করতে পারবেন না। আমি আরও বুঝতে পেরেছিলাম যে প্রসঙ্গমুক্ত ব্যাকরণগুলি অস্পষ্টতার অনুমতি দেয় তবে প্রোগ্রামিং ভাষার জন্য প্রয়োজনীয় কিছু জিনিস (যেমন প্যালিনড্রোমস) মঞ্জুরি দেয়।

আমার যে সমস্যাটি হচ্ছে তাতে আমি বুঝতে পারছি যে আমি নিয়মিত ব্যাকরণ ননটারমিনালগুলি টার্মিনাল বা ননটার্মিনালের পরে টার্মিনালটিতে ম্যাপ করতে পারি বা টার্মিনাল এবং নন-টার্মিনালের কোনও সংমিশ্রণে প্রসঙ্গ-रहित নন-টারমিনাল মানচিত্রগুলি জেনে এটি করতে পারি যে আমি উপরের সমস্তগুলি কীভাবে অর্জন করতে পারি ।

কেউ কি আমাকে এই সমস্ত কিছু একসাথে রাখতে সহায়তা করতে পারে?

উত্তর:


71

নিয়মিত ব্যাকরণ হয় ডান বা বাম রৈখিক, প্রসঙ্গ নিখরচত ব্যাকরণ মূলত টার্মিনাল এবং নন-টার্মিনালের সমন্বয়। সুতরাং আপনি দেখতে পাচ্ছেন যে নিয়মিত ব্যাকরণ প্রসঙ্গমুক্ত ব্যাকরণের একটি উপসেট set

উদাহরণস্বরূপ, একটি প্যালিনড্রোমের জন্য, ফর্মটি হ'ল

S->ABA
A->something
B->something

আপনি পরিষ্কারভাবে দেখতে পাচ্ছেন যে প্যালিনড্রোমগুলি নিয়মিত ব্যাকরণে প্রকাশ করা যায় না কারণ এটি ডান বা বাম লিনিয়ার হওয়া দরকার এবং এর ফলে উভয় পক্ষেই একটি নন-টার্মিনাল থাকতে পারে না।

যেহেতু নিয়মিত ব্যাকরণগুলি দ্ব্যর্থহীন, তাই প্রদত্ত নন-টার্মিনালের জন্য কেবলমাত্র একটি উত্পাদন নিয়ম রয়েছে, তবে প্রসঙ্গমুক্ত ব্যাকরণের ক্ষেত্রে একাধিক হতে পারে।


13
প্রথম: নিয়মিত ব্যাকরণ অস্পষ্ট হতে পারে (উদাহরণস্বরূপ কাই কুচেনবেকার: এস -> এএ | এ বি, বি -> এ, এ -> এ)। একমাত্র বিষয় হ'ল সিনট্যাক্স ট্রিতে নোডগুলি স্থাপন করার একমাত্র উপায় রয়েছে (উদাহরণস্বরূপ যখন নিয়মিত ব্যাকরণ ব্যবহৃত হয় তখন এসোসিয়েটিভিটির অস্পষ্টতা উপস্থিত থাকে না)। দ্বিতীয়ত: একটি অ-টার্মিনালে একটির বেশি ডান দিকে থাকতে পারে (একটি -> একটি, একটি -> Aa; এবং উইকিপিডিয়া এমনকি একটি তৃতীয় বিকল্প হিসেবে Epsilon রয়েছে: en.wikipedia.org/wiki/Regular_grammar )
user764754

4
অস্পষ্টতা তখন আসে যখন কোনও ব্যয়টি আপনার ব্যাকরণ থেকে একাধিক উপার্জনের পথে নেওয়া যেতে পারে। কেবলমাত্র নন-টার্মিনালের জন্য একাধিক প্রোডাকশন বিধি থাকা ব্যাকরণকে দ্বিধাগ্রস্থ করে না
সুজয়

11
এই উদাহরণটি আসলে ভুল। যদি আমরা পুরো নিয়মগুলি হবার কল্পনা করি A-> a | cএবং B->bতারপরে এই ব্যাকরণটি নন-প্যালিনড্রোমগুলিকে অনুমতি দেয়। উদাহরণস্বরূপ, আমি উত্পাদন করতে পারে: S->ABA->aBA->abA->abc। সমস্যাটি হ'ল আমরা প্রথম নিয়মে দুটি পরিবর্তনশীল তৈরি করতে চাই না, বরং দুটি টার্মিনাল তৈরি করতে চাই। ব্যাকরণের জন্য প্যালিনড্রোমগুলির অনুমতি দেয়:S -> aSa | bSb | a | b
gdiazc

সেখানে palindromes যে পারেন palindromes করে একটি একক অক্ষর দ্বারা গঠিত: একটি নিয়মিত ব্যাকরণ প্রকাশ করা। উদাহরণস্বরূপ, S -> aSa | eএবং a(aa)*aউভয়ই একটি নিয়মিত ভাষা বর্ণনা করে। এটি দেখায় যে কোনও সিএফজি একটি নিয়মিত ভাষা বর্ণনা করতে পারে, এমনকি যদি এটি বাম বা ডান রেখার লঙ্ঘন করে। স্বীকার করা, এটি একটি খুব স্পষ্টভাবে প্রকাশিত প্যালিনড্রোম ..
মার্টিজন

ভাবতে আসুন, এই উত্তরটি আসলে ভুল। এটিতে বলা হয়েছে "প্রসঙ্গমুক্ত" ব্যাকরণটি মূলত টার্মিনাল এবং নন-টার্মিনালের কোনও সংমিশ্রণ u "তবে, টু ^ এনভিডাব্লিউএমসিএকিজেড টার্মিনাল এবং নন-টার্মিনালের সংমিশ্রণ, তবে প্রসঙ্গ-মুক্ত নয়
চার্লি মার্টিন

58

আমার মনে হয় আপনি যা ভাবতে চান তা বিভিন্ন পাম্পিং লেমটা। একটি নিয়মিত ভাষা একটি সসীম অটোমেটন দ্বারা স্বীকৃত হতে পারে। একটি প্রসঙ্গ-মুক্ত ভাষাতে একটি স্ট্যাকের প্রয়োজন হয়, এবং একটি প্রসঙ্গে সংবেদনশীল ভাষার জন্য দুটি স্ট্যাকের প্রয়োজন হয় (এটির জন্য এটির পুরো ট্যুরিং মেশিনের প্রয়োজন বলার সমান))

সুতরাং, আমরা যদি নিয়মিত ভাষার জন্য পাম্পিং লেমাকে নিয়ে ভাবি, তবে এটির মূলত যা বলা হয় তা হ'ল যে কোনও নিয়মিত ভাষা তিন ভাগে বিভক্ত করা যেতে পারে, x , y এবং z , যেখানে ভাষার সমস্ত উদাহরণ xy * z তে থাকে (যেখানে * Kleene পুনরাবৃত্তি, অর্থাত, 0 বা তার বেশি কপি হয় Y ।) আপনি মূলত একটি "nonterminal" আছে প্রসারণ করা সম্ভব।

এখন, প্রসঙ্গ-মুক্ত ভাষা সম্পর্কে কী বলা যায়? একটা অনুরূপ এর প্রেক্ষাপটে মুক্ত ভাষার জন্য পাম্পিং থিম যে পাঁচটি অংশ, মধ্যে ভাষায় স্ট্রিং বিরতি uvxyz , এবং যেখানে ভাষা সমস্ত উদাহরণ রয়েছে UV আমি XY আমি z- র , আমি জন্য ≥ 0 এখন, আপনি দুই "nonterminals " এটি একইরূপে তৈরি করা যায় বা পাম্প করা যায়


10
একটি প্রসঙ্গে সংবেদনশীল ভাষার জন্য সম্পূর্ণ টিউরিং মেশিনের প্রয়োজন হয় না। একটি লিনিয়ার বাউন্ডেড অটোমেটন যথেষ্ট। এটি একটি টুরিং মেশিন যার টেপ সীমাবদ্ধ, আকারটি ইনপুট স্ট্রিংয়ের কিছু লিনিয়ার ফাংশন দ্বারা আবদ্ধ।
ডেভ ক্লার্ক

16

নিয়মিত এবং প্রসঙ্গ নিখরচ্য ব্যাকরণের মধ্যে পার্থক্য: (এন, Σ, পি, এস): টার্মিনাল, ননটার্মিনালগুলি, প্রযোজনাগুলি, রাষ্ট্রের শুরু টার্মিনাল প্রতীক

Formal আনুষ্ঠানিক ব্যাকরণ দ্বারা সংজ্ঞায়িত ভাষার প্রাথমিক চিহ্নগুলি

C এবিসি

অবিচ্ছিন্ন চিহ্ন (বা সিনট্যাকটিক ভেরিয়েবল)

Rules উত্পাদনের বিধি অনুসারে টার্মিনাল প্রতীকগুলির গোষ্ঠী দ্বারা প্রতিস্থাপিত

● এবিসি

নিয়মিত ব্যাকরণ: ডান বা বাম নিয়মিত ব্যাকরণ ডান নিয়মিত ব্যাকরণ, সমস্ত নিয়ম ফর্মগুলি মান্য করে

  1. বি → একটি যেখানে বি এন এর একটি নিয়মিত এবং একটি terminal এর মধ্যে একটি টার্মিনাল Σ
  2. বি → এসি যেখানে বি এবং সি এন হয় এবং একটি Σ হয় Σ
  3. বি → ε যেখানে বি এন এ থাকে এবং খালি স্ট্রিং, অর্থাৎ দৈর্ঘ্যের স্ট্রিংকে বোঝায়

নিয়মিত ব্যাকরণ ছেড়ে, সমস্ত নিয়ম ফর্ম অনুসরণ করে obey

  1. A → a যেখানে A হ'ল N এ নমনীয় এবং একটি a এ টার্মিনাল Σ
  2. A → বা যেখানে A এবং B রয়েছে N এবং a in-এ Σ
  3. A → A যেখানে A N এ থাকে এবং ε খালি স্ট্রিং

প্রসঙ্গমুক্ত ব্যাকরণ (সিএফজি)

○ আনুষ্ঠানিক ব্যাকরণ যেখানে প্রতিটি উত্পাদনের নিয়ম ভি → ডাব্লু রূপ ধারণ করে

। ভি একটি একক অবিচ্ছিন্ন প্রতীক

○ ডাবলু টার্মিনাল এবং / বা ননটারমিনালগুলির একটি স্ট্রিং (ডাব্লু খালি থাকতে পারে)


5

নিয়মিত ব্যাকরণ: - উত্পাদিত ব্যাকরণ নিম্নরূপ:

V->TV or VT
V->T

যেখানে ভি = ভেরিয়েবল এবং টি = টার্মিনাল

আরজি বাম লিনিয়ার ব্যাকরণ বা ডান লাইনার ব্যাকরণ হতে পারে, তবে মাঝারি রৈখিক ব্যাকরণ নয়।

আমরা জানি যে সমস্ত আরজি লিনিয়ার ব্যাকরণ তবে কেবল বাম লিনিয়ার বা ডান লিনিয়ার ব্যাকরণ আরজি are

একটি নিয়মিত ব্যাকরণ অস্পষ্ট হতে পারে।

S->aA|aB
A->a
B->a

দ্ব্যর্থহীন ব্যাকরণ: - একটি স্ট্রিং এক্সের জন্য তাদের উপস্থিতি একাধিক এলএমডি বা আরএমডি এর চেয়ে বেশি বা একাধিক পার্স গাছ বা একটি এলএমডি এবং একটি আরএমডি কিন্তু উভয়ই পৃথক পার্স গাছ উত্পাদন করে।

                S                   S

              /   \               /   \
             a     A             a     B
                    \                   \
                     a                   a

এই ব্যাকরণটি অস্পষ্ট ব্যাকরণ কারণ দুটি পার্স গাছ।

সিএফজি: - এর ব্যাকরণটি সিএফজি হতে বলে যদি এর উত্পাদন ফর্মটিতে থাকে:

   V->@   where @ belongs to (V+T)*

ডিসিএফএল: - যেমনটি আমরা জানি যে সমস্ত ডিসিএফএল হ'ল এলএল (1) ব্যাকরণ এবং সমস্ত এলএল (1) এলআর (1) হয় তাই এটি কখনই অস্পষ্ট হয় না। সুতরাং ডিসিএফজি কখনই অস্পষ্ট হয় না।

আমরা আরও জানি যে সমস্ত আরএল ডিসিএফএল তাই আরএল কখনই অস্পষ্ট না হয়। দ্রষ্টব্য যে আরজি অস্পষ্ট হতে পারে তবে আরএল নয়।

সিএফএল: সিএফএল মে দ্বিপাক্ষিক হতে পারে বা নাও পারে।

দ্রষ্টব্য: আরএল কখনই সহজাতভাবে অস্পষ্ট হয় না।


4

নিয়মিত অভিব্যক্তি

  • লেক্সিকাল বিশ্লেষণের ভিত্তি
  • নিয়মিত ভাষা উপস্থাপন করুন

প্রসঙ্গ ফ্রি ব্যাকরণ

  • বিশ্লেষণের ভিত্তি
  • ভাষা নির্মাণের প্রতিনিধিত্ব করুন

এখানে চিত্র বর্ণনা লিখুন


নাহ, এটি সংক্ষিপ্ত বিবরণ, দয়া করে আবার পড়ুন এবং চিত্রটি দেখুন।
আহমেদ সালেম

3

ব্যাকরণটি প্রসঙ্গমুক্ত হয় যদি সমস্ত উত্পাদনের নিয়মগুলির ফর্ম থাকে: ক (যা, কোনও নিয়মের বাম দিকটি কেবল একটি একক পরিবর্তনশীল হতে পারে; ডান দিকটি সীমাহীন এবং টার্মিনাল এবং ভেরিয়েবলগুলির কোনও ক্রম হতে পারে)। আমরা একটি ব্যাকরণকে 4-টিউপল হিসাবে সংজ্ঞায়িত করতে পারি যেখানে ভি একটি সীমাবদ্ধ সেট (ভেরিয়েবল), _ একটি সীমাবদ্ধ সেট (টার্মিনাল), এস হ'ল সূচনা পরিবর্তনশীল, এবং আর একটি নিয়মের একটি সীমাবদ্ধ সেট, যার প্রতিটি ম্যাপিং ভি
নিয়মিত ব্যাকরণ হয় ডান বা বাম লিনিয়ার, প্রসঙ্গ নিখরচত ব্যাকরণ মূলত টার্মিনাল এবং নন-টার্মিনালের সমন্বয়। তাই আমরা বলতে পারি যে নিয়মিত ব্যাকরণ প্রসঙ্গমুক্ত ব্যাকরণের একটি উপসেট। এই বৈশিষ্ট্যগুলির পরে আমরা বলতে পারি যে প্রাসঙ্গিক ফ্রি ল্যাঙ্গুয়েজ সেটেও নিয়মিত ভাষা সেট থাকে


-1

মূলত নিয়মিত ব্যাকরণটি প্রসঙ্গমুক্ত ব্যাকরণের একটি উপসেট, তবে আমরা বলতে পারি না প্রতিটি প্রসঙ্গে মুক্ত ব্যাকরণ একটি নিয়মিত ব্যাকরণ। মূলত প্রাসঙ্গিক ব্যাকরণ অস্পষ্ট এবং নিয়মিত ব্যাকরণ অস্পষ্ট হতে পারে।


-4

একটি নিয়মিত ব্যাকরণ কখনই অস্পষ্ট হয় না কারণ এটি হয় বাম লিনিয়ার বা ডান লিনিয়ার তাই আমরা নিয়মিত ব্যাকরণের জন্য দুটি সিদ্ধান্ত গাছ তৈরি করতে পারি না এটি সর্বদা দ্ব্যর্থহীন is তবে নিয়মিত ব্যাকরণ ব্যতীত অন্য সবই নিয়মিত হতে পারে বা নাও হতে পারে


4
@ দিনেশ একটি নিয়মিত ব্যাকরণ অস্পষ্ট হতে পারে। মনে রাখবেন যে যদি দুটি পৃথক সিনট্যাক্স গাছ থাকে এবং একটি সিনট্যাক্স ট্রি লেবেলযুক্ত থাকে তবে ব্যাকরণটি দ্ব্যর্থক। সুতরাং আইসোমরফিক গাছগুলি বিভিন্ন গাছ। অর্থাত্ এস -> এএ এর মতো একটি সাধারণ ব্যাকরণ এ বি, বি -> এ, এ -> এ দ্ব্যর্থহীন যেহেতু 'আ' শব্দের জন্য দুটি সিনট্যাক্স গাছ রয়েছে যা বিস্মৃত কিন্তু পৃথক।
কাই কুচেনবেককার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.