زمان کنونی: ۳۰ فروردین ۱۴۰۳, ۱۰:۵۱ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

مشکل در مفهوم LR

ارسال:
  

M.Amin.M پرسیده:

مشکل در مفهوم LR

سلام دوستای خوبم

من دارم کامپایلر میخونم، واقعا گیج شدم، خیلی دوس دارم مفهومشو بفهمم ولی هر چی زور میزنم یه چیزایی میفهمم ولی کافی نیست.Exclamation
مثلا در پارسینگ های LR من خیلی سعی کردم مفهومشو بفهمم، ببینم واقعاچه اتفاقی میفته ولی فایده ای نداشت.یا مثلا first وfollow، مفهومشون چیه؟چه اتفاقی میفته؟ExclamationUndecided

توی این جدول تجزیه هم مفهومو نمیفهمم، الان این عبارتی که توی پشته ریخته میشه،در واقعیت یعنی چی؟اصلا گیج شدم، بلدم مسئله حل کنما ولی مفهومش خیلی برام نامفهومه.Huh

امیدوارم منظورمو درست رسونده باشم.Undecided
تشکر میکنم.Heart

۲
ارسال:
  

azad_ahmadi پاسخ داده:

مشکل در مفهوم LR

سلام.
ببینید اساسا کامپایلر از یک سری فازها تشکیل شده. تحلیل گر لغوی. تحلیل گر نحوی، تحلیل گر معنایی ...
هرکدوم از این قسمتها به قسمت های بعدی و قبلی خود در ارتباط هستند. مثلا تحلیلگر لغوی یک سری توکن رو مو به مو به تحلیلگر نحوی میده. تحلیگر نحوی بررسی می کنه که این ساختاری که از قبلی گرفته دارای نظم و ترتیب خاصی هست یا نه.
تحلیلگر نحوی یا همون پارسر کارش پذیرش نحو یک زبان هست. مثلا بررسی می کنه که if قبل از statment بیاد. و به این صورت.
خب حالا پارسرها خودشون به انواعی (دونوع) دسته بندی میشوند. پایین به بالا و بالا به پایین.
من دقیقا نمی خوام زیاد وارد جزئیات بشم. اما تمام این نکات رو باید بلد باشید.
در یکسری پارسر ها برای اینکه نحو یک زبان تشخیص داده بشه، باید مجموعه های first و fallow هر وضعیت بررسی بشه.
در مجموعه first هدف این هست که عبارت به چه چیزی شروع میشه، مثلا A--> aS|bB وضعیت A میتونه یا با a و یا با b شروع بشه.
در مجموعه fallow هدف این هست که بدونیم بعد از یک غیر ترمینال چه عبارات ممکنی ممکن هست بیایند. مثلا A-->Dc رو دقت کنید، fallowی D برابر هست با c چرا که بعد از غیر پایانه D تنها پایانه ای که قراره بیاد c خواهد بود.
پس برای مشخص کردن اینکه از یک وضعیت به کدوم یک از وضایع ممکن میشه رفت از مجموعه first و برای اطلاع از وضعیت آتی از مجموعه fallow بهره می بریم.

بهترین مثالهایی که میشه در این زمینه حل کرد، همون سوالای if و if else هستن که بیشتر مفهوم کامپایلر رو تداعی میکنند تا این مثال های A B و ...

۰
ارسال:
  

esi پاسخ داده:

مشکل در مفهوم LR

به طور خلاصه برداشت خودم رو می گم در تکامل حرفای دیگر دوستان :
تو روش پارسینگ LR ما قصد داریم تا درخت پارس رو از پایین به بالا بسازیم. R به خاطر تشکیل درخت به صورت مشتق راست right derivation است و L هم برای خواندن ورودی از چپ به راست هستش.
وقتی مخواییم رشته ای رو پیدا کنیم اولین سوال این هست که به محض دیدن یک رشته باید تشخیص بدیم این رشته توسط کدوم غیر پایانی ها قابل تولید هستش و به همین خاطر مجموعه first رو تولید می کنیم، تو این مجموعه می گیم اگه یک ورودی مثل a رو دیدم، کدوم غیر پایانی ها می تونند با این پایانی شروع شده و ادامه رشته رو تولید کنن.
در ادامه پارسینگ به جایی می خوریم که ما نیاز تا بدونیم با دیدن یک ورودی مثل a آیا باز غیر پایانی جدیدی رو شروع کنیم یا نه، یعنی آیا بادیدن رشته ورودی ممکنه که غیرپایانی در حال رشد رو متوقف کنیم و ادامه پارسینگ رو به یه غیر پایانی دیگه شروع کنیم. وقتی یه ورودی مثل b رو دیدیم، آیا می تونیم قسمتی از رشته های ورودی رو که خوندیم به یه غیر پایانی کاهشش بدیم و ادامه کار رو بریم یا نه ؟ برای اینکار از مجموعه follow استفاده میشه تا ببینیم کی رشته مربوط به یک غیر پایانی شروع میشه و بعد از اون پایانی که کاهشش دایدم چه نماد هایی می تونه بیاد.
از اسم هر دو مجموعه تقریبا معاومه به چه دردی میخوره. First یعنی غیرپایانی ها با چه پایانی هایی می تونن شروع بشن و ابتدای گرامر اون غیر پایانی هستن.
پیرو یا تعقیب یعنی چه رشته هایی بلافاصله بعد از غیر پایانی می تونه بیاد و اون غیر پایانی رو تعقیب می کنه .

