موضوع مقاله: زبان برنامه‌نویسی سطح‌بالا | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # زبان برنامه‌نویسی سطح‌بالا | مقدمه: چنین زبان‌هایی عموماً از عملیات سی‌پی‌یو مانند مدل‌های دسترسی به حافظه و مدیریت حوزه دور هستند. | ## بخش 1: زبان برنامه‌نویسی سطح‌بالا | مشخصات زبان‌های سطح بالا عبارت زبان‌های سطح بالا بدین معنی نیست که این زبان نسبت به زبان‌های سطح پایین برتر هستند بلکه اگر شما میزان اطلاع از نحوه عملکرد رایانه‌ها را به عنوان ملاک در نظر بگیرید برعکس این مطلب درست است. به جای کار کردن با ثبات‌ها، آدرس‌های حافظه، و فراخوانی پشته زبان برنامه‌نویسی سطح بالا از متغیرها، آرایه‌ها، و عبارات پیچیده ریاضی و منطقی استفاده می‌نماید. ویژگی‌های دیگر همانند توابع کار با رشته‌ها، مفاهیم شی‌گرایی، و کار با ورودی و خروجی در فایل‌ها در آن‌ها وجود دارد. به بیان دیگر در حالی که زبان برنامه‌نویسی سطح بالا برنامه‌نویسی را آسان‌تر می‌نماید اما زبان برنامه‌نویسی سطح پایین برنامه‌های بهینه‌تری تولید می‌کند. در یک زبان سطح بالا این امکان را فراهم می‌سازد تا اجزای پیچیده را به اجزای ساده‌تر اما هنوز پیچیده تقسیم نموده تا برنامه‌نویس را از انجام کارهای پیچیده بازدارد. به این دلیل برنامه‌هایی که نیاز به کار با سرعت بالا و بهینه‌تر دارند باید با زبان سطح پایین نوشته شود حتی اگر زبان سطح بالا این کار را ساده‌تر سازد. زبانهای سطح بالا پر کاربردترین و در عین حال جذابترین و کاربردی‌ترین محیط‌های برنامه‌نویسی را شامل می‌شوند، چرا که محیط آن کاربر پسند(User Friendly) بوده و یادگیری اصطلاحات و مفاهیم آن در محیط و قالبی گرافیکی به کاربر ارائه می‌شود، برنامه نویسان به راحتی به یادگیری دستورهای و قواعد آن به دلیل اینکه به زبان محاوره ایی و انگلیسی نزدیک است می‌پردازند، این‌گونه زبان‌ها از سرعت کمتری نسبت به زبان‌های سطح میانی و پایین برخوردار می‌باشد، به دلیل اینکه دستورهای بایستی به زبان قابل فهم برای ماشین تبدیل گردند که این خود زمان‌بر می‌باشد، ولی در عین حال فضای کمتری اشغال می‌کنند که نمونه‌ایی از این زبان‌ها، زبان‌های برنامه‌نویسی پاسکال، C، ویژوال، دلفی، فرترن و جاوا می‌باشند. | ## بخش 2: زبان برنامه‌نویسی سطح‌بالا | امروزه با توجه به ساختار پیچیده ریزپردازنده‌ها، کامپایلرهای پیشرفته با استفاده از تکنیک‌های بهینه‌سازی برنامه‌های بهتری از برنامه‌های نوشته شده با دست فراهم می‌نمایند. انواع زبان‌های سطح بالا پایتون سی شارپ متلب جاوا دلفی ویژوال بیسیک ویژوال بیسیک دات نت پاسکال جاوا اسکریپت پی‌اچ‌پی معنای نسبی توجه به این نکته ضروری است که عبارت سطح بالا و سطح پایین نسبی هستند. در ابتدا زبان اسمبلی سطح پایین و زبان کوبول و سی و غیره به دلیل استفاده از متغیر و توابع و عبارات سطح بالا محسوب می‌شدند. با این وجود برنامه‌نویسان ممکن است سی را یک زبان سطح پایین محسوب نمایند چرا که امکان دسترسی به حافظه به صورت مستقیم و امکان دسترسی به کد اسمبلی را نیز فراهم می‌سازد. برای اطلاع بیشتر در این مورد وبسایت C۲'s page about high-level languages را ببینید مدل‌های اجرا سه روش عمومی برای اجرای برنامه‌های مدرن زبان‌های سطح بالا وجود دارد: تفسیر شده وقتی کد برنامهٔ نوشته‌شده در زبان برنامه‌نویسی تفسیر می‌شود، سطر به سطر آن خوانده‌شده و به شکل مستقیم بدون مرحله ترجمه کامل برنامه، اجرا می‌گردد، برنامه‌ای که مفسر نام دارد هر عبارت از برنامه را می‌خواند، جریان برنامه را دنبال می‌کند، سپس تصمیم می‌گیرد که چه کاری انجام بدهد و سپس همان کار را انجام می‌دهد. ترکیبی از یک مفسر و یک مترجم هر عبارت را به زبان ماشین برمی‌گرداند و آن را اجرا می‌کند؛ کد ماشین به دست آمده بعد از اجرا دور انداخته می‌شود و اگر نیازی به اجرای دوباره همان عبارت باشد، این کار از نو انجام خواهد شد. ترجمه‌شده وقتی که کد نوشته‌شده با یک زبان برنامه‌نویسی ترجمه می‌شود، همه دستورها قبل از اجرا تبدیل به فرم قابل اجرا، می‌شوند. | ## بخش 3: زبان برنامه‌نویسی سطح‌بالا | دو نوع ترجمه وجود دارد: تولید کد ماشین بعضی از مترجم‌ها کد مبدأ را به شکل مستقیم به زبان ماشین ترجمه می‌کنند. این حالت روش اصلی ترجمه برنامه‌ها است و زبان‌هایی که به این شکل مستقیماً به کد ماشین تبدیل می‌شوند را می‌توان «زبانهای با ترجمه واقعی» نامید. نمایش میانی زمانی که کد نوشته‌شده در یک زبان برنامه‌نویسی به یک شکل میانه ترجمه شود به‌طوری که بتوان بدون نیاز به استفاده مجدد از کد مبدأ، این کد میانه را بهبود داد یا برای اجرای بعدی ذخیره کرد، یک نمایش میانی ساخته شده است. در این حالت فرم میانهٔ ذخیره‌شده باید توسط یک مفسر، تفسیر شود یا برای اجرا بعدی توسط یک مترجم ترجمه شود. ماشینهای مجازی که می‌توانند این کدهای میانه را به شکل مستقیم اجرا کنند یا آن‌ها را برای استفاده بعدی به کد ماشین تبدیل کنند، باعث شده‌اند مرز مشخصی بین زبان‌های با ترجمهٔ واقعی و ترجمهٔ میانی وجود نداشته‌باشد. ترجمهٔ کد به کد یا بین زبانی کدهای نوشته‌شده در یک زبان ممکن است به کدهای زبان برنامه‌نویسی سطح پایین‌تری ترجمه شوند، به‌این علت که مترجم‌های خاص آن زبان بیشتر در دسترس هستند. | ## جمع‌بندی | جاوا اسکریپت و زبان برنامه‌نویسی سی هدف‌های مشترکی برای چنین ترجمه‌هایی هستند، به عنوان مثال به‌زبان‌های کافی اسکریپت، چیکن یا ایفل را ببینید.