PDA

View Full Version : نرم افزار yacc



marjanjan
03-01-2008, 18:59
سلام::11:

اگه کسی از کار با نرم افزار yacc چیزی بلده چند تا سوال داشتم.

خیلی هم حرفه ای نبود اشکال نداره.چون خودمم تازه دارم یاد میگیرم...:31:

مرسی:34:

mehdi30nema
03-01-2008, 19:18
سلام::11:

اگه کسی از کار با نرم افزار yacc چیزی بلده چند تا سوال داشتم.

خیلی هم حرفه ای نبود اشکال نداره.چون خودمم تازه دارم یاد میگیرم...:31:

مرسی:34:
سلام
اگه منظورت همون برنامه ايي كه براي تبديل فايل هاي iso به cso است من باهاش كار كردم .

bad_boy_2007
03-01-2008, 20:19
منظورت Lex و Yacc هست ؟
Yacc (تحلیلگر نحوی)
اگه در مورد Flex ، Bison ، Lex Yacc هست بگو اگه تونستم کمکت میکنم .
در ضمن اگه دنبال همچین نرم افزارهایی هستی برو سراغ Parser Generator هم قوی تره و هم راحت تر !!! تازه تحت ویندوزه !

marjanjan
04-01-2008, 10:31
سلام
اگه منظورت همون برنامه ايي كه براي تبديل فايل هاي iso به cso است من باهاش كار كردم .
راستش خیلی نمیدونم.میخوام یاد بگیرم.اینو میدونم که مربوط به گرامرهای زبان میشه و اونا رو پارس میکنه.
برای درس کامپایلرم میخوام:46:

marjanjan
04-01-2008, 10:35
منظورت Lex و Yacc هست ؟
Yacc (تحلیلگر نحوی)
اگه در مورد Flex ، Bison ، Lex Yacc هست بگو اگه تونستم کمکت میکنم .
در ضمن اگه دنبال همچین نرم افزارهایی هستی برو سراغ Parser Generator هم قوی تره و هم راحت تر !!! تازه تحت ویندوزه !
آره همینه.نرم افزارش و دارم.میخوام بدونم گرامر و به چه شکلی باید وارد کنیم؟:46:

mehdi30nema
04-01-2008, 18:33
راستش خیلی نمیدونم.میخوام یاد بگیرم.اینو میدونم که مربوط به گرامرهای زبان میشه و اونا رو پارس میکنه.
برای درس کامپایلرم میخوام:46:
والا اون برنامه yacc كه من استفاده ميكنم براي تبديل فايلهاي بازيهاي كنسوله psp است و به ترجمه ارتباطي نداره . با عرضه پوزش

bad_boy_2007
05-01-2008, 22:31
والا اون برنامه yacc كه من استفاده ميكنم براي تبديل فايلهاي بازيهاي كنسوله psp است و به ترجمه ارتباطي نداره . با عرضه پوزش

من در مورد نحوا پارس کردن گرامرهای Lex و Yacc الان چیز زیادی یادم نیست ولی اگه تمایل داشتی با Flex و Biston کار کنی میتونم کمکت کنم یک راهنمای کوچیک هم نوشتم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

این هم بخشی از پروژه کامپایلرم :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در مرحله اول کافيه متن گرامر به زبان Flex را با توجه به راهنماي گرامر Flex در نوت پد تايپ کنيد ، فقط نکته اي که ميمونه اينه که خيلي عجله نکنين و برنامتون رو سطر به سطر بنويسين ، تست کنيد در صورت عدم بروز مشکل سطر بعدي رو اضافه کنيد و عمل تست رو تکرار کنيد (هلزوني در بحث مهندسي نرم افزار) در غير اينصورت ممکنه با اولين برنامه اي که با Flex مينويسين کلا از محيط اين برنامه فاصله بگيرين ! اجازه بدين صادقانه بگم Flex ابزار قدرتمنديه که ميتونين استفاده هاي گسترده اي ازش بکنين ولي محيط توسعه اي در اختيارتون قرار نميده مگر سطر فرمان بسيار خشک و با امکانات محدود ، پس سعي کنين عجولانه حرکت نکنين.

