زبان برنامهنویسی سطح بالا
زبان برنامهنویسی سطح بالا (High-level programming language) برخلاف زبان برنامهنویسی سطح پایین، زبانی است که نسبت به زبان برنامهنویسی سطح پایین راحتتر قابل استفاده و قابل حمل بین سیستمهای متفاوت و دارای انتزاع بیشتری هستند. چنین زبانهایی عموماً از عملیات CPU مانند مدلهای دسترسی به حافظه و مدیریت حوزه دور هستند. پایتون یک زبان برنامهنویسی سطح بالا و C یک زبان برنامهنویسی سطح پایین است.
مشخصات زبانهای سطح بالا
[ویرایش]عبارت زبانهای سطح بالا بدین معنی نیست که این زبان نسبت به زبانهای سطح پایین برتر هستند بلکه اگر شما میزان اطلاع از نحوه عملکرد رایانهها را به عنوان ملاک در نظر بگیرید برعکس این مطلب درست است. عبارت زبان سطح بالا در حقیقت به معنای دوری این زبانها از زبان ماشین است. به جای کار کردن با ثباتها، آدرسهای حافظه، و فراخوانی پشته زبان برنامهنویسی سطح بالا از متغیرها، آرایهها، و عبارات پیچیده ریاضی و منطقی استفاده مینماید. این زبانها مستقیماً مانند زبان اسمبلی به زبان ماشین ترجمه نمیگردند. ویژگیهای دیگر همانند توابع کار با رشتهها، مفاهیم شیگرایی، و کار با ورودی و خروجی در فایلها در آنها وجود دارد.
به بیان دیگر در حالی که زبان برنامهنویسی سطح بالا برنامهنویسی را آسانتر مینماید اما زبان برنامهنویسی سطح پایین برنامههای بهینهتری تولید میکند. در یک زبان سطح بالا این امکان را فراهم میسازد تا اجزای پیچیده را به اجزای سادهتر اما هنوز پیچیده تقسیم نموده تا برنامهنویس را از انجام کارهای پیچیده بازدارد. به این دلیل برنامههایی که نیاز به کار با سرعت بالا و بهینهتر دارند باید با زبان سطح پایین نوشته شود حتی اگر زبان سطح بالا این کار را سادهتر سازد.
زبانهای سطح بالا پر کاربردترین و در عین حال جذابترین و کاربردیترین محیطهای برنامه نویسی را شامل میشوند، چرا که محیط آن کاربر پسند(User Friendly) بوده و یادگیری اصطلاحات و مفاهیم آن در محیط و قالبی گرافیکی به کاربر ارائه میشود، برنامه نویسان به راحتی به یادگیری دستورهای و قواعد آن به دلیل اینکه به زبان محاوره ایی و انگلیسی نزدیک است میپردازند، اینگونه زبانها از سرعت کمتری نسبت به زبانهای سطح میانی و پایین برخوردار میباشد، به دلیل اینکه دستورهای بایستی به زبان قابل فهم برای ماشین تبدیل گردند که این خود زمانبر میباشد، ولی در عین حال فضای کمتری اشغال میکنند که نمونهایی از این زبانها، زبانهای برنامه نویسی پاسکال، C، ویژوال، دلفی، فرترن و جاوا میباشند.
امروزه با توجه به ساختار پیچیده ریزپردازندهها، کامپایلرهای پیشرفته با استفاده از تکنیکهای بهینهسازی برنامههای بهتری از برنامههای نوشته شده با دست فراهم مینمایند.
انواع زبانهای سطح بالا
[ویرایش]معنای نسبی
[ویرایش]توجه به این نکته ضروری است که عبارت سطح بالا و سطح پایین نسبی هستند. در ابتدا زبان اسمبلی سطح پایین و زبان کوبول و سی و غیره به دلیل استفاده از متغیر و توابع و عبارات سطح بالا محسوب میشدند. با این وجود برنامهنویسان ممکن است سی را یک زبان سطح پایین محسوب نمایند چرا که امکان دسترسی به حافظه به صورت مستقیم و امکان دسترسی به کد اسمبلی را نیز فراهم میسازد. برای اطلاع بیشتر در این مورد وبسایت C۲'s page about high-level languages را ببینید
مدلهای اجرا
[ویرایش]سه روش عمومی برای اجرای برنامههای مدرن زبانهای سطح بالا وجود دارد:
تفسیر شده
- وقتی کد برنامهٔ نوشتهشده در زبان برنامهنویسی تفسیر میشود، سطر به سطر آن خواندهشده و به شکل مستقیم بدون مرحله ترجمه کامل برنامه، اجرا میگردد، برنامهای که مفسر نام دارد هر عبارت از برنامه را میخواند، جریان برنامه را دنبال میکند، سپس تصمیم میگیرد که چه کاری انجام بدهد و سپس همان کار را انجام میدهد. ترکیبی از یک مفسر و یک مترجم هر عبارت را به زبان ماشین بر میگرداند و آن را اجرا میکند؛ کد ماشین به دست آمده بعد از اجرا دور انداخته میشود و اگر نیازی به اجرای دوباره همان عبارت باشد، این کار از نو انجام خواهد شد. در مقایسه با دو روش بعدی مفسرها سادهترین رفتار را برای اجرای برنامه دارند.
ترجمهشده
- وقتی که کد نوشتهشده با یک زبان برنامهنویسی ترجمه میشود، همه دستورها قبل از اجرا تبدیل به فرم قابل اجرا، میشوند. دو نوع ترجمه وجود دارد:
- تولید کد ماشین
- بعضی از مترجمها کد مبدأ را به شکل مستقیم به زبان ماشین ترجمه میکنند. این حالت روش اصلی ترجمه برنامهها است و زبانهایی که به این شکل مستقیماً به کد ماشین تبدیل میشوند را میتوان "زبانهای با ترجمه واقعی" نامید. زبان اسمبلی را ببینید.
- تولید کد ماشین
- نمایش میانی
- زمانی که کد نوشتهشده در یک زبان برنامهنویسی به یک شکل میانه ترجمه شود بهطوری که بتوان بدون نیاز به استفاده مجدد از کد مبدأ، این کد میانه را بهبود داد یا برای اجرای بعدی ذخیره کرد، یک نمایش میانی ساخته شدهاست. وقتی این کد میانه ذخیره شود، ممکن است شکل بایت کد به خود بگیرد. در این حالت فرم میانهٔ ذخیرهشده باید توسط یک مفسر، تفسیر شود یا برای اجرا بعدی توسط یک مترجم ترجمه شود. ماشینهای مجازی که میتوانند این کدهای میانه را به شکل مستقیم اجرا کنند یا آنها را برای استفاده بعدی به کد ماشین تبدیل کنند، باعث شدهاند مرز مشخصی بین زبانهای با ترجمهٔ واقعی و ترجمهٔ میانی وجود نداشتهباشد.
- نمایش میانی
ترجمهٔ کد به کد یا بین زبانی
- کدهای نوشتهشده در یک زبان ممکن است به کدهای زبان برنامهنویسی سطح پایینتری ترجمه شوند، بهاین علت که مترجمهای خاص آن زبان بیشتر در دسترس هستند. جاوا اسکریپت و زبان برنامهنویسی سی هدفهای مشترکی برای چنین ترجمههایی هستند، به عنوان مثال بهزبانهای کافی اسکریپت، چیکن یا ایفل را ببینید.
جستارهای وابسته
[ویرایش]منابع
[ویرایش]ترجمهای از صفحه معادل در ویکیپدیای انگلیسی [۱]
نگاهی کلی به زبانهای برنامهنویسی [۲]
[[رده: زبانهای برنامهنویسی سطح بالا]]