۰
subtitle
ارسال: #۱
  
سوال ۱۰۶ کامپیوتر ۹۵
سلام دوستان
لطفا این سوال رو راهنمایی کنید
چرا میشه گزینه۲؟
لطفا این سوال رو راهنمایی کنید
چرا میشه گزینه۲؟
۰
ارسال: #۲
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
(۲۴ فروردین ۱۳۹۶ ۰۸:۴۷ ب.ظ)*ahoo نوشته شده توسط: سلام دوستان
لطفا این سوال رو راهنمایی کنید
چرا میشه گزینه۲؟
در مورد ۴ ام شرط first/follow نقض شده پس LL(1) نیست ، به گرامر زیر دقت کنید :
[tex]S\longrightarrowaAb[/tex]
[tex]A\longrightarrowa|B[/tex]
[tex]B\longrightarrowb|\lambda[/tex]
[tex]\alpha\: =\: B\: \: ,\: \beta\: =\: a\: [/tex]
[tex]first(B)\cap first(a)=\varnothing[/tex]
[tex]first(a)\cap follow(A)=\{a\}\cap\{b\}=\varnothing[/tex]
[tex]first(A)\cap follow(A)=\{a,b\}\cap\{b\}=\{b\}\ne\varnothing[/tex]
ارسال: #۳
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
(۲۴ فروردین ۱۳۹۶ ۰۹:۵۶ ب.ظ)arash691 نوشته شده توسط:(24 فروردین ۱۳۹۶ ۰۸:۴۷ ب.ظ)*ahoo نوشته شده توسط: سلام دوستان
لطفا این سوال رو راهنمایی کنید
چرا میشه گزینه۲؟
در مورد ۴ ام شرط first/follow نقض شده پس LL(1) نیست ، به گرامر زیر دقت کنید :
[tex]S\longrightarrowaAb[/tex]
[tex]A\longrightarrowa|B[/tex]
[tex]B\longrightarrowb|\lambda[/tex]
[tex]\alpha\: =\: B\: \: ,\: \beta\: =\: a\: [/tex]
[tex]first(B)\cap first(a)=\varnothing[/tex]
[tex]first(a)\cap follow(A)=\{a\}\cap\{b\}=\varnothing[/tex]
[tex]first(A)\cap follow(A)=\{a,b\}\cap\{b\}=\{b\}\ne\varnothing[/tex]
توی کتاب شاپوری شرط LL1 بودن رو اینجوری نوشته
اینجا کهچیزی درمورد first(A) و follow(A) نگفته
ارسال: #۴
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
(۲۵ فروردین ۱۳۹۶ ۰۱:۳۱ ب.ظ)*ahoo نوشته شده توسط:(24 فروردین ۱۳۹۶ ۰۹:۵۶ ب.ظ)arash691 نوشته شده توسط:(24 فروردین ۱۳۹۶ ۰۸:۴۷ ب.ظ)*ahoo نوشته شده توسط: سلام دوستان
لطفا این سوال رو راهنمایی کنید
چرا میشه گزینه۲؟
در مورد ۴ ام شرط first/follow نقض شده پس LL(1) نیست ، به گرامر زیر دقت کنید :
[tex]S\longrightarrowaAb[/tex]
[tex]A\longrightarrowa|B[/tex]
[tex]B\longrightarrowb|\lambda[/tex]
[tex]\alpha\: =\: B\: \: ,\: \beta\: =\: a\: [/tex]
[tex]first(B)\cap first(a)=\varnothing[/tex]
[tex]first(a)\cap follow(A)=\{a\}\cap\{b\}=\varnothing[/tex]
[tex]first(A)\cap follow(A)=\{a,b\}\cap\{b\}=\{b\}\ne\varnothing[/tex]
توی کتاب شاپوری شرط LL1 بودن رو اینجوری نوشته
اینجا کهچیزی درمورد first(A) و follow(A) نگفته
اگه دقت کنید تو همون عکسی که فرستادین پایین نوشته اگه تعداد قاعده بیشتر از دوتا باشه باید برای همه قاعده شرط first/follow بررسی بشه تو سوال ما یکبار first/follow و برای یکی از قاعده ها بررسی کردیم ولی در اصل باید برای همه ی قاعده ها درنظر بگیرم چون یکی از انها شرط first/follow و نقض کرده پس LL1 نیست ، شرط first/follow هم مورد دومی هست که تو عکس گفته شده !
ارسال: #۵
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
(۲۵ فروردین ۱۳۹۶ ۰۸:۴۱ ب.ظ)arash691 نوشته شده توسط:سلام(25 فروردین ۱۳۹۶ ۰۱:۳۱ ب.ظ)*ahoo نوشته شده توسط:(24 فروردین ۱۳۹۶ ۰۹:۵۶ ب.ظ)arash691 نوشته شده توسط:(24 فروردین ۱۳۹۶ ۰۸:۴۷ ب.ظ)*ahoo نوشته شده توسط: سلام دوستان
لطفا این سوال رو راهنمایی کنید
چرا میشه گزینه۲؟
در مورد ۴ ام شرط first/follow نقض شده پس LL(1) نیست ، به گرامر زیر دقت کنید :
[tex]S\longrightarrowaAb[/tex]
[tex]A\longrightarrowa|B[/tex]
[tex]B\longrightarrowb|\lambda[/tex]
[tex]\alpha\: =\: B\: \: ,\: \beta\: =\: a\: [/tex]
[tex]first(B)\cap first(a)=\varnothing[/tex]
[tex]first(a)\cap follow(A)=\{a\}\cap\{b\}=\varnothing[/tex]
[tex]first(A)\cap follow(A)=\{a,b\}\cap\{b\}=\{b\}\ne\varnothing[/tex]
توی کتاب شاپوری شرط LL1 بودن رو اینجوری نوشته
اینجا کهچیزی درمورد first(A) و follow(A) نگفته
اگه دقت کنید تو همون عکسی که فرستادین پایین نوشته اگه تعداد قاعده بیشتر از دوتا باشه باید برای همه قاعده شرط first/follow بررسی بشه تو سوال ما یکبار first/follow و برای یکی از قاعده ها بررسی کردیم ولی در اصل باید برای همه ی قاعده ها درنظر بگیرم چون یکی از انها شرط first/follow و نقض کرده پس LL1 نیست ، شرط first/follow هم مورد دومی هست که تو عکس گفته شده !
دوست گرامی جسارتا من هم متوجه توضیحات شما نمیشم
در کل برای بررسی برخورد ها ی fi/fi و fi/fo برای متغیر های که بیش از یک قاعده تولید دارند را بررسی می کنیم دقیقا مثل تصویری که گذاشته شده.
در اینجا هم برای A داریم [tex]A\longrightarrow\alpha\mid\beta[/tex]
یکی بررسی برخورد [tex]first(\alpha)\: [/tex] با [tex]first(\beta)[/tex]
و چون از [tex]\alpha[/tex] می توانیم [tex]\lambda[/tex] را مشتق کنیم پس باید برخورد [tex]first(\beta)[/tex] با [tex]follow(A)[/tex] را هم بررسی کنیم.و تمام اینکه مورد چهارم بیان شده در سوال مخالف تهی است دلیلی بر وجود برخورد در گرامر نیست در واقع هر برخورد fi/fo را لازم نیست بررسی کنیم. وبرای بررسی LL بودن باید سایر قواعد را هم بررسی کنیم.
اگر غیر این است لطفا توضیح بفرمایید.
ارسال: #۶
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
(۲۶ فروردین ۱۳۹۶ ۰۴:۰۵ ب.ظ)msour44 نوشته شده توسط: سلام
دوست گرامی جسارتا من هم متوجه توضیحات شما نمیشم
در کل برای بررسی برخورد ها ی fi/fi و fi/fo برای متغیر های که بیش از یک قاعده تولید دارند را بررسی می کنیم دقیقا مثل تصویری که گذاشته شده.
در اینجا هم برای A داریم [tex]A\longrightarrow\alpha\mid\beta[/tex]
یکی بررسی برخورد [tex]first(\alpha)\: [/tex] با [tex]first(\beta)[/tex]
و چون از [tex]\alpha[/tex] می توانیم [tex]\lambda[/tex] را مشتق کنیم پس باید برخورد [tex]first(\beta)[/tex] با [tex]follow(A)[/tex] را هم بررسی کنیم.و تمام اینکه مورد چهارم بیان شده در سوال مخالف تهی است دلیلی بر وجود برخورد در گرامر نیست در واقع هر برخورد fi/fo را لازم نیست بررسی کنیم. وبرای بررسی LL بودن باید سایر قواعد را هم بررسی کنیم.
اگر غیر این است لطفا توضیح بفرمایید.
سلام و وقت بخیر ...
دوست گرامی به نظر بنده این گرامر با توجه به این که در شرایط داده شده شرطی با عنوان [tex]First(A)\: \cap\: Follow\: (A)\: \ne\: \phi\: [/tex] داریم قطعا با توجه به سه قاعده دیگر و بدون توجه به سایر قوانین این گرامر تشخیص میدیم که گرامر LL1 نیست ، اما اگر این شرط به طوری بود که [tex]First(A)\: \cap\: Follow\: (A)\: =\: \phi\: [/tex] آنگاه میشد بگیم که تشخیص نوع گرامر به سایر قوانین بستگی دارد . البته دقت کنیم که با توجه به این شرایط شرط LL1 بودن برای متغیر A نقض نمیشود در حقیقت قانون چهارم ( که ذکر کردیم ) باعث بروز Fi/Fo در یکی از متغیر های دیگر گرامر حتما میشود . و دیگر نیازی به بررسی سایر قوانین این گرامر نمیباشد ...
ارسال: #۷
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
(۲۶ فروردین ۱۳۹۶ ۰۵:۰۴ ب.ظ)alireza01 نوشته شده توسط:سلام(26 فروردین ۱۳۹۶ ۰۴:۰۵ ب.ظ)msour44 نوشته شده توسط: سلام
دوست گرامی جسارتا من هم متوجه توضیحات شما نمیشم
در کل برای بررسی برخورد ها ی fi/fi و fi/fo برای متغیر های که بیش از یک قاعده تولید دارند را بررسی می کنیم دقیقا مثل تصویری که گذاشته شده.
در اینجا هم برای A داریم [tex]A\longrightarrow\alpha\mid\beta[/tex]
یکی بررسی برخورد [tex]first(\alpha)\: [/tex] با [tex]first(\beta)[/tex]
و چون از [tex]\alpha[/tex] می توانیم [tex]\lambda[/tex] را مشتق کنیم پس باید برخورد [tex]first(\beta)[/tex] با [tex]follow(A)[/tex] را هم بررسی کنیم.و تمام اینکه مورد چهارم بیان شده در سوال مخالف تهی است دلیلی بر وجود برخورد در گرامر نیست در واقع هر برخورد fi/fo را لازم نیست بررسی کنیم. وبرای بررسی LL بودن باید سایر قواعد را هم بررسی کنیم.
اگر غیر این است لطفا توضیح بفرمایید.
سلام و وقت بخیر ...
دوست گرامی به نظر بنده این گرامر با توجه به این که در شرایط داده شده شرطی با عنوان [tex]First(A)\: \cap\: Follow\: (A)\: \ne\: \phi\: [/tex] داریم قطعا با توجه به سه قاعده دیگر و بدون توجه به سایر قوانین این گرامر تشخیص میدیم که گرامر LL1 نیست ، اما اگر این شرط به طوری بود که [tex]First(A)\: \cap\: Follow\: (A)\: =\: \phi\: [/tex] آنگاه میشد بگیم که تشخیص نوع گرامر به سایر قوانین بستگی دارد . البته دقت کنیم که با توجه به این شرایط شرط LL1 بودن برای متغیر A نقض نمیشود در حقیقت قانون چهارم ( که ذکر کردیم ) باعث بروز Fi/Fo در یکی از متغیر های دیگر گرامر حتما میشود . و دیگر نیازی به بررسی سایر قوانین این گرامر نمیباشد ...
به نظر نتونستم منظورمو خوب بیان کنم فقط خواستم بگم که مورد ۴ باعث برخورد در A نمی شود(شماهم فرمودید). و لازم نیست هر برخورد ممکن در یک قاعده خاص را بررسی کنیم و باید احتمال برخورد دردیگر قاعده ها را هم بهشون توجه کرد واینکه گفتم مورد ۴ دلیلی بر برخورد در گرامر نیست منظورم فقط در قاعده های A بود.با سپاس از شما
لطفا استنباط تون را درباره عدم نیاز به بررسی دیگر قاعده با توجه به مورد ۴ اگر امکان دارد بفرمایید(روند نتیجه گیری).
ارسال: #۸
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
(۲۶ فروردین ۱۳۹۶ ۰۷:۰۰ ب.ظ)msour44 نوشته شده توسط: سلام
به نظر نتونستم منظورمو خوب بیان کنم فقط خواستم بگم که مورد ۴ باعث برخورد در A نمی شود(شماهم فرمودید). و لازم نیست هر برخورد ممکن در یک قاعده خاص را بررسی کنیم و باید احتمال برخورد دردیگر قاعده ها را هم بهشون توجه کرد واینکه گفتم مورد ۴ دلیلی بر برخورد در گرامر نیست منظورم فقط در قاعده های A بود.با سپاس از شما
لطفا استنباط تون را درباره عدم نیاز به بررسی دیگر قاعده با توجه به مورد ۴ اگر امکان دارد بفرمایید(روند نتیجه گیری).
سلام و درود بر شما ...
بله مورد ۴ این سوال باعث برخورد در A نخواهد شد اما یادمه یک قضیه در کتاب درسی دیدم که اثبات کرده بود در هنگام بررسی LL1 بود یک گرامر زمانی که برای یک متغیر NT از گرامر ، اشتراک First و Follow آن متغیر در صورت وجود ( که در اینجا وجود دارد چون تهی نیست ) برابر با x باشد ( یا x ای وجود داشته باشد ) قطعا در جدول پارسینگ بالا به پایین این گرامر در ستون x ؛ تداخل داریم که باعث نقض شرایط LL1 برای این گرامر میشود . میتونم یه مثال ساده هم بزنم براتون ، شرایطی مساله رو برای گرامر زیر پیاده سازی و تحلیل کنید برای خودتون تا به صحبت های من پی ببرید ، البته ممکنه اشتباه کرده باشم و نیاز به مطالعه بیشتر داشته باشم روی این موضوع ... ( در گرامر زیر آلفا برابر B و بتا برابر c در نظر گرفتم )
[tex]....\: \: \: S\: \: \longrightarrow\: \: \: aAb\: \: \: \: ,\: \: \: A\: \longrightarrow\: c\: \mid\: B\: \: ,\: \: \: B\: \longrightarrow\: b\: \mid\: \lambda\: \: \: ...[/tex]
۰
ارسال: #۹
  