۰
ارسال:
  

sarehkar پاسخ داده:

RE: مشکل در مفهوم LR

(۲۷ خرداد ۱۳۹۲ ۱۲:۲۴ ق.ظ)M.Amin.M نوشته شده توسط:  سلام دوستای خوبم

من دارم کامپایلر میخونم، واقعا گیج شدم، خیلی دوس دارم مفهومشو بفهمم ولی هر چی زور میزنم یه چیزایی میفهمم ولی کافی نیست.Exclamation
مثلا در پارسینگ های LR من خیلی سعی کردم مفهومشو بفهمم، ببینم واقعاچه اتفاقی میفته ولی فایده ای نداشت.یا مثلا first وfollow، مفهومشون چیه؟چه اتفاقی میفته؟ExclamationUndecided

توی این جدول تجزیه هم مفهومو نمیفهمم، الان این عبارتی که توی پشته ریخته میشه،در واقعیت یعنی چی؟اصلا گیج شدم، بلدم مسئله حل کنما ولی مفهومش خیلی برام نامفهومه.Huh

امیدوارم منظورمو درست رسونده باشم.Undecided
تشکر میکنم.Heart
مجموعهfirstمربوط به aپایانه هایی رامشخص می کند که رشته های مشتق شده از aبا آنها شروع می شوند اگر aبتواند [tex]\varepsilon[/tex]
را تولید کند به مجموعه first اضافه می شود مثال:
با توجه به گرامر first(BCd) می شود :a b e a[tex]A \rightarrow BCd ---- B \rightarrow bB\mid e \mid \varepsilon---- C \rightarrow aC\mid \varepsilon[/tex]


lمجموعه follow(A) پایانه هایی را مشخص می کند که در اشتقاق های مختلف بلافاصله در سمت راست Aقرار می گیرند - یعنی آخرین پایانه ای که توسط Aتولید می شود.

در مورد روش های LRمن LR(0) رو فقط مطالعه کردم

منبع کامپایلر پیام نور ص ۱۴۴

۰
ارسال:
  

azad_ahmadi پاسخ داده:

مشکل در مفهوم LR

سوال بگذارید باهم حل کنیم. مرحله به مرحله.
در بین حل، به مفهوم هم می پردازیم.

۰
ارسال:
  

M.Amin.M پاسخ داده:

مشکل در مفهوم LR

ممنون از اینکه جواب دادین، دوستان من دنبال مفهوم این مباحث هستم، یعنی دوس دارم بدونم first وfollow چیکار میکنن،قشنگ بلدم سوالو حل کنم، فقط رفتم قواعدو یاد گرفتم.

اصلا نمیفهمم این قواعد دارن چه کاریو پشت پرده انجام میدن.

چشم یه سوال میذارم باهم حلش کنیم ومفهومشو بهم بگین.مثلا همین سوالی که دوستمون گذاشتن، الان مفهوم first و followچیه؟این first وfollow چی هستن؟برا بدست آوردنشون بلدم چیکار کنم ولی میخوام مفهومشو بفهمم.

حالا یه سوال درمورد LR هم میذارم تا مفهومی جلو بریم، درحال حاضرمفهومfirst و follow چیه؟

نمیدونم میتونم منظورمو برسونم یانه!

تشکر بخاطر پیگیریتون و جواب دادنتون.خیلی مررررسی.

۰
ارسال:
  

M.Amin.M پاسخ داده:

مشکل در مفهوم LR

