EPAL কে স্বীকৃত এমন কোন ননজেনারাল সিএফজি পার্সিং অ্যালগরিদম আছে কি?


23

EPAL, এমনকি প্যালিনড্রোমগুলির ভাষা, নিম্নলিখিত বর্ণনামূলক প্রাসঙ্গিক মুক্ত ব্যাকরণ দ্বারা উত্পন্ন ভাষা হিসাবে সংজ্ঞায়িত করা হয়:

Saa

Sbb

SaSa

SbSb

EPAL অনেকগুলি পার্সিং অ্যালগরিদমের 'নিষ্ক্রিয়': আমি এখনও দ্ব্যর্থহীন সিএফজির পক্ষে এমন কোনও পার্সিং অ্যালগরিদমের মুখোমুখি হতে পারি নি যা ভাষার বর্ণনাকারী কোনও ব্যাকরণকে পার্স করতে পারে। এটি প্রায়শই দেখানোর জন্য ব্যবহৃত হয় যে এখানে স্পষ্টতই সিএফজি রয়েছে যা নির্দিষ্ট পার্সার দ্বারা পার্স করা যায় না। এটি আমার প্রশ্নকে অনুপ্রাণিত করেছে:

EPAL এ কাজ করে এমন কিছু অসম্পূর্ণ সিএফজি গ্রহণ করার জন্য কি কিছু পার্সিং অ্যালগরিদম রয়েছে?

অবশ্যই, কেউ ব্যাকরণের জন্য একটি অ্যাড-হক দ্বি-পাস পার্সার ডিজাইন করতে পারে যা লিনিয়ার সময়ে ভাষাকে পার্স করে। আমি EPAL কে মাথায় রেখে বিশেষভাবে ডিজাইন করা হয়নি এমন পদ্ধতিগুলির বিশ্লেষণে আগ্রহী।


1
আমি জিজ্ঞাসা করতে প্রায় ভয় করি: পুনরাবৃত্ত বংশোদ্ভূত দ্বারা এলএল (1) এর মধ্যে কী ভুল?
রাফেল

3
নন-ব্যাকট্র্যাকিং পুনরাবৃত্তির উত্স EPAL হ্যান্ডেল করতে পারে না কারণ ভাষা কোনও কে-এর জন্য এলএল (কে) নয়। ব্যাকট্র্যাকিংয়ের সাথে পুনরাবৃত্তীয় বংশোদ্ভূত সময়ে ব্যাকরণটি পরিচালনা করতে পারে , তবে এটি একটি সাধারণ অ্যালগরিদম হিসাবে ঘৃণ্যতম সবচেয়ে খারাপ-আচরণ আচরণ, যা আমি খুঁজছি না। O(n2)
অ্যালেক্স দশ ব্রিংক

তাত্পর্যপূর্ণ নয়, এটি চতুর্ভুজযুক্ত। ( 2 এন ) হ'ল ঘৃণ্য। O(N2)O(2N)
ভিক্টর স্টাফুস

1
@ ভিক্টর: ব্যাকট্র্যাকিংয়ের কিছু ব্যাকরণকারীর উপর সূচকীয় আচরণ রয়েছে, কেবল এই বিশেষ ব্যাকরণের উপর নয়। তবুও, এটি একটি অ্যালগরিদম যা অস্পষ্ট ব্যাকরণগুলিতে কাজ করে তা আমার প্রশ্নের উত্তর হিসাবে ছাড় দেয়।
অ্যালেক্স দশ ব্রিংক

1
@ জ্যামদ: আমার উদ্দেশ্যটি ভাষাটি বিশ্লেষণ করার নয় (লিনিয়ার সময়ে আপনি এটি তুচ্ছভাবে করতে পারেন), তবে আমার কৌতূহলকে মেটানোর জন্য: আমি দেখেছি যে এটি এমন ভাষার উদাহরণ হিসাবে ব্যবহৃত হয়েছে যা পার্সিং পদ্ধতিতে পার্স করা যায় না অনেকবার যে আমি আগ্রহী যদি এমন কিছু পার্সিং পদ্ধতি থাকে যা এটি সনাক্ত করে।
অ্যালেক্স দশ ব্রিংক

উত্তর:


14

আপনার নিজের ঝুঁকিতে পার্সিং কৌশলের নিম্নলিখিত স্কেচটি বিবেচনা করুন।

কেবলমাত্র এক প্রান্ত থেকে ইনপুটটি পড়ার পরিবর্তে আমরা উভয় পক্ষ থেকে পড়ি এবং মেলানো নিয়মের সন্ধান করি। আমরা এটি পুনরাবৃত্তীয় বংশদ্ভুত শৈলীতে করতে পারি; তে একটি কলে , উপসর্গ ডাব্লু এবং ইনপুটটির প্রত্যয় v সন্ধান করুন যেমন একটি নিয়ম A w B v রয়েছে , বাকী শব্দের উপর B ( ) এ নামুন। যদি কোনও মিলে যাওয়ার নিয়ম না থাকে তবে শব্দটি প্রত্যাখ্যান করুন।A()wvAwBvB()

এই অ্যালগরিদম সমস্ত লিনিয়ার, দ্ব্যর্থহীন ব্যাকরণকে পার্স করে। এটা তোলে রৈখিক সময় লাগে যদি সব নিয়ম জোড়া এবং একটি W ' বি ' বনাম ' আছে W পি W ' বা বনাম গুলি বনাম ' ¹। এর মধ্যে EPAL অন্তর্ভুক্ত। অন্যথায় আমাদের সামনের দিকে তাকানো দরকার যাতে আমরা Θ ( n 2 ) সময় নিতে পারি ।AwBvAwBvwpwvsvΘ(n2)

ধারণাটি অ-রৈখিক ব্যাকরণগুলির জন্য মোটেই কার্যকর হয় না। লিনিয়ার তবে অস্পষ্ট ব্যাকরণগুলি সাধারণত ব্যাকট্র্যাকিং ছাড়াই পার্স করা যায় না (কমপক্ষে নেতিবাচক ইনপুটগুলির জন্য)।


  1. মানে এখানে W বনাম এবং V W , অর্থাত্ তন্ন তন্ন শব্দ অন্যান্য একটি প্রিফিক্স। Suff গুলি প্রত্যয়গুলির জন্য অনুরূপ।wpvwvvws

1
অসাধারণ! ঠিক আমি খুঁজছেন ছিল কি. এটি দুর্দান্ত যে কোনও ভাষা যে কোনও কে-এর জন্য এমন একটি সাধারণ অ্যালগরিদম দ্বারা পার্সেবল। NLR(k)k
অ্যালেক্স দশ ব্রিংক

1
রৈখিক ব্যাকরণ: এই আরো কিছু চিন্তার দান পর, আমি আপনার বর্ণনার মধ্যে একটি ছোটখাট ত্রুটি আবিষ্কৃত দ্ব্যর্থহীন, তবে আপনি বর্ণনা করার মতো কোনও অনন্য উপসর্গ নেই। এখনও একটি অনন্য উপসর্গ আছে, তবে এটি পেতে আপনাকে অযৌক্তিক অভ্যন্তরের ভিতরে থাকতে হবে এবং আপনার চলমান সময়টি ( এন 2 ) হয়ে যায় । আপনার অ্যালগরিদম যদিও পি এল তে কাজ করে । SaAb|aBb,Aa,BbO(n2)EPAL
অ্যালেক্স দশ ব্রিংক

পছন্দ করুন আমি এটির জন্য অ্যাকাউন্টে সম্পাদনা করেছি।
রাফেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.