থিওডোর নরভেল (১৯৯৯) দ্বারা রিকার্সিভ ডেসেন্টের পার্সিং এক্সপ্রেশনগুলি প্রবন্ধে লেখক পাটিগণিত প্রকাশের জন্য নিম্নলিখিত ব্যাকরণ দিয়ে শুরু করেছেন:
E --> E "+" E | E "-" E | "-" E | E "*" E | E "/" E | E "^" E | "(" E ")" | v
যা বেশ খারাপ, কারণ এটি অস্পষ্ট এবং বাম-পুনরাবৃত্ত। সুতরাং তিনি এটি থেকে বাম পুনরাবৃত্তি অপসারণ থেকে শুরু করেন এবং তার ফলস্বরূপ:
E --> P {B P}
P --> v | "(" E ")" | U P
B --> "+" | "-" | "*" | "/" | "^"
U --> "-"
তবে তিনি কীভাবে এই ফলাফলটি পেয়েছিলেন তা আমি বুঝতে পারি না। আমি যখন নিজেই বাম পুনরাবৃত্তি সরিয়ে দেওয়ার চেষ্টা করি, আমি এটি নিম্নলিখিত উপায়ে করছি:
প্রথমত, আমি এমন প্রোডাকশনগুলিকে একসাথে গ্রুপ করি যার একটি গ্রুপে পুনরাবৃত্তি না হয় এবং অন্যটিতে (বাম-পুনরাবৃত্ত):
E --> E "+" E | E "-" E | E "*" E | E "/" E | E "^" E // L-recursive E --> v | "(" E ")" | "-" Eএরপরে, আমি তাদের নাম রাখি এবং সহজ ম্যানিপুলেশনের জন্য ফ্যাক্টর:
E --> E B E // L-recursive; B stands for "Binary operator" E --> P // not L-recursive; P stands for "Primary Expression" P --> v | "(" E ")" | U E // U stands for "Unary operator" B --> "+" | "-" | "*" | "/" | "^" P --> "-"এখন আমাকে কেবল প্রথম দুটি প্রযোজনার সাথেই ডিল করতে হবে, যা এখন মোকাবেলা করা আরও সহজ।
আমি অ-এল-রিকার্সিভ প্রডাকশন (যা কেবলমাত্র
Pপ্রাথমিক অভিব্যক্তি) থেকে শুরু করে এবং এটিToptionচ্ছিক টেইল অনুসারে অনুসরণ করে সেই প্রথম দুটি প্রযোজনা পুনরায় লিখি , যা আমি বাকী মূল উত্পাদনটিকে প্রথম বাম-রিকার্স ননটার্মিনাল হিসাবে কম হিসাবে সংজ্ঞায়িত করিB Eলেজ অনুসরণ করে (যা খালি ) ঠিক আছেT, বা যা খালি থাকতে পারে:E --> P T T --> B E T |(লেজের জন্য খালি বিকল্পটি নোট করুন)।
এই দুটি প্রযোজনা আমি এখন EBNF এ আবার লিখতে পারি:
E --> P {B E}যা প্রায় কি লেখক পেতে, কিন্তু আমি আছে
Eপরিবর্তেPশূন্য-অর-আরো পুনরাবৃত্তি ধরণ (লেঙ্গুড়) ভিতরে আছে। অন্যান্য প্রযোজনাগুলি আমি যেমন পেয়েছি তেমনই পেয়েছি:P --> v | "(" E ")" | U E B -> "+" | "-" | "*" | "/" | "^" U -> "-"তবে এখানেও আমি প্রথম প্রযোজনার
Eপরিবর্তে পেয়েছি ।PP
সুতরাং, আমার প্রশ্নটি: আমি কী মিস করছি? অটোরের মতো একই সঠিক ফর্মটি পেতে এখনই সিনট্যাক্সের আমার কী বীজগণিত রূপান্তরকরণের প্রয়োজন? আমি বিকল্পগুলির জন্য চেষ্টা করেছিলাম E, তবে এটি কেবল আমাকে লুপগুলিতে নিয়ে যায়। আমার সন্দেহ হয় যে এর বিকল্প হিসাবে আমার কোনওরকম প্রয়োজন আছে , তবে এটি সমর্থন করার Pজন্য Eআমি কোনও আইনি রূপান্তর জানি না। সম্ভবত আপনি জানেন যে হারিয়ে যাওয়া শেষ পদক্ষেপটি কী?