এলএল এবং এলআর ব্যাকরণগুলির ভাষার তাত্ত্বিক তুলনা


66

লোকেরা প্রায়শই বলে থাকে যে এলআর (কে) পার্সারগুলি এলএল (কে) পার্সারের চেয়ে বেশি শক্তিশালী । এই বিবৃতিগুলি বেশিরভাগ সময় অস্পষ্ট; বিশেষ করে, আমরা একটি নির্দিষ্ট ক্লাস তুলনা করা উচিত নয় বা সর্বাঙ্গে ইউনিয়ন ? তাহলে পরিস্থিতি আসলে কেমন? বিশেষত, আমি কীভাবে এলএল (*) ফিট করে সে সম্পর্কে আগ্রহী।kk

যতদূর আমি জানি, এলএল এবং এলআর পার্সাররা স্বীকৃত ব্যাকরণগুলির স্বতন্ত্র সেটগুলি অরথোগোনাল, সুতরাং আসুন ব্যাকরণগুলির নিজ নিজ সেটগুলি দ্বারা উত্পন্ন ভাষাগুলি সম্পর্কে কথা বলা যাক। যাক ব্যাকরণ দ্বারা উত্পন্ন ভাষা একটি দ্বারা পার্স করা যেতে পারে বর্গ বোঝাতে পার্সার, এবং অন্যান্য শ্রেণীর জন্য অনুরূপ।LR(k)LR(k)

আমি নিম্নলিখিত সম্পর্কে আগ্রহী:

  • LL(k)?LR(k)
  • i=1LL(k)?i=1LR(k)
  • i=1LL(k)=?LL()
  • LL()?i=1LR(k)

এর মধ্যে কয়েকটি সম্ভবত সহজ; আমার লক্ষ্য একটি "সম্পূর্ণ" তুলনা সংগ্রহ করা। তথ্যসূত্র প্রশংসা করা হয়।


2
সম্ভবত এটি আপনাকে সাহায্য করতে পারে! ব্যাকরণ হায়ারার্কি চিত্র
Andrea Tucci

1
@ আন্ড্রেটুকি: হ্যাঁ, তবে এটি কেবল ব্যাকরণগুলিকেই অন্তর্ভুক্ত করে, উত্পন্ন ভাষা নয়।
রাফেল

উত্তর:


60

সেখানে প্রচুর পরিমাণে কন্টেন্ট রয়েছে বলে জানা গেছে। আসুন প্রবণতা এবং যথাযথ বোঝায় । যাক অপ্রয়োজনীয়তা বোঝায়।×

যাক , ।LL=kLL(k)LR=kLR(k)

ব্যাকরণ স্তর

এলএল জন্য

  • LL(0)LL(1)LL(2)LL(2)LL(k)LLLL()
  • SLL(1)=LL(1),SLL(k)LL(k),SLL(k+1)×LL(k)

এর বেশিরভাগই রোজেনক্র্যান্টজ এবং স্টার্নস দ্বারা নির্ধারিত শীর্ষ ডাউন ব্যাকরণ সম্পর্কিত বৈশিষ্ট্যে প্রমাণিত । একটি বরং তুচ্ছ অনুশীলন। টেরেন্স পারারের এই উপস্থাপনাটি এলডি স্লাইডে স্থাপন করেছে। জারজাবেক এবং ক্র্যাভ্যাসিকের কাগজ এলএল-নিয়মিত ব্যাকরণগুলি এলএল- দেখায় , এবং তাদের প্রমাণগুলি তুচ্ছভাবে পর্যন্ত প্রসারিতSLL(k+1)×LL(k)LL()LLLLRLLLL()

এলআর এর জন্য

  • LR(0)SLR(1)LALR(1)LR(1)
  • SLR(k)LALR(k)LR(k)
  • SLR(1)SLR(2)SLR(k)
  • LALR(1)LALR(2)LALR(k)
  • LR(0)LR(1)LR(2)LR(k)LR

