بایگانی برچسب‌ها : کامپایلر

زبان برنامه نویسی سطح بالا High-level Programming Language

زبان برنامه نویسی سطح بالا یا High-level Programming Language چیست؟

زبان برنامه نویسی سطح بالا (High-level Programming Language) به گونه‌ای از زبان های برنامه نویسی گفته می‌شود که از میزان انتزاع (Abstraction) بالایی نسبت به جزئیات رایانه و زبان ماشین برخوردار هستند. به عبارت بهتر در این زبان‌ها نسبت به زبان‌های سطح پایین (Low-level Programming Language)، برنامه نویسان با پیچیدگی‌های سیستم های رایانه ای (آنچه به طور مستقیم توسط پردازنده ها و رایانه ها قابل فهم و اجرا می‌باشد) کمتر دست و پنجه نرم می‌کنند.

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

سورس کدهایی که به زبان های سطح بالا نوشته می‌شوند معمولا به زبان طبیعی (انگلیسی) شباهت بیشتری دارند (شامل مجموعه‌ای از کلمات، نمادها و جملات هستند) و یادگیری آن‌ها نیز آسانتر است. در این زبان‌ها، اغلب بخش‌های مهم سیستمی (نظیر مدیریت حافظه) بدون اینکه برنامه نویس با آن درگیر شود به صورت خودکار انجام می‌شود و به طور کلی توسعه یک برنامه به زبان های سطح بالا (از کدنویسی گرفته تا اشکال زدایی، نگه داری و …) در مقایسه با توسعه آن در یک زبان سطح پایین کار آسانتری خواهد بود.

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

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

با توجه به اینکه ساختار زبان های سطح بالا مستقل از معماری سیستم رایانه ای ساخته می‌شوند امکان اجرای برنامه نهایی با کمک کامپایلرهای مخصوص روی معماری های پشتیبانی شده وجود خواهد داشت. این در حالی است که دستورالعمل های زبان های سطح پایین معمولا برای معماری های خاصی بهینه شده‌اند.

از جمله زبان های برنامه نویسی سطح بالا می‌توان به ویژوال بیسیک (Visual Basic)، سی شارپ (C#پی اچ پی (PHP)، دلفی (Delphi) و بسیاری از زبان های پرکاربرد دیگر اشاره کرد.

نحوه اجرای کدهای نوشته شده به یک زبان سطح بالا

معمولا به منظور اجرای کد نوشته شده به یک زبان سطح بالا و تبدیل آن به دستورات قابل فهم (یا قابل اجرا) توسط پردازنده از کامپایلر یا مفسر استفاده می‌شود. در مدل اول، کد نوشته شده پیش از اجرا توسط نرم افزاری به نام کامپایلر به فرم قابل اجرا توسط پردازنده تبدیل می‌شود و در مدل دوم دستورات به طور مستقیم با کمک نرم افزاری به نام مفسر اجرا می‌شوند. البته گفتنی است نوعی معماری نادر به نام معماری کامپیوتر زبان سطح بالا (High-level Language Computer Architecture) نیز وجود دارد که امکان اجرای مستقیم کدهای این نوع زبان ها را فراهم می‌آورد.

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

کامپایلر Compiler

کامپایلر یا Compiler چیست؟

کامپایلر (Compiler) یک برنامه‌ی رایانه‌ای است که سورس کد نوشته شده به یک زبان برنامه نویسی (زبان مبدأ) را به یک زبان دیگر (زبان مقصد) تبدیل می‌کند. البته معمولا این اصطلاح برای برنامه‌هایی به کار می‌رود که سورس کد یک زبان برنامه نویسی سطح بالا (نظیر C یا BASIC) را به سورس کد یک زبان سطح پایین‌تر (نظیر کد ماشین یا زبان اسمبلی) تبدیل می‌کنند.

حاصل این فرایند که Compilation نامیده می‌شود، برنامه‌ای است که توسط پردازنده قابل اجرا خواهد بود. در واقع، هدف یک کامپایلر متداول، ایجاد برنامه‌ی قابل اجرا از روی سورس کد نوشته شده است (برنامه‌ای که درک آن برای پردازنده آسان است نه مانند سورس کدهای یک زبان سطح بالا که برای انسان قابل فهم هستند).

زبان‌های کامپایلی یا کامپایل شده (Compiled Language) به نوعی از زبان‌های برنامه‌نویسی گفته می‌شود که سورس کد آن‌ها پیش از اجرا شدن باید کامپایل شود. در مقابل این زبان‌ها، سورس کدهای نوشته شده به زبان‌های تفسیری بدون نیاز به کامپایل شدن توسط برنامه‌هایی موسوم به مفسر (Interpreter) اجرا می‌شود. معمولا برنامه‌های نوشته شده به زبان‌های کامپایلی در هنگام اجرا سریعتر عمل می‌کنند چرا که لازم نیست سورس کد آن‌ها هنگام اجرا به زبان ماشین ترجمه شود.

انواع کامپایلرها

چه از نظر مفهوم و چه از نظر عملکرد، انواع مختلفی از کامپایلرها وجود دارد. برخی از کامپایلرها از برنامه‌های کوچکتری تشکیل شده‌اند که هرکدام مرحله‌ای از کامپایل را انجام می‌دهند. به این کامپایلرها چند گذره (Multi-pass Compiler) گفته می‌شود. ویژگی‌های برخی از زبان‌ها به گونه‌ای است که در مواردی هنگام کامپایل کردن، خواندن مجدد سورس کد در آن‌ها ضروری می‌باشد. در چنین موقعیت‌هایی نوع چندگذره با ایجاد خروجی‌های میانی نهایتا سورس کد نهایی را تولید می‌کند. برخی دیگر از کامپایلرها تنها در یک گذر و به طور کامل تمام سورس کد دریافتی از زبان مبدأ را به زبان مقصد تبدیل می‌کنند که به آن‌ها کامپایلر تک گذره (Single-pass Compiler) گفته می‌شود.

گونه‌ای از کامپایلرها که به محلی یا بومی (Native Compiler) مشهور هستند به شکلی طراحی می‌شوند که خروجی آن‌ها تنها روی همان پلتفرم (سیستم عامل و پردازنده‌ای) که کامپایلر در آن اجرا شده قابل اجرا هستند. در عوض، خروجی کامپایلرهای متقاطع (Cross Compiler) روی پلتفرم‌های مختلفی قابل اجراست.

کامپایلرهایی که زبان مبدأ و مقصد آن‌ها دو زبان تقریبا هم سطح (معمولا سطح بالا) هستند را کامپایلرهای Source to Source می‌نامند. برنامه‌ای که سورس کد یک زبان سطح پایین‌تر را به یک زبان سطح بالاتر ترجمه می‌کند نیز دیکامپایلر (Decompiler) نامیده می‌شود.