কেন জিসিসি বাইসন থেকে সি ++ এবং সি জন্য পুনরাবৃত্তির বংশদ্ভুত পার্সারে স্যুইচ করলেন?


10

কোন ভাষা পরিবর্তনের জন্য এটির প্রয়োজন ছিল বা বাইসন আর উপযুক্ত বা অনুকূল ছিল না এমন কোনও ব্যবহারিক কারণ ছিল?

আমি উইকিপিডিয়ায় দেখেছি যে তারা স্যুইচ করেছে, জিসিসি ৩.৪ এবং জিসিসি ৪.১ প্রকাশের নোটগুলি উল্লেখ করে।

এই প্রকাশিত নোটগুলি বলে:

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

এবং:

পুরনো বাইসন-ভিত্তিক সি এবং অবজেক্টিভ-সি পার্সারটি নতুন, দ্রুত হাতে লিখিত পুনরাবৃত্ত-বংশদ্ভুত পার্সার দ্বারা প্রতিস্থাপিত হয়েছে

আমি যা জানতে চাই তা হ'ল তাদের আসল সমস্যাগুলি কী ছিল এবং বাইসন ব্যবহার করে কেন এটি সমাধান করা অসম্ভব / অযৌক্তিক ছিল


1
পার্সার জেনারেটর প্রয়োজনীয়তাগুলি পরিচালনা করতে না পারলে অবশেষে সমস্ত পার্সারগুলি হোমব্রাউন হয়ে যাবে
রাচেট ফ্রিক

1
আপনার গবেষণা ভাগ করে নেওয়া প্রত্যেককে সহায়তা করে । আপনি কী চেষ্টা করেছেন এবং কেন এটি আপনার প্রয়োজনীয়তা মেটেনি তা আমাদের বলুন। এটি প্রমাণ করে যে আপনি নিজেকে সাহায্য করার চেষ্টা করার জন্য সময় নিয়েছেন, এটি আমাদের সুস্পষ্ট উত্তরের পুনরাবৃত্তি থেকে বাঁচায় এবং সর্বোপরি এটি আপনাকে আরও নির্দিষ্ট এবং প্রাসঙ্গিক উত্তর পেতে সহায়তা করে। আরো দেখুন কিভাবে জিজ্ঞাসা করতে
মশা

1
@gnat আমি আমার প্রশ্নটি প্রসারিত করেছি
নেলসগ

1
অন্যান্য বেশিরভাগ প্রোগ্রামিং ভাষার তুলনায় পার্স করার জন্য সি ++ একটি অসাধারণ জটিল ভাষা। আমার অন্ত্র অনুভূতি একটি সাধারণ-উদ্দেশ্য পার্সার সম্ভবত কোনও হোম-ব্রিউড পার্সার ব্যবহার করতে পারে এমন নির্দিষ্ট অনুকূলতাগুলি সমর্থন করতে পারে না could

উত্তর:


16

জিসিসি হস্ত-লিখিত পার্সিং-এ স্যুইচ করেছে কারণ আমি এখানে যেমন ব্যাখ্যা করেছি , পুনরাবৃত্তির বংশদ্ভুত কৌশলগুলি ব্যবহার করার সময় ত্রুটি বার্তা আরও অর্থবহ হয় ।

এছাড়াও, পার্স করার জন্য সি ++ এমন একটি (সিনট্যাক্টিক্যালি) জটিল ভাষা হয়ে উঠছে যে পার্সার জেনারেটর ব্যবহার করা তার পক্ষে উপযুক্ত নয়।

শেষ অবধি, সত্যিকারের সংকলকটির বেশিরভাগ অংশ বিশ্লেষণ করছে না, এটি অপটিমাইজ করছে। জিসিসির মিডল এন্ড অপ্টিমাইজেশন পাসগুলি এর পার্সিংয়ের চেয়ে অনেক জটিল।

(বিটিডাব্লু আপনি জিসিসি যেমন কাস্টমাইজ করতে পারেন প্লাগইনগুলি বা মেল্ট ব্যবহার করে , তবে আপনি যে ভাষাটি গ্রহণ করছেন তা সিনট্যাক্সটি প্রকৃতপক্ষে প্রসারিত করতে পারবেন না - গুণাবলী এবং প্রাগমাস যোগ করে)।

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