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

جستجوی دودویی در پایتون
در علوم رایانه، **زبان برنامه‌نویسی سطح‌بالا** (به انگلیسی: high-level programming language)، برخلاف زبان برنامه‌نویسی سطح‌پایین، زبانی است که نسبت به زبان برنامه‌نویسی سطح‌پایین راحت‌تر قابل‌استفاده و قابل‌حمل بین سیستم‌های متفاوت و دارای انتزاع بیشتری هستند. چنین زبان‌هایی عموماً از عملیات سی‌پی‌یو مانند مدل‌های دسترسی به حافظه و مدیریت حوزه دور هستند. پایتون یک زبان برنامه‌نویسی سطح‌بالا و سی یک زبان برنامه‌نویسی سطح‌پایین است.

## مشخصات زبان‌های سطح بالا

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

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

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

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

### انواع زبان‌های سطح بالا

پایتون

سی شارپ

متلب

جاوا

دلفی

ویژوال بیسیک

ویژوال بیسیک دات نت

پاسکال

جاوا اسکریپت

پی‌اچ‌پی

## معنای نسبی

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

## مدل‌های اجرا

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

**تفسیر شده**

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

وقتی که کد نوشته‌شده با یک زبان برنامه‌نویسی ترجمه می‌شود، همه دستورها قبل از اجرا تبدیل به فرم قابل اجرا، می‌شوند. دو نوع ترجمه وجود دارد:
**تولید کد ماشین**
بعضی از مترجم‌ها کد مبدأ را به شکل مستقیم به زبان ماشین ترجمه می‌کنند. این حالت روش اصلی ترجمه برنامه‌ها است و زبان‌هایی که به این شکل مستقیماً به کد ماشین تبدیل می‌شوند را می‌توان «زبانهای با ترجمه واقعی» نامید. زبان اسمبلی را ببینید.
**نمایش میانی**
زمانی که کد نوشته‌شده در یک زبان برنامه‌نویسی به یک شکل میانه ترجمه شود به‌طوری که بتوان بدون نیاز به استفاده مجدد از کد مبدأ، این کد میانه را بهبود داد یا برای اجرای بعدی ذخیره کرد، یک نمایش میانی ساخته شده است. وقتی این کد میانه ذخیره شود، ممکن است شکل بایت کد به خود بگیرد. در این حالت فرم میانهٔ ذخیره‌شده باید توسط یک مفسر، تفسیر شود یا برای اجرا بعدی توسط یک مترجم ترجمه شود. ماشینهای مجازی که می‌توانند این کدهای میانه را به شکل مستقیم اجرا کنند یا آن‌ها را برای استفاده بعدی به کد ماشین تبدیل کنند، باعث شده‌اند مرز مشخصی بین زبان‌های با ترجمهٔ واقعی و ترجمهٔ میانی وجود نداشته‌باشد.
**ترجمهٔ کد به کد یا بین زبانی**

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

* انتزاع
* زبان برنامه‌نویسی سطح پایین
* زبان برنامه‌نویسی خیلی سطح بالا

## منابع

ترجمه‌ای از صفحه معادل در ویکی‌پدیای انگلیسی en:High-level programming language

نگاهی کلی به زبان‌های برنامه‌نویسی

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

[[رده: