
زندگی نامه یک کامپایلر در برنامه نویسی
تعریف کامپایلر و انواع آن
کامپایلر چیست:

چه ابزارهایی با کامپایلر ارتباط نزدیک دارند؟
معماری یک کامپایلر برای کامپایل کردن:
روش کامپایل کردن من به طور کلی در 2 فاز تقسیم می شود:
- فاز تحلیل
- فاز سنتز
در فاز تحلیل که به نام فرانت-اند نامیده می شود، بنده ابتدا اقدام به خواندن منبع برنامه می کنم و آن را به اجزای اصلی تقسیم می کنم؛ سپس به دنبال خطاهای واژه ای، نحوی و ساختاری می گردم و یک کد میانجی از کد منبع برای ماشین هدف تولید می کنم. این کد میانجی رابطی بین زبان سطح بالا و زبان ماشین است و به گونه ای ایجاد می شود که ترجمه آن به کد ماشین مقصد، آسان باشد. در نهایت به عنوان ورودی به فاز سنتز وارد خواهد شد. در این فاز که بک-اند هم خوانده می شود، برنامه هدف با کمک کد میانجی و جدول نمادها ایجاد می شود.
انواع کامپایلرها کدامند؟
-
تک فاز و چند فاز:
-
تفسیری و کامپایلی:
-
Crossو :Native
زبان های کامپایلری:

اما در زبان های مجازی(Virtual) برای تبدیل کد آنها به کد ماشین توسط یک رابط میانی به زبان مشترک ترجمه
می شود. مانند: Java و خانوادهی داتنت مانند C#, Visual Basic.Net و C++/CLR
بیشتر بخوانید: الگوریتم برنامه نویسی چیست؟ یک مفهوم مهم برای هر برنامه نویس
کار کردن کامپایلر به چه صورت است؟

اما شکل گیری صفر و یک ها در نتیجه یک برنامه به زبان، مورد اهمیت است و این کار توسط من یعنی کامپایلر صورت می گیرد اما مکانیسم کلی کارم به این صورت است که برنامه مبدا را خوانده و یک شکل میانی از آن ایجاد می کنم و سرانجام آن را به زبان اسمبلی تبدیل کرده و زبان اسمبلی نیز از شکل میانی برنامه شکل قابل فهم برای سیستم یعنی صفر و یک ها را ایجاد می کند و آن ها را در قالب کلمات حافظه برای سیستم و سخت افزار مهیا می کند پس تبدیل شکل ابتدایی برنامه مقصد به یک شکل اجرایی سیستمی از وظایف قدرتمند کامپایلرها می باشد. البته یک نکته هست که باید به شما بگویم اینکه ما کامپایلرها براساس قواعد گرامر زبان مبدا اقدام به تولید زبان مقصد می نماییم.
کلام آخر:
یکی ازمهم ترین تفاوت بنده و مفسر، روش اجرا کردن کدهای برنامه است. وقتی یک مفسر کدی را اجرا می کند، کد در همان لحظه به صورت خط به خط اجرا و برای کامپیوتر جهت ارسال و ترجمه فرستاده می شود اما زمانی که من می خواهم کدی را اجرا کنم کد را به صورت کامل بر روی دیسک قرار می دهم. یعنی کد به یکباره اجرا نمی شود و به شما این امکان را می دهم که هر زمان دوست داشتید ، کد را اجرا کنید.
تفاوت بعدی مربوط به بحث وابستگی به برنامه است. زبان های مفسری برای این که بتوانند بر روی یک سیستم اجرا شوند باید مفسر مورد نظر از قبل روی سیستم نصب شده باشد وگرنه اجرای برنامه امکان پذیر نیست؛ یعنی برای اجرا شدن وابسته به یک مفسر هستند . اما ما کامپایلرها یک بار برای همیشه برنامه را به همراه کدهای اجرایی کامپایل می کنیم که بعد از آن نه نیازی به وجود ما هست نه کد اجرایی برنامه. پس وابستگی به ما بعد از تبدیل کد وجود نخواهد داشت.
تفاوت دیگر در کارایی و انعطاف پذیری بین من و یک مفسر است. این بستگی به شما دارد که کدام گزینه مد نظرتان است، کارایی بهتر را انتخاب می کنید یا قابل حمل بودن و انعطاف پذیری مد نظرتان است. چرا که سرعت اجرای برنامه های مفسری به دلیل خط به خط اجرا شدن کد سرعت کندتری نسبت به ما کامپایلرها دارند.
آخرین تفاوت مسئله خطایابی است. خطایابی کدهای اجرایی در برنامه های مفسری با توجه به اجرای خط به خط آسان تر از خطایابی کدهای اجرایی در ما است.
مقالات مرتبط
تفاوت dp و px در برنامه نویسی اندروید
واحد های اندازه گیری اندرویدبه نظر شما تفاوت dp و px در برنامه نویسی اندروید، این دو واحد اندازه گیری چیست؟ پس ما را همراهی کنید.
delegate چیست؟
Delegate ها چرا به زبان سی شارپ اضافه شدند؟delegate چیست؟ چه کاربردی دارد؟ چگونه و در چه موقعیت هایی باید ازآنها استفاده کرد؟ با ما همراه شوید تا تمامی این سوال ها دریابید.
اکشن (Action) در سی شارپ، راهی برای خواناتر شدن کدها
موارد استفاده ی Action در سی شارپAction در سی شارپ از پایه و اساس Delegate ها استفاده میکند، درحقیقت همان Delegate های هستند که کار را برای ما راحت تر میکنند.
Extension method درسی شارپ، راهی برای کارایی بالا در کدها
اکستنشن (extension) درسی شارپهدف ما دانستن نکات مهمextension method در سی شارپ، نحوه استفاده و همچنین کاربرد آن در کدنویسی است. پس با ما همراه شوید.
لیست کامل تگ های html که هیچ کس به شما نخواهد گفت
آشنایی با تگ های htmlتگ ها در html نقش مهمی دارند زیرا تمامی کارهای html با تگ انجام میشود. به همین دلیل ما یک لیست کامل از تگهای html برای شما آماده کردهایم تا از آن استفاده کنید.
ویژگی های جدید asp.net core که حیرت برنامه نویسان را برانگیخت
معرفی ویژگی های جدید asp.net core از مایکروسافتویژگی های جدید asp.net core چیست؟ مایکروسافت در این نسخه چه امکاناتی را برای برنامه نویسانش قرار داده است. اگر شما هم خواهان دانستن این مطالب هستید، ما را همراهی کنید.