سلام بر همه دوستان عزیز برنامه نویس
ببخشید من یه سوال داشتم
یه برنامه که یک گرامر زبان رو بگیره و 5 رشته از اون گرامرو چاپ کنه
کسی میتونه تو الگوریتمش کمکم کنه ... نمیتونم تحلیل کنم ...
ممنون میشم
Printable View
سلام بر همه دوستان عزیز برنامه نویس
ببخشید من یه سوال داشتم
یه برنامه که یک گرامر زبان رو بگیره و 5 رشته از اون گرامرو چاپ کنه
کسی میتونه تو الگوریتمش کمکم کنه ... نمیتونم تحلیل کنم ...
ممنون میشم
سلام
شاید بشه با این روش اولیه که در واقع همان اشتقاق در گرامر هست، پیاده سازی رو انجام داد.
قبل از هر چیز لازمه تا برنامه گرامر رو بدونه چی به چیه، یعنی باید ابتدای کار به این فکر کرد که چطوری و با چه قراردادهایی گرامر رو به برنامه شناسوند.
به نظرم یه راه برای شناسوندن گرامر به برنامه اینه که، هرکدوم از قوانین رو به عنوان یه رشته توی برنامه ذخیره کنیم،
بعد موقع استفاده از گرامر برای اشتقاق، کاراکترهای رشته ها رو از نظر پایانه یا غیر پایانه بودن، تحلیل کنیم.
همینش سخته ...
یکی دیگه هم هست که زبون L رو بگیره بعد بگه رشته ورودی تو L* هست یا نه ... ؟
این چی ؟
کاری که گفتم چندان سخت هم نیست،
فقط کافیه که روش های اشتقاق رو کمی عمیق تر درک کرد و الگوریتم موجود رو پیاده سازی کرد.
اصن هنگم .... اگه گرامر یک متغیر داشت راحت بود .. اما اگه چندتا متغیر داشته باشه و هر متغیر پایانه های خودش اونموقع سخت میشه ...
اون دومی چی ؟ L*
در مورد اون راستش طرح خاصی ندارم فعلا.نقل قول:
اون دومی چی ؟ L*
در رابطه با الگوریتم تشخیص عضویت یک عبارت در یک گرامر و یک زبان، میشه از الگوریتم های پارس بالا به پایین و پایین به بالا استفاده کرد.
البته هریک از این الگوریتم ها در دو نوع اول سطح و اول عمق موجود می باشند که هرکدوم ویژگی هایی رو دارند.