تشکر ویژه
آره اینا رو قشنگ فهمیدم.
الان مفهوم first و follow هم برام روشن شد، ممنون.
واما میریم جلوتر ومباحث سخترررررر!!! مثال میزنم که راحت تر باشه
ایشالا فردا، الان خوابم گرفته، تشکر بچه ها.

درمورد پاسخ دوست عزیزمونesi
خیلی ممنون جواب دادین، ولی من این قسمت از صحبتاتونو متوجه نمیشم، میشه یکم باز ترش کنین؟

"آیا می تونیم قسمتی از رشته های ورودی رو که خوندیم به یه غیر پایانی کاهشش بدیم و ادامه کار رو بریم یا نه ؟ برای اینکار از مجموعه follow استفاده میشه تا ببینیم کی رشته مربوط به یک غیر پایانی شروع میشه و بعد از اون پایانی که کاهشش دایدم چه نماد هایی می تونه بیاد."

تشکر.

ازهمه دوستان تشکر میکنم.

۰
ارسال:
  

esi پاسخ داده:

مشکل در مفهوم LR

یعنی اگر به یه نقطه ای رسیدیم که دیگه متغیر جاری که در حال بسطش هستید( یعنی اون متغییری که داریم باهاش جلو می ریم)، دیگه نتونستیم ادامه بدیم، ادامه کار رو با کدوم متغیر دیگه باید ادامه بدیم، فرض کنید ورودی a رو داریم و داریم با s جلو میریم، حال به نقطه رسیدیم که s با a نمی تونیم جلو بریم پس باید دنبال یه B بگردیم که با هاش بتونیم a رو ادامه بدیم یا به عبارتی a جز مجموعه fisrt(B) p باشه( P الکیه) و یا اینکه a بلافاصله بعد از s در یک غیر پایانی دیگه مثل A اومده مثلا A->FGSa باشه که F,G غیر پایانی هایی که قبلا گسترششون داریم، S غیر پایانی جاری که دیگه با a نمی تونه ادامه بده و چون a در مجموعه Follow(s)p هستش شما می تونید s رو کاهش بدید و دویاره به غیر پایانی A برگردید و رشته طبق A از ورودی بخونید و ادامه کار ...



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  مفهوم سئو را بیشتر بدانید Alireza-res ۰ ۱۲ ۱۲ آبان ۱۳۹۷ ۱۰:۳۷ ق.ظ
آخرین ارسال: Alireza-res
  مفهوم انواع آنتروپی و ویژگی های غیر خطی سیگنال مغز baharkhanoom ۰ ۱,۷۷۲ ۲۶ خرداد ۱۳۹۷ ۱۰:۲۷ ب.ظ
آخرین ارسال: baharkhanoom
  مفهوم نبودن یک متغیر در محاسبه میانه در هیستوگرام H-Arshad ۲ ۲,۵۹۹ ۲۳ دى ۱۳۹۶ ۰۵:۴۰ ق.ظ
آخرین ارسال: BBumir
  مفهوم و سازکار Memory-mapped Files mehran.hzd ۰ ۱,۴۱۲ ۱۵ خرداد ۱۳۹۶ ۰۲:۳۱ ب.ظ
آخرین ارسال: mehran.hzd
  مفهوم cut , ! wskf ۲ ۲,۰۷۰ ۲۳ فروردین ۱۳۹۶ ۱۰:۴۳ ب.ظ
آخرین ارسال: wskf
  مفهوم شبکه (لاتیس) ali.majed.ha ۳ ۴,۳۵۶ ۱۵ اسفند ۱۳۹۵ ۰۷:۲۴ ب.ظ
آخرین ارسال: ali.majed.ha
  مفهوم شبکه های مدار مجازی edward71 ۴ ۵,۰۰۱ ۰۴ بهمن ۱۳۹۵ ۰۱:۵۲ ب.ظ
آخرین ارسال: Saman
  مشکل با نرم افزار IDM (پاک شدن پوشه COMPRESS) Somayeh_Y ۳ ۲,۴۲۹ ۲۳ دى ۱۳۹۵ ۰۹:۲۴ ق.ظ
آخرین ارسال: husen
  مفهوم توان کسری Ali M ۹ ۱۸,۷۴۱ ۰۶ دى ۱۳۹۵ ۱۲:۲۴ ق.ظ
آخرین ارسال: Ali M
  درخواست توضیح مفهوم توزیع power-law و... Potential ۶ ۱۰,۱۵۱ ۰۴ آبان ۱۳۹۵ ۰۴:۵۲ ب.ظ
آخرین ارسال: DANIYAL.MCSE

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close