RE: سوال ۱۰۶ کامپیوتر ۹۵
سلام
در مورد وجود چنین قضیه ای اطلاعی ندارم.اگر عنوان کتاب را به خاطر دارد بگید شاید اطلاعات بیشتری در این باره وجود داشته باشد.
به هر حال وجود برخورد در خود A با توجه به سه مورد اول منتفی است (نتیجه گیری مباحث مطرح شده)ولی درمورد چهارم می توانیم به این صورت بیان کنیم که
[tex]fi(A)\: \cap\: fo(A)\ne\phi\: \: \longrightarrow\: \: (fi(\alpha)\: \cup\: fi(\beta))\: \cap\: fo(A)\ne\phi\: \longrightarrow\: (fi(\alpha)\cap\: fo(A))\: \cup\: (fi(\beta)\cap fo(A))\: \ne\phi[/tex]
چون [tex]fi(\beta)\: \cap\: fo(A)\: =\phi[/tex] موردسوم پس
[tex]fi(\alpha)\: \cap\: fo(A)\: \ne\phi[/tex]
از طرفی از [tex]\alpha[/tex] میتوان [tex]\lambda[/tex] را مشتق کرد واین به دو صورت رخ می دهد اول اینکه خود [tex]\alpha[/tex] برابر با [tex]\lambda[/tex] است و یا اینکه [tex]\alpha[/tex] از تعدادی متغیر تشکیل شده که به صورت غیر مستقیم [tex]\lambda[/tex] را تولید می کند مثل B و یا BC و ...نمی تواند شامل الفبا باشد چون باید رشته تهی را تولید کند. حال با توجه به [tex]fi(\alpha)\: \cap\: fo(A)\: \ne\phi[/tex] و اینکه در follow رشته تهی نخواهیم داشت پس [tex]\alpha[/tex] تمام متغیر است پس [tex]A\longrightarrow\alpha|\beta\: \: \: \Longrightarrow\: A\longrightarrow B|\beta[/tex] (درنظر گرفتن متغیر بیشتر برای الفا تاثیری در روند اثبات ندارد)
و واضح است که [tex]fo(A)\: \subseteq\: fo(B)[/tex] است
از طرفی B باید [tex]\lambda[/tex] را تولید کند(مستقیم یا غیر مستقیم تاثیری ندارد) و همچنین حداقل قاعده دیگری نیز باید داشته باشد تا first ان قاعده با فالو A اشتراک داشته باشد(با توجه به[tex]fi(\alpha)\: \cap\: fo(A)\: \ne\phi[/tex] و اینکه الفا برابر B گرفتیم ) پس داریم
[tex]B\: \longrightarrow\: \lambda\: |\: \delta\: |.....[/tex]
که [tex]fi(\delta\: )\: \cap\: fo(A)\: \ne\phi[/tex]
حال اگر برخورد ها را برای متغیر B بررسی کنیم در بدترین حالت اگر هیچ برخورد fi/fi بین قاعده های تولیدی B نباشد ولی چون یکی از قاعده ها [tex]\lambda[/tex] تولید می کند(مستقیم یا غیر مستقیم) پس باید اشتراک fi دیگر قاعده ها با [tex]fo(B)[/tex] را بررسی کنیم
چون [tex]fo(A)\: \subseteq\: fo(B)[/tex] است و [tex]fi(\delta\: )\: \cap\: fo(A)\: \ne\phi[/tex] پس
[tex]fi(\delta)\: \cap\: fo(B)\: \ne\: \phi[/tex] است یعنی برخورد fi/fo برای متغیر B
اگر هم الفا مثلا دو متغیره باشد مثل BC باز این BC باید رشته تهی را تولید کند و باز fo A زیر مجموعه هم B ,و هم C می شود
گزینه ۲
زمان زیادی صرف شد.منتظر نظرات دوستان هستم
در مورد وجود چنین قضیه ای اطلاعی ندارم.اگر عنوان کتاب را به خاطر دارد بگید شاید اطلاعات بیشتری در این باره وجود داشته باشد.
به هر حال وجود برخورد در خود A با توجه به سه مورد اول منتفی است (نتیجه گیری مباحث مطرح شده)ولی درمورد چهارم می توانیم به این صورت بیان کنیم که
[tex]fi(A)\: \cap\: fo(A)\ne\phi\: \: \longrightarrow\: \: (fi(\alpha)\: \cup\: fi(\beta))\: \cap\: fo(A)\ne\phi\: \longrightarrow\: (fi(\alpha)\cap\: fo(A))\: \cup\: (fi(\beta)\cap fo(A))\: \ne\phi[/tex]
چون [tex]fi(\beta)\: \cap\: fo(A)\: =\phi[/tex] موردسوم پس
[tex]fi(\alpha)\: \cap\: fo(A)\: \ne\phi[/tex]
از طرفی از [tex]\alpha[/tex] میتوان [tex]\lambda[/tex] را مشتق کرد واین به دو صورت رخ می دهد اول اینکه خود [tex]\alpha[/tex] برابر با [tex]\lambda[/tex] است و یا اینکه [tex]\alpha[/tex] از تعدادی متغیر تشکیل شده که به صورت غیر مستقیم [tex]\lambda[/tex] را تولید می کند مثل B و یا BC و ...نمی تواند شامل الفبا باشد چون باید رشته تهی را تولید کند. حال با توجه به [tex]fi(\alpha)\: \cap\: fo(A)\: \ne\phi[/tex] و اینکه در follow رشته تهی نخواهیم داشت پس [tex]\alpha[/tex] تمام متغیر است پس [tex]A\longrightarrow\alpha|\beta\: \: \: \Longrightarrow\: A\longrightarrow B|\beta[/tex] (درنظر گرفتن متغیر بیشتر برای الفا تاثیری در روند اثبات ندارد)
و واضح است که [tex]fo(A)\: \subseteq\: fo(B)[/tex] است
از طرفی B باید [tex]\lambda[/tex] را تولید کند(مستقیم یا غیر مستقیم تاثیری ندارد) و همچنین حداقل قاعده دیگری نیز باید داشته باشد تا first ان قاعده با فالو A اشتراک داشته باشد(با توجه به[tex]fi(\alpha)\: \cap\: fo(A)\: \ne\phi[/tex] و اینکه الفا برابر B گرفتیم ) پس داریم
[tex]B\: \longrightarrow\: \lambda\: |\: \delta\: |.....[/tex]
که [tex]fi(\delta\: )\: \cap\: fo(A)\: \ne\phi[/tex]
حال اگر برخورد ها را برای متغیر B بررسی کنیم در بدترین حالت اگر هیچ برخورد fi/fi بین قاعده های تولیدی B نباشد ولی چون یکی از قاعده ها [tex]\lambda[/tex] تولید می کند(مستقیم یا غیر مستقیم) پس باید اشتراک fi دیگر قاعده ها با [tex]fo(B)[/tex] را بررسی کنیم
چون [tex]fo(A)\: \subseteq\: fo(B)[/tex] است و [tex]fi(\delta\: )\: \cap\: fo(A)\: \ne\phi[/tex] پس
[tex]fi(\delta)\: \cap\: fo(B)\: \ne\: \phi[/tex] است یعنی برخورد fi/fo برای متغیر B
اگر هم الفا مثلا دو متغیره باشد مثل BC باز این BC باید رشته تهی را تولید کند و باز fo A زیر مجموعه هم B ,و هم C می شود
گزینه ۲
زمان زیادی صرف شد.منتظر نظرات دوستان هستم
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close