এগুলি সব সাধারণ অনুশীলন।

এলএল বনাম এলআর

  • LL(k)LR(k) ( ডিটারমিনিস্টিক টপ ডাউন ব্যাকরণ এবং আরও যে কোনও বাম रिकर्सিভ ব্যাকরণের বৈশিষ্ট্য)
  • LL(k)×SLR(k),LALR(k),LR(k1) (সাধারণ অনুশীলন)
  • LLLR (যে কোনও বাম পুনরাবৃত্তি ব্যাকরণ)
  • LL()×LR (বাম পুনরাবৃত্তি বনাম স্বেচ্ছাসেবক চেহারা)

ভাষা স্তর

এলএল জন্য

  • LL(0)LL(1)LL(2)LL(k)LLLL()
  • SLL(k)=LL(k)

এগুলির বেশিরভাগ ডিটারমিনিস্টিক টপ ডাউন ব্যাকরণের প্রোপার্টিগুলিতে প্রমাণিত । এলজি- এবং এলআর-নিয়মিত ব্যাকরণগুলির জন্য নিঝল্টের সমতুল্য সমস্যা দেখাচ্ছে এমন কাগজগুলির উল্লেখ করে । জারজাবেক এবং ক্রাভ্যাসিকের কাগজ এলএল-নিয়মিত ব্যাকরণগুলি এলএল- দেখায় , এবং তাদের প্রমাণগুলি তুচ্ছভাবে পর্যন্ত প্রসারিতLL(k)LL()LLLLRLLLL()

এলআর এর জন্য

  • LR(0)SLR(1)=LALR(1)=LR(1)=SLR(k)=LALR(k)=LR(k)=LR

এর মধ্যে কয়েকটি নথ দ্বারা তাঁর গবেষণাপত্রে প্রমাণিত হয়েছিল অনূদিত ভাষার অনুবাদ থেকে বাম থেকে ডানে যেখানে তিনি এলআর (কে) প্রবর্তন করেছিলেন, বাকীটি প্রমাণ করেছেন এলআর (কে) ব্যাকরণকে এলআর (1), এসএলআর (1) তে রূপান্তরিত, এবং (1,1) মিকুনাস এট -র দ্বারা সজ্জিত রাইট-কনটেক্সট ব্যাকরণগুলি।

এলএল বনাম এলআর


দুর্দান্ত উত্তর যদিও, আমি ইতিমধ্যে upvated ছিল। আমি ভাবতাম যে ফ্র্যাঙ্ক ডি রিমার তার মূল এলএলআর পেপারে এলএলআর <= এলআর প্রমাণ করেছেন? (1969?)
ব্যবহারকারী 207421

@ ইজেপি: সাবটেক যদি আপনি রাজ্যগুলিকে ভেঙে দিয়ে সংজ্ঞায়িত করেন তবে তাৎক্ষণিক is ডিআমার কেবল প্রমাণ করেছিলেন যে তাঁর নির্মাণ একই পার্সার তৈরি করেছে। ব্যাকরণ ক্লাসগুলি সমান নয়, যা একটি দুর্দান্ত অনুশীলন (বা এই সাইটের জন্য একটি দুর্দান্ত প্রশ্ন)। ভাষা শ্রেণীর সাম্যতা অনেক বেশি জটিল: আপনি যদি সত্যিই বিশদ চান তবে কাগজটি পড়ুন;)LALR(k)LR(k)LALRLR
অ্যালেক্স টেন ব্রিঙ্ক

1
@ অ্যালেক্সটেনব্রিংক আমি কাগজটি পড়েছি, এবং ফ্রাঙ্ক ডি রেমার শিখিয়েছি, তবে এটি 30+ বছর আগে ;-) সমস্ত বিবরণের জন্য ধন্যবাদ।
ব্যবহারকারী 207421

প্রতিটি অসমতার জন্য উদাহরণস্বরূপ ব্যাকরণ সংগ্রহ করা ভাল।
o11c

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