بعد از اينکه برنامتون رو نوشتين بايد Save کنيد ، نکته اي که در بخش Save کردن وجود داره و حتما بايد رعايت بشه اينه که حتما گزينه All File رو در بخش Type وارد کنيد در غير اينصورت مثلا اگر نام A.L را براي فايل خروجي انتخاب کنيد برنامه بطور اتوماتيک نام A.L.Txt رو به فايلتون ميده که در فرآيند باز کردن با Flex به مشکل بر ميخورين.براي هماهنگي بهتر براي ادامه کار برنامه تون رو با نام A.l ذخيره کيند ، ميتونين براي شروع از اين برنامه براي تبديل استفاده کنين .

اگر هنوز Flex رو دانلود نکردين از اينجا اين فايل رو دانلود کنين ، ابزارهاي مرتبط ديگه هم در اينجا قرار داره. خب ، نوبت به اجراي Flex ميرسه ، از منوي Start گزينه Run رو انتخاب کنيد (يا از کليد ترکيبي Start+R استفاده کنين) ، cmd رو تايپ کنيد و ok کنين .

صفحه مشکي آشناي سطر فرمان داس (Command prompt) رو مشاهده ميکنين ، باري هماهنگي بيشتر جهت ادامه فايل Flex.Exe و فايل A.L رو دز ريشه درايو C کپي کنين . همانطور که در سطر فرمان اعلان شده دو دستور زير را تايپ کنيد تا به ريشه درايو C منتقل شويد.


c:

cd\


نوبت به اجراي برنامه Flex ميرسه ! براي اجراي Flex ، دو راه وجود داره که راه اول بهيچ وجه توصيه نميشه ولي جهت آشنايي بد نيست بدونين !

1-در روش اول کافيه بطور مستقيم فايل Flex.exe رو از طريق سطر فرمان باز کنين و سپس گرامر رو تا انتها بنويسين ، هر وقت هم که تموم شد کليد Ctr+Z (نشانگر پايان فايل) رو بزنين تا از ويرايشگر فرمان خارج شده و در صورت صحت گرامر فايل خروجي رو مشاهده کنين .

2-در روش دوم اول همونطور که اين بخش مشاهده کرديد ابتدا يک فايل (پيشنهاد ميشه با پسوند L) ايجاد کرده و سپس فايل رو از طريق سطر فرمان به کامپايلر Flex پاس ميدين و در نهايت در صورتي که فايل مبداء وجود داشته باشه و گرامر صحيح باشه فايل خروجي ايجاد خواهد شد . در اين بخش هم مثل بخش اول (نوشتن گرامر) دقت لازمه رو به خرج بدين که تقريبا با تمام مشکلاتي که مواجه ميشين در اين دو بخش قرار دارن .

نکاني در اين بخش ضروري ميرسه که به اختصار ميگم:

الف- در صورتي که نام فايل مقصد ذکر نشه (فايلي به زبان C که قراره فايل خروجي باشه) ، نام Yylex.l بصورت نام پيش فرض درنظر گرفته خواهد شد.

ب- در صورت عدم مواجهه با پيغام خطا ، ميتونين يکم خوشحال بشين ! از مرحله اول به سلامتي در رفتين و گرامرتون با گرامر استاندارد Flex مغايرت نداشته و فايل C با موفقيت ايجاد شده ، ولي خيلي هم خوشحال نشين که هنوز خيلي کار مونده !

ج- حتما فايل قبلي که Flex ايجاد کرده رو در هر مرحله ايجاد کرده رو حذف کنين ، اين کار باعث ميشه تا در صورت عدم موفقيت در کامپايل فايل به زبان Flex و عدم توجه به اين مهم ، از اجراي فايل کامپايل شده قبلي جلوگيري شود .

تقريبا کارتون تمومه فقط ميمونه بخش اجرا و اشکال زدايي ، براي اجرا به کامپايلر C يا C++ نياز دارين .

به دو روش ميتونين از برنامه نوشته شده به اين طريق خروجي بگيرين :

