"ড্যাংলিং অন্য" সমস্যার সমাধান কি "ম্যাচের নিকটতম" ব্যতীত রয়েছে?


9

নিম্নলিখিত প্রসঙ্গমুক্ত ব্যাকরণ একটি "ঝাঁকুনি অন্য" ধরণের অস্পষ্টতা উপস্থাপন করে (কল্পনা করুন যে স্ট্যান্ড এবং দাঁড়ায় এবং অন্য কোনও ধরণের নির্দেশনা বা ব্লককে বোঝায়): example উদাহরণস্বরূপ, কে বা as হিসাবে পার্স করা যায় এই ব্যাকরণের জন্য এটি সবচেয়ে সহজ / সংক্ষিপ্ত अस्पष्ट শব্দ)।aif expr thenbelsec

SaSbS|aS|c
aacbc(a(acbc))(a(ac)bc)

এই "ঝাঁকুনি অন্য" অস্পষ্টতার সমাধানের "স্ট্যান্ডার্ড" উপায়টি "অন্যথায়" ( ) বিবৃতিটিকে নিকটবর্তী / অন্তর্দূতের সাথে "যদি-তবে" ( ) সাথে যুক্ত করতে বাধ্য করে। এটি নিম্নলিখিত হিসাবে সম্পাদন করা যেতে পারে: এই ব্যাকরণটি দ্ব্যর্থহীন। উপরের উদাহরণে এটি বাধ্য করে ।ba

SaTbS|aS|cTaTbT|c
(a(acbc))

প্রশ্ন: সেখানে অস্পষ্টতা যে জোর দেবে সমাধান করতে অন্য প্রাকৃতিক উপায় আছে কি এর পার্স ? অন্য কথায়, আমি এমন একটি ব্যাকরণের সন্ধান করছি যা উপরের দু'টির মতো একই ভাষা তৈরি করে, এটি দ্ব্যর্থহীন, এবং এটি হিসাবে পার্স করে ।(a(ac)bc)aacbcaacbc(a(ac)bc)

মন্তব্য: আমার প্রথম প্রয়াসটি নিম্নরূপ ছিল: যা প্রয়োজন হিসাবে অস্পষ্টতাকে সমাধান করে - তবে এই ব্যাকরণটি এখনও অস্পষ্ট: হিসাবে বা হিসাবে পার্স করা যায় ।

SaSbS|aU|cUaU|c
aacbcaacbacbc(a(ac)b(acbc))(a(acb(ac))bc)

1
এবং আপনার শেষ উদাহরণে, সম্ভাব্য দুটি পার্সগুলির মধ্যে কোনটিকে আপনি "প্রাকৃতিক", বা সঠিক হিসাবে বিবেচনা করছেন এবং কেন?
ধনী 3

@rici হ্যাঁ, এটি একটি জটিল প্রশ্ন !, এবং আমি জানি না। আমি একটি দ্ব্যর্থহীন ব্যাকরণ দিয়ে খুশি হব যা হয় পার্সিং তৈরি করে । আমি কি বেশিরভাগই যত্নশীল যে (আরো অনেক কিছু দিয়ে 'ছাড়া গুলি ' গুলি) সাথে মিলে যায় -th গত সঙ্গে -th (এবং পাতার অন্তরতম 'র অপ্রতিম)। aacbacbcaaaaaacbcbcbcabkbkaa
গ্রো-তেসেন

উত্তর:


7

এই সমস্যাটি এমন কোনও অভিব্যক্তিটির সাথে বন্ধুত্বের মিলের সমস্যার হুবহু অ্যানালগ যা হ'ল ঘনিষ্ঠ বন্ধনীর কিছু বাদ দেওয়া হয়েছে। এখানে একটি "যদি" (বা প্রতিনিধি ব্যাকরণে) হ'ল একটি উন্মুক্ত বন্ধনী এবং একটি "অন্য" ( ) একটি ঘনিষ্ঠ বন্ধনী। ( এস এবং এর ক্রম থেকে আপনি প্রতিটি আগে একটি এবং একটি শেষে রেখে যান্ত্রিকভাবে এস sertোকাতে পারেন )) কারণ এটি আমার প্যারেন্টিস্ট মস্তিষ্কের সাথে আরও ভাল ফিট করে, তাই আমি লিখি যেন হাতের সমস্যা ছিল।ababcb

