زبان برنامهنویسی سطح بالا چیست ؟
زبان سطح بالا زبانی است که نسبت به زبان برنامهنویسی سطح پایین راحتتر قابل استفاده و قابل حمل بین سیستمهای متفاوت و دارای انتزاع بیشتری هستند. چنین زبانهایی عموماً از عملیات CPU مانند مدلهای دسترسی به حافظه و مدیریت حوزه دور هستند.
مشخصات زبانهای سطح بالا
عبارت زبانهای سطح بالا بدین معنی نیست که این زبان نسبت به زبانهای سطح پایین برتر هستند بلکه اگر شما میزان اطلاع از نحوه عملکرد رایانهها را به عنوان ملاک در نظر بگیرید برعکس این مطلب درست است. عبارت زبان سطح بالا در حقیقت به معنای دوری این زبانها از زبان ماشین است. به جای کار کردن با ثباتها، آدرسهای حافظه، و فراخوانی پشته زبان برنامهنویسی سطح بالا از متغیرها، آرایهها، و عبارات پیچیده ریاضی و منطقی استفاده مینماید. این زبانها مستقیما مانند زبان اسمبلی به زبان ماشین ترجمه نمیگردند. ویژگیهای دیگر همانند توابع کار با رشتهها، مفاهیم شیگرایی، و کار با ورودی و خروجی در فایلها در آنها وجود دارد.
معنای نسبی
توجه به این نکته ضروری است که عبارت سطح بالا و سطح پایین نسبی هستند. در ابتدا زبان اسمبلی سطح پایین و زبان کوبول و سی و غیره بدلیل استفاده از متغیر و توابع و عبارات سطح بالا محسوب میشدند. با این وجود برنامهنویسان ممکن است سی را یک زبان سطح پایین محسوب نمایند چرا که امکان دسترسی به حافظه به صورت مستقیم و امکان دسترسی به کد اسمبلی را نیز فراهم میسازد. برای اطلاع بیشتر در این مورد وبسایت C2's page about high-level languages را ببینید
مدلهای اجرا
تفسیر
زبانهای تفسیر شده مستقیماً خوانده و اجرا میگردند بدون مرحله ترجمه.
کامپایل شونده
زبانهای ترجمه شده ابتدا به فیل قابل اجرا تبدیل میشوند سپس اجرا میگردند دو نوع از این زبانها وجود دارد:
نمایش میانی
در این زبانها برنامه به یک نمایش میانی تبدیل شده و در ادامه میتوان آن را بهینه سازی نمود یا ذخیره گردد بدون نیاز به خواندن مجدد فایل مبدا. نمایش میانی معمولاً به صورت بایتکد است.
تولید کد ماشین
بعضی زبانها مستقیما به زبان ماشین تبدیل میگردند. ماشینهای مجازی که نمایش میانی را دریافت کرده و آن را اجرا مینمایند مرز میان زبانهای ترجمه شونده و نمایش میانی را که سابقا مشخص بودهاند مبهم نموده است.