ايران ويج

نسخه‌ی کامل: نوشتن کامپایلر برای اسمبلی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
من خیلی ها را هم دیدم که برای اسمبلی کامپایلر نوشتند

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

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

از همه زبانها راحتتره که هرکی یه دونشو نوشته
نوشتن کامپایلر برای هیچ زبانی ساده نیست .... گرچه کامپایلر اسمبلی معمولا کامپایلر نامیده نمیشه بلکه اسمبلر نامیده میشه.
برای ساخت کامپایلر آشنایی با نظریه ماشین و زبانها ضروریه . در ضمن چون ساخت کامپایلر نیاز به دانش بالای Lexical Analysis و روشهای Parsing محتلف داره نوشتنش بسیار وقتگیر و پیچیده است . برنامه های کلاسیکی مثل LEX یا YACC وجود دارند که باهاشون میشد تحت UNIX حتی یک کامپایلر کامل طراحی کرد بدون اینکه وقت زیادی تلف بشه ( امروز این دوتا با نام های FLEX و BISON معروف هستند ) البته خوب کار کردن با این دوتا برنامه هم دانش نظریه زبان و Regular Expression میخواد و کار آسونی نیست . این دوتا برنامه قابلیت دارند دو بخش کد سازنده یک کامپایلر (بهش میگن pass ) که Lexical Analyzer و Parser نامیده میشن رو طراحی کنند و کد C++/C اونو به ما بدن .

نوشتن اسمبلر تقریبا آسون تره چون شما نیاز داری فقط کدهای اسمبلی رو به opCode های ماشین تبدیل کنی که معمولا با کمک همون برنامه ها میشه یک Two Pass Assembler ساده رو راحت طراحی کرد . در کل با وجود اینهمه اسمبلر خوب ( برای CPU های PC ) هیچ کس نمیره برای خودش اسمبلر بنویسه مگر اینکه نیاز باشه که یک اسمبلر خاص برای یک مایکروپروسسور خاص بنویسیم درحالیکه اسمبلرش موجود نباشه که البته این معمولا بعیده .
خیلی ممنون

این نظریه زبان ها چی هست؟
همونطور که هر زبان کاملی که در دنیا تکلم میشه قانون و گرامر و اصول داره زبانهای برنامه نویسی هم قانون و اصولی برای خودشون دارند و امکاناتی رو طبق گرامر خاص خودشون ( همون Syntax ) ارائه میدن . برای اینکه بتونیم یک زبان برنامه نویسی رو در کامپیوتر درک کنیم باید یه مدل ریاضی ازش بسازیم . نظریه زبانها کارش اینه که شما رو با مراحل مختلف درک یک زبان ماشینی آشنا بکنه اونم بکمک مدلهای ریاضی . خاصیت مدل ریاضی اینه که سیستم هایی که از نظر ریاضی درستیشون اثبات بشه و کارایی اونها بررسی بشه میتونن با اطمینان کامل به یک سیستم مفید و دقیق تبدیل بشن .
یه سورس اسمبلر به زبان دلفی دارم می ذارم شاید به دردت بخوره
(۲۳-مرداد-۱۳۸۷, ۱۸:۰۰:۱۲)veyskarami نوشته است: [ -> ]یه سورس اسمبلر به زبان دلفی دارم می ذارم شاید به دردت بخوره

سلام دوست عزیز
ممنون از برنامتون،فقط یه سوال داشتم سورس اسمبلر کل پوشه scr هست یا فایل به خصوصی؟؟
ممنون
کل پوشه
(۱۱-دى-۱۳۹۰, ۱۰:۳۵:۱۵)lord_viper نوشته است: [ -> ]کل پوشه

سلام
عزیز من اگه خودم بخوام شروع به نوشتن کنم از کدوم یک از فایل ها باید استفاده کنم؟
راستش میخوام یه کپی به استاد بدم،تو این وقت کم فرصت ندارم دنباله parser یا scanner ها برم.اگه بتونین کمک کنید ممنون میشم
با تشکر