زبان برنامه‌نویسی سطح بالا

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

زبان برنامه‌نویسی سطح بالا یا زبان برنامه‌نویسی بلندتراز (High-level programming language) زبانی است که نسبت به زبان برنامه‌نویسی سطح پایین راحت‌تر قابل استفاده و قابل حمل بین سیستم‌های متفاوت و دارای انتزاع بیشتری هستند. چنین زبان‌هایی عموماً از عملیات CPU مانند مدل‌های دسترسی به حافظه و مدیریت حوزه دور هستند.

مشخصات زبان‌های سطح بالا[ویرایش]

عبارت زبان‌های سطح بالا بدین معنی نیست که این زبان نسبت به زبان‌های سطح پایین برتر هستند بلکه اگر شما میزان اطلاع از نحوه عملکرد رایانه‌ها را به عنوان ملاک در نظر بگیرید برعکس این مطلب درست است. عبارت زبان سطح بالا در حقیقت به معنای دوری این زبان‌ها از زبان ماشین است. به جای کار کردن با ثبات‌ها، آدرس‌های حافظه، و فراخوانی پشته زبان برنامه‌نویسی سطح بالا از متغیرها، آرایه‌ها، و عبارات پیچیده ریاضی و منطقی استفاده می‌نماید. این زبان‌ها مستقیماً مانند زبان اسمبلی به زبان ماشین ترجمه نمی‌گردند. ویژگی‌های دیگر همانند توابع کار با رشته‌ها، مفاهیم شی‌گرایی، و کار با ورودی و خروجی در فایل‌ها در آنها وجود دارد.

به بیان دیگر در حالی که زبان برنامه‌نویسی سطح بالا برنامه‌نویسی را آسان‌تر می‌نماید اما زبان برنامه‌نویسی سطح پایین برنامه‌های بهینه‌تری تولید می‌کند. در یک زبان سطح بالا این امکان را فراهم می‌سازد تا اجزای پیچیده را به اجزای ساده‌تر اما هنوز پیچیده تقسیم نموده تا برنامه‌نویس را از انجام کارهای پیچیده بازدارد. به این دلیل برنامه‌هایی که نیاز به کار با سرعت بالا و بهینه‌تر دارند باید با زبان سطح پایین نوشته شود حتی اگر زبان سطح بالا این کار را ساده‌تر سازد.

زبانهای سطح بالا پر کاربردترین ودر عین حال جذابترین و کاربردی‌ترین محیط‌های برنامه نویسی را شامل می‌شوند، چرا که محیط آن کاربر پسند(User Friendly) بوده و یادگیری اصطلاحات و مفاهیم آن در محیط و قالبی گرافیکی به کاربر ارائه می‌شود، برنامه نویسان به راحتی به یادگیری دستورهای و قواعد آن به دلیل اینکه به زبان محاوره ایی و انگلیسی نزدیک است می‌پردازند، اینگونه زبانها از سرعت کمتری نسبت به زبانهای سطح میانی و پایین برخوردار می‌باشد، به دلیل اینکه دستورهای بایستی به زبان قابل فهم برای ماشین تبدیل گردند که این خود زمان بر می‌باشد، ولی در عین حال فضای کمتری اشغال می‌کنند که نمونه ایی از این زبانها، زبانهای برنامه نویسی پاسکال، C، ویژوال، دلفی، فرترن و جاوا می‌باشند.

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

معنای نسبی[ویرایش]

توجه به این نکته ضروری است که عبارت سطح بالا و سطح پایین نسبی هستند. در ابتدا زبان اسمبلی سطح پایین و زبان کوبول و سی و غیره بدلیل استفاده از متغیر و توابع و عبارات سطح بالا محسوب می‌شدند. با این وجود برنامه‌نویسان ممکن است سی را یک زبان سطح پایین محسوب نمایند چرا که امکان دسترسی به حافظه به صورت مستقیم و امکان دسترسی به کد اسمبلی را نیز فراهم می‌سازد. برای اطلاع بیشتر در این مورد وبسایت C۲'s page about high-level languages را ببینید

مدل‌های اجرا[ویرایش]

سه روش عمومی برای اجرای برنامه های مدرن زبانهای سطح بالا وجود دارد :

تفسیر شده

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

ترجمه شده

وقتی که کد نوشته شده با یک زبان برنامه نویسی ترجمه می شود ، همه دستورات قبل از اجرا تبدیل به فرم قابل اجرا ، می شوند . دو نوع ترجمه وجود دارد:
تولید کد ماشین
بعضی از مترجم ها کد مبدا را به شکل مستقیم به زبان ماشین ترجمه می کنند . این حالت روش اصلی ترجمه برنامه ها است و زبانهایی که به این شکل مستقیما به کد ماشین تبدیل می شوند را می توان "زبانهای با ترجمه واقعی" نامید. زبان اسمبلی را ببینید.
نمایش میانی
زمانی که کد نوشته شده در یک زبان برنامه نویسی به یک شکل میانه ترجمه شود بطوری که بتوان بدون نیاز به استفاده مجدد از کد مبدا ، این کد میانه را بهبود داد یا برای اجرای بعدی ذخیره کرد ، یک نمایش میانی ساخته شده است. وقتی این کد میانه ذخیره شود ، ممکن است شکل بایت کد به خود بگیرد. در این حالت فرم میانه ذخیره شده باید توسط یک مفسر ، تفسیر شود یا برای اجرا بعدی توسط یک مترجم ترجمه شود. ماشینهای مجازی که می توانند این کدهای میانه را به شکل مستقیم اجرا کنند یا آنها را برای استفاده بعدی به کد ماشین تبدیل کنند ، باعث شده اند مرز مشخصی بین زبانهای با ترجمه واقعی و ترجمه میانی وجود نداشته باشد.

ترجمه کد به کد یا بین زبانی

کدهای نوشته شده در یک زبان ممکن است به کدهای زبان برنامه نویسی سطح پائین تری ترجمه شوند ، به این علت که مترجمهای خاص آن زبان بیشتر در دسترس هستند. جاوا اسکریپت و زبان برنامه نویسی سی هدفهای مشترکی برای چنین ترجمه هایی هستند ، به عنوان مثال به زبانهای کافی اسکریپت ، چیکن یا ایفل را ببینید.

جستارهای وابسته[ویرایش]

منابع[ویرایش]

ترجمه‌ای از صفحه معادل در ویکی‌پدیای انگلیسی [۱]
نگاهی کلی به زبان های برنامه نویسی [۲]