আলাদা লেক্সিং এবং পার্সিং কেন?


15

রাষ্ট্রীয় মেশিন থেকে একক পাস ব্যবহার করে একটি দস্তাবেজ পার্স করা সম্ভব। দু'টি পাস হওয়ার সুবিধা কী? টেক্সনে পাঠ্য রূপান্তর করতে কোনও লেক্সার রয়েছে এবং সেই টোকেনগুলিতে উত্পাদনের বিধি পরীক্ষা করতে পার্সার রয়েছে? কেন এমন একক পাস নেই যা উত্পাদনের নিয়মগুলি সরাসরি লেখায় প্রয়োগ করে?



2
লেক্সার + পার্সার এর এক্সপ্রেসিভ পাওয়ারের উত্তরে অনেক প্রযুক্তিগত মন্তব্য সহ এটি ইতিমধ্যে সিএস, স্ট্যাকেক্সচেঞ্জে আলোচনা করা হয়েছে । তবে আরও উত্তরের জন্য সেখানে জায়গা থাকতে পারে।
বাবু

আমি ভাবছি পাইপলাইন-শৈলীর সমান্তরালতা (যদিও ভারসাম্যহীন পর্যায়ে ভারসাম্যহীন) পার্শ্ব সুবিধা হতে পারে। নির্দেশনা এবং ডেটা ক্যাশে উভয় আচরণই আকর্ষণীয় হতে পারে। এগুলি সংকলনের সময়টিকে কতটা (যদি আদৌ) হ্রাস করে তা নির্ভর করে নির্দিষ্ট হার্ডওয়ারের উপর।
পল এ। ক্লেটন

একটি মোটামুটি সুস্পষ্ট (কমপক্ষে আমার কাছে) কারণ হ'ল আপনি স্ক্যানার সরঞ্জামটি আলাদাভাবে ব্যবহার করতে পারবেন। অনুশীলনে, আমি ইনপুট স্ক্যান করতে প্রায়শই ফ্লেক্স ব্যবহার করি তবে খুব কমই ইয়্যাকের পূর্ণ শক্তি প্রয়োজন।
জামেএসকিফ

উত্তর:


13

আপনি তাদের আলাদা করতে হবে না। লোকেরা তাদের স্ক্যানারবিহীন পার্সারে সংযুক্ত করে ।

স্ক্যানারবিহীন পার্সারগুলির প্রধান অসুবিধাগুলি মনে হয় যে ফলস্বরূপ ব্যাকরণগুলি আরও জটিল - নিয়মিত প্রকাশের সাথে সম্পর্কিত সংমিশ্রণের চেয়ে আরও জটিল এবং লেকসিংয়ের প্রসঙ্গমুক্ত ব্যাকরণটি টোকেন-স্ট্রিমে পার্সিং করছে। বিশেষত, স্ক্যানারবিহীন পার্সিংয়ের ব্যাকরণ অস্পষ্টতার দিকে ঝুঁকছে। টোকেন-স্ট্রিমে কাজ করা ব্যাকরণগুলির পক্ষে অস্পষ্টতা দূর করা সহজ easier

ডেডিকেটেড অবফ্রন্ট লেক্সিং পর্বটি ব্যবহার করার একটি ব্যবহারিক সুবিধা হ'ল আপনি পরবর্তী পার্সারটিকে সংক্ষিপ্ত বিবরণ দিয়ে জুড়বেন না। প্রারম্ভিক প্রোগ্রামিং ভাষার বিকাশের সময় এটি কার্যকর হয় যখন লেজিকাল এবং সিনট্যাকটিক বিশদটি ঘন ঘন পরিবর্তন হয়।


1
দুটি পাসের পরিবর্তে একটি পাস থাকার ক্ষেত্রে ক্লোজার সম্পত্তি জড়িত। আপনি যদি বিবেচনা করেন যে লেক্সাররা হ'ল একটি আনুষ্ঠানিক পরিবার ট্রান্সডুসার , এটি একটি আনুষ্ঠানিক পরিবারের Parsers সাথে মিলিত হতে পারে পিটিপিপিপিটি

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

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

@ বাবু আমি নিশ্চিত নই দীর্ঘতম কীওয়ার্ডটি যদি 17 টি অক্ষর দীর্ঘ হয় তবে যে কোনও স্ট্রিং দীর্ঘতর হতে হবে এটি শনাক্তকারী বা বর্ণনামূলকভাবে অবৈধ।
মার্টিন বার্গার

তবে আপনি শনাক্তকারী, বা সম্ভবত একটি স্ট্রিং, সংখ্যা বা অন্যান্য আক্ষরিক, 17 টিরও বেশি স্বতন্ত্র প্রতীকগুলির একটি ক্রম যা আপনার প্রকৃত প্রয়োজন টোকেনের সামনে দাঁড়িয়ে থাকতে পারে। এটি এক বিশাল চেহারা, সীমাহীন। আপনি একটি নির্জনবাদী ভাষা দিয়ে শেষ করতে পারেন।
বাবু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.