1- تعامل مستقيم : يعني بعد ار کامپايل برنامه با کامپايلر C يا ++C بصورت تعاملي گرامر زبون مورد نظرتون رو بنويسين و نتايج رو در خروجي مشاهده کنين ، در ذيل برنامه نمونه اي که در ابتداي اين نوشتار معرفي شده به روش تعاملي مشاهده ميکنين ، جهت پايان دادن به تعامل ميتونين کليد ترکيبي CTR+Z را بفشاريد.



2- ارسال فايل به برنامه : روش کاربردي کار با Flex محسوب ميشه و پس از تست و اشکالزدايي عموما از اين روش استفاده ميشه تا گرامر مورد نظر رو به برنامه پاس بديم و خطاهاي گرامر رو بسته به شيوه طراحي مشاهده کنيم ، بعنوان مثال برنامه فوق که جنبه آموزشي دارد و به شيوه تعاملي نوشته شده را ميتوان به صورت زير از طريق سطر فرمان اجرا کرد و فايل گرامر را به برنامه پست کرد .

دستور زير فايل a.c را تحليل لغوي کرده و در صفحه نمايش حاصل اين تحليل رو به نمايش ميزاره :
a.exe<a.c

و در نهايت ميتونين نتيجه تحليل لغوي رو در يک فايل بريزيد :
a.exe<a.c>b.txt

bad_boy_2007
05-01-2008, 22:32
ولی باز پیشنهاد میکنم اگه میتونی با ParserGenerator کار کن

marjanjan
06-01-2008, 21:07
ولی باز پیشنهاد میکنم اگه میتونی با ParserGenerator کار کن
واقعا ممنونم از کمک عالی و مفیدتون.
همه توضیحاتتون عالی بود اما استاد ما در این حد ازمون نخواستن

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

bad_boy_2007
06-01-2008, 21:16
واقعا ممنونم از کمک عالی و مفیدتون.
همه توضیحاتتون عالی بود اما استاد ما در این حد ازمون نخواستن

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

اگه با Flex مشکل نداره بگو فکر کنم یه جزوه و بخشی از کتابم در این مورد هست واست اسکن کنم هر چند تو پروژه خودم کاملا مشخصه

abdollahi.ozra
27-05-2008, 18:18
سلام.من ميخوام با bison كار كنم.باparser generator كامپايل ميشه ولي كامپايلر ++c به توابع تعريف شده error ميده.لطفا راهنمايي كنيد

bad_boy_2007
28-05-2008, 20:02
سلام.من ميخوام با bison كار كنم.باparser generator كامپايل ميشه ولي كامپايلر ++c به توابع تعريف شده error ميده.لطفا راهنمايي كنيد

متن کامل خطا رو بفرستید

animove
16-10-2008, 16:20
سلام
flex ای میخوام که با زبان #C در اون کار بشه.
اگه سراغ دارید خواهشن لینکش رو بگذارید.

animove
22-12-2008, 14:51
جواب سوال قبلیم که موند
اما اگه گسی با bison برای طراحی کامپایلر کار کرده،بهم بگه که چه جوری با bison کار کنم.
من که هر فایلی بهش میدم نمیشناسه!

shadow_4016
05-04-2009, 15:28
manzuretun az pass dadan be flex chiye?????

shadow_4016
05-04-2009, 15:33
???(سپس فايل رو از طريق سطر فرمان به کامپايلر Flex پاس ميدين) yani chi ke be flex pass bedin

setayesh*
09-10-2009, 15:32
salam ,kesi hast mano dar morede kar ba lex o yacc rahnamayi kone

setayesh*
09-10-2009, 15:56
forie fori
khehesh mikonam age kasi mitune mano dar zamineye kar ba lex o yacc komak kone

setayesh*
10-10-2009, 15:36
salam dustan,kesi dar beine shomaha darse shivaro pas karde

zari_ah
04-11-2009, 17:56
دانلود نرم افزار flex

yase abi
29-04-2012, 13:15
سلام من یه سوال دارم
یه برنامه به زبان lex پیاده سازی کنین که اعداد در مبنای 16 و 8 را محاسبه کند
اگه کسی بلده تورو خدا زودتر جواب بده

saghar2012
19-12-2012, 17:17
با سلام میشه محبت کنید لینک نرم افزار فلکس رو واسه دانلود بگذارید؟