Traditionalতিহ্যবাহী "ম্যাচটি নিকটতম" ড্যাংলিং-অন্য রেজোলিউশনের সাথে সাম্প্রতিকতম-এখনও-মিল নেই open এর অর্থ হ'ল ম্যাচ খোলার সাথে এর ম্যাচিং বন্ধের মধ্যে কোনও মিল নেই or

একটি সম্ভাব্য বিকল্প হ'ল প্রতিটি ঘনিষ্ঠর সাথে প্রথমতম সম্ভাব্য অতুলনীয় ওপেনের সাথে মিল। এখানে "সম্ভাব্য" এর অর্থ হ'ল প্যারেন্টিক নেস্টিং লঙ্ঘন না করে খোলা মেলা যায় (যেমন প্রথম ইন সম্ভবত শেষের সাথে মেলে না )।(()())

এই ম্যাচটি বাইরে-বাইরে করতে হবে, যাতে সমস্ত ঘেরযুক্ত জোড়গুলি মিল না হওয়া পর্যন্ত বন্ধের জন্য কোনও ম্যাচ চেষ্টা করা না যায়। এই সত্যটি সীমানা বর্ণনাকারী অ্যালগরিদম সহ একটি পার্স উত্পাদন করা অসম্ভব করে তোলে, যেহেতু পার্সকে উভয় প্রান্ত থেকে ভিতরের দিকে কাজ করতে হয়, স্ট্রিংটিকে সম্পূর্ণ মিলিত বিভাগগুলিতে বিভক্ত করার পরে (কারণ এটি সম্ভাব্য ম্যাচের পরিসরকে কার্যকরভাবে সীমাবদ্ধ করে)।

যাইহোক, কোনও অনলাইন বাম থেকে ডান পার্সার উপস্থিত নেই এই বিষয়টি বোঝায় না যে কোনও স্পষ্টতই সিএফজি নেই। (স্পষ্টত: একটি উদাসীন ভাষা অবশ্যই উভয় প্রান্ত থেকে মাঝের দিকে পার্স করা উচিত, তবে একটি স্পষ্ট ব্যাকরণ লিখতে সহজ) write

"সর্বাধিক ম্যাচ" প্রথম বন্ধনী সমস্যাটির জন্য ব্যাকরণ তৈরি করতে, আমি এই বিষয়টির উপর নির্ভর করেছি যে একটি ম্যাচ খোলার সাথে কোনও মিল নেই followed যদি এটি হয় তবে সবচেয়ে দূরের ম্যাচের সম্পত্তিটি প্রয়োগ করা হত না কারণ তুলনা না করা ওপেনটি ম্যাচিং ওপেনের ঘনিষ্ঠটির সাথে মিলে যেতে পারে, সুতরাং এটি তুলনামূলকভাবে সত্য যে দূরবর্তী ম্যাচের সম্পত্তি লঙ্ঘন করে।

সুতরাং এখানে সামান্য চতুর ব্যাকরণ:

SU|MUT|aUbT|aUbc|aMbUMaMbM|cTaT|ac

S শুরুর প্রতীক; সম্পূর্ণরূপে মেলে বিবৃতি; স্পষ্টভাবে অপ্রতিম বিবৃতি হয় (যার মানে তারা অন্তত একটি অপ্রতিম অন্তর্ভুক্ত , তাই তারা খালি রাখা যাবে না) এবং একটি "লেজ" শুধুমাত্র অপ্রতিম গঠিত হয় গুলি। তুলনাহীন ওপেন সম্পর্কে উপরোক্ত ঘটনাটি সরাসরি ব্যাকরণ থেকে পড়তে পারে: সমস্ত মিলহীন ওপেন থেকে উদ্ভূত হয় , একটি কেবল একটি এর শেষে উপস্থিত হতে পারে , এবং কেবলমাত্র দ্বারা অনুসরণ করা যায় ।MUaTaTTUUT

খালি স্ট্রিংয়ের সাথে আটকাতে আড়ষ্টতা আসে । এটি আমি উদ্দীপক অস্পষ্টতাগুলি বিবেচনা করে তার একগুচ্ছ প্রতিরোধ করে: তারা এই অর্থে উত্সাহী যে সমস্ত বিকল্প পার্সে ওপেন এবং বন্ধের মিল রয়েছে। যদি nullable হতে অনুমতি দেওয়া হয়, এটি একটি সম্পূর্ণ সুষম স্ট্রিং আহরণ হবে। যেহেতু , ফলস্বরূপ, , এটি এমন একটি অস্পষ্টতার দিকে পরিচালিত করে যাতে আপনি একটি সম্পূর্ণ ভারসাম্য খালি পরে একটি সিরিজ হিসাবে বিবেচনা করতে পারেন , বা একটি কম পরে সম্পূর্ণ ভারসাম্যযুক্ত ।UUSMUSMUMU

