একটি কংক্রিট সিনট্যাক্স ট্রি ব্যাকরণের নিয়ম যা বলে তার সাথে মেলে the বিমূর্ত সিনট্যাক্স ট্রিটির উদ্দেশ্য "সিনট্যাক্স ট্রি" এর মধ্যে যা প্রয়োজনীয় তা একটি "সাধারণ" উপস্থাপনা।
এএসটি আইএমএইচএ-র একটি আসল মান হ'ল এটি সিএসটি-র চেয়ে ছোট এবং তাই প্রক্রিয়া করতে কম সময় নেয়। (আপনি বলতে পারেন, কে যত্ন করে? তবে আমি এমন একটি সরঞ্জাম নিয়ে কাজ করি যেখানে আমাদের লক্ষ লক্ষ নোড একসাথে থাকে!)।
সিনট্যাক্স ট্রি তৈরির জন্য কোনও সমর্থন রয়েছে এমন বেশিরভাগ পার্সার জেনারেটর জোর দিয়ে বলেন যে আপনার গাছের নোডগুলি সিএসটি-র চেয়ে "সরল" হবে এই ধারণার অধীনে তারা ব্যক্তিগতভাবে কীভাবে নির্ধারণ করবেন (এবং এতে, তারা সাধারণত সঠিক, কারণ প্রোগ্রামারগুলি বেশ সুন্দর অলস)। তাত্ক্ষণিকভাবে এর অর্থ এটি আপনাকে গাছের পরিদর্শনকারীদের কম ফাংশন কোড করতে হবে এবং এটি ইঞ্জিনিয়ারিং শক্তিকে ন্যূনতম করে দেয় এমন মূল্যবানও। যখন আপনার 3500 টি বিধি থাকে (যেমন, COBOL এর জন্য) এটি গুরুত্বপূর্ণ। এবং এই "সরল" নেসটি "ক্ষুদ্রতা" এর ভাল সম্পত্তিকে নিয়ে যায়।
তবে এই জাতীয় এএসটি থাকার কারণে এমন সমস্যা তৈরি হয় যা ছিল না: এটি ব্যাকরণের সাথে মেলে না এবং এখন আপনাকে উভয়কেই মানসিকভাবে ট্র্যাক করতে হবে। এবং যখন 3500 রুল ব্যাকরণের জন্য 1500 এএসটি নোড থাকে, তখন এটি অনেক গুরুত্বপূর্ণ। এবং যদি ব্যাকরণটি বিকশিত হয় (তারা সর্বদা করে!), এখন আপনার কাছে দুটি সমন্বয়যুক্ত সেট সেট থাকে have
আরেকটি সমাধান হ'ল পার্সারটিকে কেবল আপনার জন্য সিএসটি নোড তৈরি করতে দিন এবং সেগুলি কেবল ব্যবহার করুন। ব্যাকরণ তৈরি করার সময় এটি একটি বিশাল সুবিধা: 3500 ব্যাকরণের নিয়মগুলি মডেল করার জন্য 1500 টি বিশেষ এএসটি নোড আবিষ্কার করার দরকার নেই। গাছটি ব্যাকরণের থেকে বিচ্ছিন্ন হওয়ার কথা চিন্তা করুন। ব্যাকরণ প্রকৌশলের দৃষ্টিকোণ থেকে এটি সম্পূর্ণ মস্তিষ্কহীন, যা তাকে ব্যাকরণটি সঠিকভাবে পেতে এবং তার হৃদয়ের বিষয়বস্তুটিতে হ্যাক করার দিকে মনোনিবেশ করতে দেয়। যুক্তিযুক্তভাবে আপনাকে আরও নোড ভিজিটর বিধি লিখতে হবে, তবে এটি পরিচালনা করা যায়। এই সম্পর্কে আরও পরে।
আমরা ডিএমএস সফ্টওয়্যার পুনর্নির্ধারণের সরঞ্জামদণ্ডের সাথে যা করি তা হ'ল একটি (জিএলআর) পার্সিং প্রক্রিয়ার ফলাফলের ভিত্তিতে একটি সিএসটি স্বয়ংক্রিয়ভাবে তৈরি করা। ডিএমএস তারপরে স্পেস দক্ষতার কারণে স্বয়ংক্রিয়ভাবে একটি "সংকুচিত" সিএসটি তৈরি করে, অ-মান বহনকারী টার্মিনালগুলি (কীওয়ার্ডস, বিরামচিহ্ন), শব্দার্থগতভাবে অকেজো নির্বিশেষে প্রোডাকশনগুলি বাদ দিয়ে এবং ব্যাকরণ নিয়মের জন্য তালিকা তৈরি করে যেমন তালিকা:
L = e ;
L = L e ;
L2 = e2 ;
L2 = L2 ',' e2 ;
এবং এই ধরনের ফর্মের বিভিন্ন ধরণের। আপনি ব্যাকরণের নিয়ম এবং ভার্চুয়াল সিএসটি হিসাবে বিবেচনা করুন; সরঞ্জামটি সংকুচিত প্রতিনিধিত্ব করে on আপনার মস্তিষ্কে সহজ, রানটাইমে দ্রুত / আরও ছোট।
লক্ষণীয়ভাবে, সংক্ষেপিত সিএসটি এইভাবে নির্মিত অনেকটা এএসটি দেখায় যা আপনি নিজের হাতে ডিজাইন করেছেন (উদাহরণগুলির শেষে লিঙ্কটি দেখুন)। বিশেষত, সংক্রামিত সিএসটি এমন কোনও নোড বহন করে না যা কেবল কংক্রিট সিনট্যাক্স। অদ্ভুততার সামান্য বিট রয়েছে: উদাহরণস্বরূপ যখন '(' এবং ')' র ক্লাসিকালি এক্সপ্রেশন সাবগ্রামারগুলিতে পাওয়া যায় এমন কংক্রিট নোডগুলি গাছে থাকে না, সংকোচিত সিএসটিতে একটি "বন্ধনী নোড" উপস্থিত হয় এবং এটি পরিচালনা করতে হয়। সত্যিকারের এএসটি-র এটি হবে না। এটি কখনও কখনও এএসটি নির্মাণ নির্দিষ্ট করে না দেওয়ার সুবিধার্থে অর্থ প্রদানের জন্য বেশ ছোট দামের মতো বলে মনে হয়। ও বৃক্ষ ডকুমেন্টেশন সবসময় পাওয়া এবং ঠিক কিনা: ব্যাকরণ হয় ডকুমেন্টেশন।
কীভাবে আমরা "অতিরিক্ত দর্শক" এড়াতে পারি? আমরা সম্পূর্ণরূপে করি না, তবে ডিএমএস একটি এএসটি লাইব্রেরি সরবরাহ করে যা এএসটি চালায় এবং সিএসটি এবং এএসটির মধ্যে পার্থক্য স্বচ্ছভাবে পরিচালনা করে। ডিএমএস একটি "অ্যাট্রিবিউট ব্যাকরণ" মূল্যায়নকারী (এজিই )ও সরবরাহ করে, যা গাছের উপরে এবং নীচে নোডগুলি গণনা করে মানগুলি পাস করার জন্য একটি পদ্ধতি; এজিই সমস্ত গাছের প্রতিনিধিত্বমূলক সমস্যাগুলি পরিচালনা করে এবং তাই টুল ইঞ্জিনিয়ার কেবল ব্যাকরণের নিয়মগুলিতে সরাসরি নিজেরাই গণনা লেখার বিষয়ে উদ্বেগ প্রকাশ করে। পরিশেষে, ডিএমএস "পৃষ্ঠ-সিনট্যাক্স" নিদর্শনও সরবরাহ করে, যা ব্যাকরণ থেকে কোড টুকরাগুলি নির্দিষ্ট ধরণের সাবট্রির সন্ধান করতে ব্যবহার করে, বেশিরভাগ জড়িত নোডকে না জেনে।
অন্য একটি উত্তরে লক্ষ্য করা যায় যে আপনি যদি এমন উত্স তৈরি করতে চান যা উত্স উত্সাহিত করতে পারে তবে আপনার এএসটিকে সিএসটি মেলাতে হবে। এটি সত্যই সঠিক নয়, তবে আপনার যদি সিএসটি নোড থাকে তবে উত্সটি পুনরায় তৈরি করা আরও সহজ। ডিএমএস বেশিরভাগ প্রিপ্রিন্টার স্বয়ংক্রিয়ভাবে উত্পন্ন করে কারণ এতে উভয়েরই অ্যাক্সেস রয়েছে: -}
নীচের লাইন: এএসটিগুলি ফিসিসিল এবং ধারণাগত উভয়ের জন্যই ছোট for সিএসটি থেকে অটোমেটেড এএসটি নির্মাণ উভয়ই সরবরাহ করে এবং আপনাকে দুটি পৃথক সেট ট্র্যাকিংয়ের সমস্যা এড়াতে দেয়।
মার্চ ২০১ 2015 সম্পাদনা করুন: সিএসটি বনাম "এএসটি" তৈরির উদাহরণগুলির লিঙ্ক this