PDA

View Full Version : تبدیل برنامه پاسکال به سی (کامپایلر)



ByRoad
جمعه 17 فروردین 1386, 19:58 عصر
من می خواستم
یه کامپایلر ساده بنویسم که بشه برنامه پاسکال ار فایل بخونه و به سی تبدیل کنه.

راهنمایی یا الگوریتمی می خواستم که کارم راحتر شه .

peyman1987
شنبه 18 فروردین 1386, 03:06 صبح
ببخشین ولی من درست متوجه نشدم این برنامه ای که شما گفتین کامپایلر نیست. کامپایلر زبان سطح بالا رو به زبان ماشین ترجمه میکنه ولی شما میخواین یه زبان سطح بالا رو به یه زبان سطح بالای دیگه تبدیل کنین.
در هر حال اینکار یه پروژه کامل هست و نیاز به مطالعه و کار داره. البته میتونین از ایده های نشانه گذاری ( Indexing ) و پایگاه داده برای ذخیره معادل دستورات استفاده کنین. وای اینکار حتی اگر بخواین خیلی ساده هم باشه نیاز به الگوریتمهای اصولی داره.
موفق باشین

benyamin_pc
شنبه 18 فروردین 1386, 08:25 صبح
همون طور که دوستمون گفتن این کار یه کار ساده نیست و شما تقریبا" باید یه کامپایلر مثل پاسکال رو طراحی کنین چون فقط معادل قرار دادن دستورات نیست که دستور رو به دستور دیگه ای تبدیل کنین
اولین چیزی که باید بدانید بلد بودن 100% پاسکال و سی به شکل فوق پیش رفته وگرنه کامپایلر شما دچار خطا می شود به دلیل اینکه : فرض کنین شما یه کدی رو می خواهین بنویسین از یه راه حل بلد نیستین اما از راه دیگه ای با تکنیک های دیگه ای از پاسکال اون برنامه رو می نویسین پس یکی از تکنیک های پاسکال رو نمی دانید حالا اگه این تکنیک تو کامپایلرتون لحاظ نشه و اون کدی که می خواهید با این کامپایلر به سی تبدیل شه از این تکنیک استفاده کرده باشه دچار خطا میشین
دومین چیزی که باید بدانید اینه که فقط جابجا کردن دستورات نیست چون بعضی جاها مثلا" تو پاسکال از عواملی استفاده شده که اصلا" مثلش تو سی نیس یا بلعکس اما نه اینکه کلا" نباشه به نحو های دیگه و تکنیک های دیگه ای پیاده سازی شده پس شما باید به طور مثال یه دستور از پاسکال رو با یه تکنیک تو سی جاشو عوض کنین و هر جای تکنینک اون متغییر ها توابع و ... که تو اون دستور از پاسکال به کار برده شده و بیشتر.. را جا سازی کنید پس شما باید متغییر ها و توابع و کلاس ها و .... را تو پاسکال شناسایی کنین تا بعدا" بتونین بهشون دسترسی پیدا کنین که جابجاشون کنین پس این میشه چیزی شبیه یه کامپایلر اما اگه خیلی دقیق کار کنین چیزی کمتر از یه کامپایلر میشه به شرطی که ارتباطاتتون اونقدر پیچیده نشه که در آخر Debug کردنش از نوشتن یه کامپایلر برای C# سختتر بشه!!

Arash_j13
شنبه 18 فروردین 1386, 18:55 عصر
علاوه برا نکاتی که وستان گفتن یه نکته دیگه ای هم هست تمام ساختار های پاسکال قابل تبدیل به سی نیستن مثلاتفاوت رشته های یا مجموعه ها

ByRoad
یک شنبه 19 فروردین 1386, 00:23 صبح
مچکرم دوستان از این که کمک کردین
من خودم شروع کردم
من نخواستم که کامپایلر کاملشو بنویسم
می خواستم برنامه های ساده و متوسط رو بتونه کامپایل کنه

به هر حال می خواستم کمکی بگیرم گفتم شاید کسی تجربشو داشته باشه

مچکرم

crouzteam
دوشنبه 26 آذر 1386, 23:46 عصر
http://assembly.250free.com/files/pascaltoc2.zip
just read it & enjoy

Delphi Coder
سه شنبه 27 آذر 1386, 19:04 عصر
(http://assembly.250free.com/files/pascaltoc2.zip)http://assembly.250free.com/files/pascaltoc2.zip
just read it & enjoy
(http://assembly.250free.com/files/pascaltoc2.zip)
لینک کار نمی کنه.



من می خواستم
یه کامپایلر ساده بنویسم که بشه برنامه پاسکال ار فایل بخونه و به سی تبدیل کنه.

شاید اینجا کسی نتونه کمک کنه ولی مطمئن باشید حتی کاملشو هم مد نظر داشته باشید این کار شدنیه. ولی کار سنگینی میطلبه.
موفق باشید.