সম্ভবত আমি যেটি বেছে নিয়েছি তার চেয়ে আরও ভাল কাজ আছে। তবে এইটি কাজ করছে বলে মনে হচ্ছে, এবং এটি বাইসনের জিএলআর পার্সারের সাথে ভাল খেলেছে যা আমি এটি পরীক্ষার জন্য ব্যবহার করতাম; আপনি যদি অস্পষ্টতাটি পরিচালনা করতে অতিরিক্ত কোড না লিখেন এবং পার্সারটি অস্পষ্ট পার্স সম্পর্কে অভিযোগ করেন এবং আমি এটি করতে খুব অলস হই। আমি এটি 20 টি পর্যন্ত খোলা + বন্ধের স্ট্রিং দিয়ে পরীক্ষা করেছি এবং মনে হয় যে সঠিকভাবে-নেস্টেড ক্রমগুলির জন্য ভুল-নেস্টেড সিকোয়েন্সগুলির জন্য পার্স তৈরি না করেই এটি একটি স্পষ্ট পার্স তৈরি করেছে।


অভিনন্দন যা আমি শেষ করেছি তা অর্জনের জন্য সম্ভবত অসম্ভব! আমি পরীক্ষামূলকভাবে পরীক্ষা করে দেখলাম যে দৈর্ঘ্য -16 এর শব্দের জন্য এই ব্যাকরণটি প্রকৃতপক্ষে দ্ব্যর্থহীন এবং আমার প্রশ্নে একই শব্দগুলি উত্পন্ন করে। এখন এটি কীভাবে কাজ করে তা আমাকে বিস্তারিতভাবে বুঝতে হবে!
গ্রো-তেসেন

@ গ্রো-তেন: আমি আশা করি দ্বিতীয় অনুচ্ছেদটি এটি ব্যাখ্যা করতে সহায়তা করবে। ব্যাকরণটি বেশ সরল যা অস্পষ্টতাগুলি রেখে গেছে: ( যেমন আমার সমাধান হিসাবে রয়েছে, ) এবং সমস্যাটি নিয়ে ভাবতে ভাবতে আমি এটাই সামনে নিয়ে এসেছি। নিজেকে বোঝানোর জন্য আমাকে কিছুটা সময় লেগেছে যে দ্ব্যর্থক বিশ্লেষণকে এড়িয়ে চলার জন্য কে অযোগ্য করে তোলা দরকার ছিল (যদিও আমি যেমন বলেছি যে, অস্পষ্টতাটি আপেক্ষিক) এবং পথের জন্য আমার বিপর্যয়ের আশেপাশে আরও কিছুক্ষন কাজ করার জন্য আমি তা প্রয়োগ করতে বেছে নিয়েছি। আমি বাজি দেব এখানে আরও মার্জিত উপস্থাপনা আছে। SaSbT|aMbSMTaT|cU
ধনী 23

0

একটি + বি + সি + ডি + ই এবং abcde নিন। একটি ব্যাকরণ কীভাবে এগুলিকে পার্স করতে পারে তার দুটি স্পষ্ট উপায় রয়েছে, তবে একটি উপায় রয়েছে যা আমরা ব্যবহার করি।

"অন্য কোথাও ঝাঁকুনির" ক্ষেত্রে, এটি আসলে লোকেরা কীভাবে দেখায় তা নয়। পরিবর্তে সিনট্যাক্সটি "যদি" হিসাবে ব্যাখ্যা করা হয়, তার পরে শূন্য হয়, এক বা একাধিক "অন্যথায়", তার পরে একটি বিকল্প "অন্য" হয়।


দ্রষ্টব্য যে "যদি ... তবে ... অন্যথায় যদি ... তবে ... অন্যথায় যদি ... তবে ... অন্যথায় ..." আমার সাথে সামঞ্জস্য হয়: এটি আমার প্রাথমিক ব্যাকরণ (এবং আমি যে রূপগুলি সম্মত করি) দ্বারা স্পষ্ট করে বলা হয়েছে, তাই আমি জিজ্ঞাসা করছি না এর বিকল্প পার্স করার জন্য। acbacbacbc
গ্রো-তেসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.