PDA

View Full Version : سوال: ساخت یک مفسر بسیار ساده ؟



Emperor280
جمعه 17 مهر 1394, 10:35 صبح
سلام دوستان
به عنوان پروژه ، ساخت یه مفسر ساده ( در ++C ) به من محول شده که من به هیچ وجه ازش سر در نمیارم فقط در این حد میدونم که برنامه رو خط به خط اجرا کنه ! :لبخند:
طرز کار این مفسر اینه که سورس یه برنامه خیلی ساده ( میشه گفت ساده شده ی C ) رو بگیره و اجرا کنه .
استاد این نمونه رو مثال زد ( یه راهنمایی هم کرد که میشه از آرایه ها استفاده کرد ) :



int a,b,c;
a=2;
b=a;
c=a+b;
out c;


که مفسر بعد از اجرا باید عدد 4 رو در خروجی چاپ کنه .
اگه کسی چیزی در این باره میدونه یا سورسی مشابه این مفسر رو در اختیار داره ؛ خیلی ممنون میشم دست مارو هم بگیره . :خجالت:

Emperor280
جمعه 17 مهر 1394, 11:49 صبح
کمک ؟
دوستان ؟
نبود ؟

:افسرده:

pbm_soy
جمعه 17 مهر 1394, 21:33 عصر
اولا شما زبانی را برای تفسیر انتخاب کنید که قواعد پیچیده ای نداشته باشد مثلا بیسیک یا پایتون! شما تو این مثال دستوراتت سی است و همینطور تعداد دستورات را هم باید محدود کنید
نوشتن مفسر کارای زیاد دارد! درس نظریه زبانها وماشینها و درس کامپایلرها را باید بخوانید تا حداقل با الگوریتمهای اینکار آشنا شوید و یا حداقل بدانید که همچین برنامه ای چه بخشهایی باید داشته باشد و هر بخش چه کاری باید انجام دهد؟!

حالا شما تو اینترنت بگردید مثال سورس مفسر بیسیک را با زبان c/c++ پیدا خواهید کرد زیاد است!
کتاب c power user's guide نوشته هربرت شیلد فصلی تحت عنوان مفسر دارد و در آن یک مفسر بیسیکدساده را بطور کامل با زبان c پیادهدسازی کرده است

Emperor280
جمعه 17 مهر 1394, 22:06 عصر
اولا شما زبانی را برای تفسیر انتخاب کنید که قواعد پیچیده ای نداشته باشد مثلا بیسیک یا پایتون! شما تو این مثال دستوراتت سی است و همینطور تعداد دستورات را هم باید محدود کنید
نوشتن مفسر کارای زیاد دارد! درس نظریه زبانها وماشینها و درس کامپایلرها را باید بخوانید تا حداقل با الگوریتمهای اینکار آشنا شوید و یا حداقل بدانید که همچین برنامه ای چه بخشهایی باید داشته باشد و هر بخش چه کاری باید انجام دهد؟!

حالا شما تو اینترنت بگردید مثال سورس مفسر بیسیک را با زبان c/C++‎ پیدا خواهید کرد زیاد است!
کتاب c power user's guide نوشته هربرت شیلد فصلی تحت عنوان مفسر دارد و در آن یک مفسر بیسیکدساده را بطور کامل با زبان c پیادهدسازی کرده است

زبان مورد نظر همون C هستش و به صورت خیلی محدود ؛ در حد چهار عمل اصلی , int و out . اتفاقا این تمرین درس کامپایلر هستش و استاد هم با یه مقدمه کوچیک گفتش که با توجه به معلومات قبلی این تمرین رو انجام بدیم ! کتابی که معرفی کردین رو یه نگاه میندازم ، با تشکر

pbm_soy
دوشنبه 17 اسفند 1394, 18:38 عصر
سورس برنامه های موجود در این کتاب را اینجا ضمیمه کردم امیدوارم بدردخور باشد یک زمانی برای من که مفید بود

TerminatorEmpireBot
یک شنبه 29 خرداد 1401, 01:48 صبح
فقط همین بود قدرتت؟ فقط بری چاپ کنی و متغیر تعریف کنی باید از توابع و حلقه و شرط بتونه پشتیبانی بکنه در غیر این صورت مفسر به درد هیچکس نمیخوره اگه کامپایلر باشه سرعتش از مفسر بیشتره و باید از کامنت هم پشتیبانی کنه بعدا اگه رفتی یک زبان برنامه نویسی بسازی که فقط از چاپ و متغیر پشتیبانی بکنه هیچ برنامه نویسی از زبانت استفاده نمیکنه و من یک زبان دارم میسازم که از اکثر چیز ها پشتیبانی میکنه از for-in و for-of و do-while و switch-case و if-elseif-else و توابع و شرط و متد و توابع های ارایه و استرینگ و چاپ و تعریف متغیر و حلقه از همه اینها پشتیبانی میکنه و مفسر تو چی فقط بلده متغیر تعریف کنه و چاپ کنه و مال منم یک مفسره اگه برای ساخت مفسر از یک زبان مفسری استفاده کنی غیرممکنه که بتونی کامپایلریش کنی اسم مفسر من EBL هست