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

گرامر نویسی

ارسال:
  

mehr.iman پرسیده:

گرامر نویسی

سلام
من تو نوشتن گرامر برای زبانها مشکل دارم،از روی گرامر میتونم با روش سعی و خطا زبانشو بنویسم ولی وقتی زبانو بده گرامرو بخواد نمیتونم بنویسم.
شما چجوری برای یه زبان گرامر مینویسید،یعنی از کجا شروع میکنید؟
مثلا برای این زبان به گرامر بنویسید:
L={a^i+1 b^2i|i>=0}

۰
ارسال:
  

hamidkhl پاسخ داده:

RE: گرامر نویسی

(۰۲ آبان ۱۳۸۹ ۱۲:۱۲ ق.ظ)mehr.iman نوشته شده توسط:  سلام
من تو نوشتن گرامر برای زبانها مشکل دارم،از روی گرامر میتونم با روش سعی و خطا زبانشو بنویسم ولی وقتی زبانو بده گرامرو بخواد نمیتونم بنویسم.
شما چجوری برای یه زبان گرامر مینویسید،یعنی از کجا شروع میکنید؟
مثلا برای این زبان به گرامر بنویسید:
L={a^i+1 b^2i|i>=0}

برای یک زبان میشه چندین گرامر نوشت، و گرامر یک زبان یگانه نیست، یه راه این هستش که شما بیای یه گرامر ساده‌تر که بلد هستید و به این گرامر هم ربط داره(!)رو بنویسید و اونو تعمیم بدید به گرامر مطلوب، مثلاً تو همین مثالی که گفتید تعداد a‌ها نصف تعداد b‌ها به اضافه یک هست، میشه گرامر{a^n b^n } رو بنویسید
S-> aSb|lambda
حالا اگه تو گرامر بالا به جای b قرار بدیم bb گرامرمون تبدیل میشه به {a^n b^2n}
با این حساب فقط میمونه اون به اضافه‌ی یک برای a‌ها که اگه به جای lambda قرار بدید a گرامر ساخته میشه:
S->aSbb|a

این یه راهی بود که من پیشنهاد دادم برای رسیدن به گرامر یک زبان برای هر نفر راهی هستBig Grin

ارسال:
  

mehr.iman پاسخ داده:

RE: گرامر نویسی

(۰۲ آبان ۱۳۸۹ ۰۸:۵۷ ق.ظ)hamidkhl نوشته شده توسط:  
(02 آبان ۱۳۸۹ ۱۲:۱۲ ق.ظ)mehr.iman نوشته شده توسط:  سلام
من تو نوشتن گرامر برای زبانها مشکل دارم،از روی گرامر میتونم با روش سعی و خطا زبانشو بنویسم ولی وقتی زبانو بده گرامرو بخواد نمیتونم بنویسم.
شما چجوری برای یه زبان گرامر مینویسید،یعنی از کجا شروع میکنید؟
مثلا برای این زبان به گرامر بنویسید:
L={a^i+1 b^2i|i>=0}

برای یک زبان میشه چندین گرامر نوشت، و گرامر یک زبان یگانه نیست، یه راه این هستش که شما بیای یه گرامر ساده‌تر که بلد هستید و به این گرامر هم ربط داره(!)رو بنویسید و اونو تعمیم بدید به گرامر مطلوب، مثلاً تو همین مثالی که گفتید تعداد a‌ها نصف تعداد b‌ها به اضافه یک هست، میشه گرامر{a^n b^n } رو بنویسید
S-> aSb|lambda
حالا اگه تو گرامر بالا به جای b قرار بدیم bb گرامرمون تبدیل میشه به {a^n b^2n}
با این حساب فقط میمونه اون به اضافه‌ی یک برای a‌ها که اگه به جای lambda قرار بدید a گرامر ساخته میشه:
S->aSbb|a

این یه راهی بود که من پیشنهاد دادم برای رسیدن به گرامر یک زبان برای هر نفر راهی هستBig Grin

دوستان واقعا ممنون از پاسخاتون
آقا حمید این گرامری که شما نوشتید جواب میده و فک میکنم از نوع مستقل از متن باشه،حالا اگه بگن همونو به صورت حساس به متن بنویسید چیکار باید کرد؟
بعد اینکه همونطور که فرمودید برای یه زبان چندین گرامر وجود داره،بعد از اینکه گرامرو نوشتیم از کجا مطمئن شیم که گرامر مورد نظر همه رشته‌ها رو تولید میکنه؟(یا چجوری بفهیمم دوتا گرامر معادل هم هستن؟)
(۰۲ آبان ۱۳۸۹ ۱۱:۰۴ ق.ظ)nana2010 نوشته شده توسط:  گراف (اتوماتا )هم می تونه کمک کنه.اول اتوماتاشو بکشید( ممکنه اوایل بهینه نکشید ولی با تمرین و سعی و خطا درست می شه )بعد که گره‌ها رو علامت گذاری کردید می تونید گرامر رو راحت بنویسید.
والا من فقط فصل یکو خوندم و هنوز به اونجا نرسیدم،این درسم چون تو دانشگاه نداشتیم یه خورده برام سخته اولاش،حالا یواش یواش داره ازش خوشم میاد!
یافتن تمامی ارسال‌های این کاربر

۰
ارسال:
  

ف.ش پاسخ داده:

گرامر نویسی

بله حق با آقا حمیده.

aa^i b^ib^i
s--> aSbb
s--> a


برای درک این مسئله باید قسمتی از کتاب که a^nb^n رو توضیح داده بخونید.

۰
ارسال:
  

nana2010 پاسخ داده:

گرامر نویسی

