تجزیه کننده ال ار

دانشنامه عمومی

تجزیه کننده ال آر. تجزیه کننده LR ( انگلیسی:LR parser ) ، یک تجزیه کننده پایین به بالا است که زبان های مستقل از متن قطعی را در زمان چند جمله ای تجزیه می کند و در ساختن کامپایلرها کاربرد دارد. نام تجزیه کننده ال ار از سه بخش ال ، ار و یک عدد k تشکیل شده است که بخش ال آن به این معنا است که این تجزیه کننده رشته ورودی را از چپ به راست تجزیه می کند و قسمت ار آن به این معنا است که همیشه راست ترین اشتقاق ممکن را انجام می دهد و عدد k به این معنا است که هنگام تجزیه به k حرف جلو تر در رشته ورودی نگاه می کند و پیش بینی می کند که چگونه اشتقاق را انجام دهد.
از معروف ترین تجزیه کننده های ال ار می توان به تجزیه کننده L R ( 1 ) , L R ( 0 ) , S L R , L A L R اشاره کرد که همهٔ آن ها تمام ویژگی های ذکر شده در قسمت بالا را دارند. تجزیه کننده های ال ار از تجزیه کننده هایی که به روش بالا به پایین کار می کنند قدرت بیشتری دارد و زبان های بیشتری را می تواند تجزیه کند. سرعت پیدا کردن خطا نیز در تجزیه کننده های ال ار به مراتب از تجزیه کننده های بالا به پایین مانند L L ( 1 ) بالاتر است و در حالی که از چپ به راست رشته را تجزیه می کند به محض پیدا کردن خطا آن را گزارش می دهد.
یک تجزیه کننده ال آر، ورودی را از چپ به راست می خواند و درخت تجزیه را همیشه از چپ به راست و به صورت پایین به بالا رسم می کند. این تجزیه کننده همیشه فهرستی از زیردرخت هایی که در انتهای آن قرار دارند را نگه می دارد. در واقع این تجزیه کننده همیشه راست ترین زیردرختی که وجود دارد را نگه می دارد. هنگامی که این تجزیه کننده از چپ به راست حرکت می کند، با توجه به حرف جدیدی که جلوی آن قرار دارد و زیردرختی که در آخر لیست قرار دارد، یکی از قواعد را بر روی آن اعمال می کند و زیر درختی جدید را به وجود می آورد.
برای مثال فرض کنید قواعد شکل روبرو به شکل زیر باشد:
1. E → T 2. E → E + T 3. T → int 4. T → ( E ) هنگامی که تجزیه کننده از چپ به راست حرکت خودش را آغاز می کند به توجه به قاعده ۳و۱ int را به E تبدیل می کند. سپس بعد از عبور از ) به دلیل وجود نداشتن قاعده ای، int را به E تبدیل کرده سپس از مثبت عبور کرده و int را به T تبدیل می کند. سپس با توجه به اینکه از روی یک E , + عبور کرده است، از قاعدهٔ ۲، به حرف E تبدیل می شود و این روند ادامه پیدا می کند تا به در آخر به یک حرف E ختم شود. همان طور که در مثال مشاهده می شود، این تجزیه کننده همیشه با توجه به زیر درختی که در قبل وجود دارد، یا حرف جدید را رد می کند یا یکی از قواعد را بر روی آن اعمال می کند
عکس تجزیه کننده ال آر
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس