زبان برنامهنویسی سطح بالا: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
اضافه کردن قسمتی که در متن اصلی انگلیسی وجود دارد . برچسبها: جمع عربی واژگان فارسی ویرایشگر دیداری |
|||
خط ۱۴:
== مدلهای اجرا ==
سه روش عمومی برای اجرای برنامه های مدرن زبانهای سطح بالا وجود دارد :
'''تفسیر'''▼
▲=== '''تفسیر شده''' ===
:وقتی کد برنامه نوشته شده در زبان برنامه نویسی تفسیر می شود ، سطر به سطر آن خوانده شده و مستقیما بدون مرحله ترجمه کامل برنامه ، اجرا می گردد ، برنامه ای که مفسر نام دارد هر عبارت از برنامه را می خواند ، جریان برنامه را دنبال می کند ، سپس تصمیم می گیرد که چه کاری انجام بدهد و سپس همان کار را انجام می دهد. ترکیبی از یک مفسر و یک مترجم هر عبارت را به زبان ماشین برمی گرداند و آن را اجرا می کند ؛ کد ماشین به دست آمده بعد از اجرا دور انداخته می شود و اگر نیازی به اجرای دوباره همان عبارت باشد ، این کار از نو انجام خواهد شد. در مقایسه با دو روش بعدی مفسر ها ساده ترین رفتار را برای اجرای برنامه دارند .
:وقتی که کد نوشته شده با یک زبان برنامه نویسی ترجمه می شود ، همه دستورات قبل از اجرا تبدیل به فرم قابل اجرا ، می شوند . دو نوع ترجمه وجود دارد:
:: '''تولید کد ماشین'''
::: بعضی از مترجم ها کد مبدا را مستقیما به زبان ماشین ترجمه می کنند . این حالت روش اصلی ترجمه برنامه ها است و زبانهایی که به این شکل مستقیما به کد ماشین تبدیل می شوند را می توان "زبانهای با ترجمه واقعی" نامید. [[زبان اسمبلی]] را ببینید. '''نمایش میانی'''
::: زمانی که کد نوشته شده در یک زبان برنامه نویسی به یک شکل میانه ترجمه شود بطوری که بتوان بدون نیاز به استفاده مجدد از کد مبدا این کد میانه را بهبود داد یا برای اجرای بعدی ذخیره کرد ، یک نمایش میانی ساخته شده است. وقتی این کد میانه ذخیره شود ، ممکن است شکل [[بایتکد|بایت کد]] به خود بگیرد. در این حالت فرم میانه ذخیره شده باید توسط یک مفسر ، تفسیر شود یا برای اجرا بعدی توسط یک مترجم ترجمه شود. [[ماشین مجازی|ماشینهای مجازی]] که می توانند این کدهای میانه را به شکل مستقیم اجرا کنند یا آنها را برای استفاده بعدی به کد ماشین تبدیل کنند ، باعث شده اند مرز مشخصی بین زبانهای با ترجمه واقعی و ترجمه میانی وجود نداشته باشد.
▲'''ترجمه شونده'''
=== ترجمه کد به کد یا بین زبانی ===
کدهای نوشته شده در یک زبان ممکن است به کدهای زبان برنامه نویسی سطح پائین تری ترجمه شوند ، به این علت که مترجمهای خاص آن زبان بیشتر در دسترس هستند. [[جاوااسکریپت|جاوا اسکریپت]] و [[سی (زبان برنامهنویسی)|زبان برنامه نویسی سی]] اهداف مشترکی برای چنین ترجمه هایی هستند ، به عنوان مثال به زبانهای [[کافیاسکریپت|کافی اسکریپت]] ، [[چیکن]] یا [[ایفل (زبان برنامهنویسی)|ایفل]] را ببینید.
== جستارهای وابسته ==
|