گراف (اتوماتا )هم می تونه کمک کنه.اول اتوماتاشو بکشید( ممکنه اوایل بهینه نکشید ولی با تمرین و سعی و خطا درست می شه )بعد که گره‌ها رو علامت گذاری کردید می تونید گرامر رو راحت بنویسید.

۰
ارسال:
  

ف.ش پاسخ داده:

گرامر نویسی

میتونید برای شروع اینجوری گرامر بنویسید مثلا توی این گرامر کوچکترین رشته a است بعد به ازای i های بعدی aaabbbb و aaaabbbbbb داریم اگه دقت کنید در هر بار افزایش i یک a و دو b اضافه شده با تشخیص این موضوع به سادگی گرامر رو مینویسیم. پس یکی تشخیص کوچکترین رشته مهمه و یکی تشخیص قانون حاکم بر گرامر.

ارسال:
  

mehr.iman پاسخ داده:

RE: گرامر نویسی

(۰۲ آبان ۱۳۸۹ ۱۱:۰۷ ق.ظ)afagh1389 نوشته شده توسط:  میتونید برای شروع اینجوری گرامر بنویسید مثلا توی این گرامر کوچکترین رشته a است بعد به ازای i های بعدی aaabbbb و aaaabbbbbb داریم اگه دقت کنید در هر بار افزایش i یک a و دو b اضافه شده با تشخیص این موضوع به سادگی گرامر رو مینویسیم. پس یکی تشخیص کوچکترین رشته مهمه و یکی تشخیص قانون حاکم بر گرامر.
بله درسته، نکته همون تشخیص قانونس،این مثال تقریبا ساده بود و راحت میشد قانونشو درآورد ولی بعضی جاها پیدا کردن قانونش سخته که البته اونم با تمرین حل میشه.
یافتن تمامی ارسال‌های این کاربر

۰
ارسال:
  

arezoo.j پاسخ داده:

گرامر نویسی

من گرامر خطی راست رو از روی گراف به راحتی می نویسم ولی خطی چپ رو نه از روی گراف و نه از روی گرامر خطی راست نمی تونم بنویسم
(فقط ابتدای گرامر چپ(عبارت اول )که انتهای رشته است رو می تونم بنویسم)
لطفاً راهنمایی کنید

۰
ارسال:
  

ف.ش پاسخ داده:

گرامر نویسی

چون n=0 هم داریم کوچکترین رشته a هست اما اگر n>0 بود کوچکترین رشته aabb بود.

۰
ارسال: #۱۰
  

Fardad-A پاسخ داده:

گرامر نویسی

بنظر من اینکه آیا گرامر مثال نقض داره یا نه یعنی کاملا" جامع و مانع هست بسته به گرامر و زبان داره.سختی وآسونی مسئله هم بهمین بسته است. فرمولی هم من واسه اش ندیدم که شما بخواهید در همه موارد از اون تبعیت کنید. این یک مهارت هست که شما پیدا میکنید. یعنی اینکه آیا این گرامر میتونه تمام رشته های زبان رو تولید کنه یا نه. من ندیدم جایی فرمول خاصی داشته باشه. کسی دیده؟؟؟



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  کمک برای شروع برنامه نویسی seyed ehsn ۲۱ ۱۶,۳۰۶ ۲۴ بهمن ۱۴۰۲ ۰۵:۱۰ ب.ظ
آخرین ارسال: maryamjafari63
  پروپوزال نویسی ف.ش ۹ ۱۳,۳۸۵ ۰۱ دى ۱۴۰۰ ۰۱:۱۷ ب.ظ
آخرین ارسال: golkhorami
  رودمپی برای برنامه نویسی Doctorwho ۱ ۲,۱۵۲ ۲۵ آذر ۱۴۰۰ ۰۳:۰۲ ق.ظ
آخرین ارسال: one hacker alone
  استخدام برنامه نویس یا کارآموز برنامه نویسی سی شارپ Hesitant_Girl ۰ ۱,۸۱۹ ۲۰ شهریور ۱۴۰۰ ۱۲:۰۲ ب.ظ
آخرین ارسال: Hesitant_Girl
  رودمپی برای یادگیری برنامه نویسی Doctorwho ۰ ۱,۸۴۳ ۲۳ اردیبهشت ۱۴۰۰ ۱۱:۲۲ ق.ظ
آخرین ارسال: Doctorwho
  آموزش زبان انگلیسی:گرامر cyruskingsolomon ۱ ۳,۳۹۳ ۲۲ فروردین ۱۴۰۰ ۰۱:۲۲ ب.ظ
آخرین ارسال: cyruskingsolomon
  گرامر زبان انگلیسی:صفت های ed و ing دار cyruskingsolomon ۳ ۳,۱۸۴ ۱۵ بهمن ۱۳۹۹ ۰۶:۴۱ ب.ظ
آخرین ارسال: cyruskingsolomon
  کدام زبان برنامه‌نویسی بهترین انتخاب است؟ elecomco ۲ ۳,۱۸۱ ۱۰ شهریور ۱۳۹۹ ۰۵:۱۶ ب.ظ
آخرین ارسال: kilookiloo
Sad مشکل در برنامه نویسی شیء گرا Xialu ۰ ۲,۳۲۲ ۰۵ شهریور ۱۳۹۹ ۱۲:۰۰ ب.ظ
آخرین ارسال: Xialu
  برای آموزش مبانی برنامه نویسی چکار کنیم؟ elecomco ۰ ۲,۵۶۲ ۱۹ تیر ۱۳۹۹ ۱۲:۰۵ ق.ظ
آخرین ارسال: elecomco

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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