?‍? چگونه زبان‌های برنامه‌نویسی به زبان باینری تبدیل می‌شوند؟

زبان‌های برنامه‌نویسی را می‌توان به دو دسته اصلی تقسیم کرد: زبان‌های تفسیری و زبان‌های کامپایل شده. این دسته‌بندی بر اساس این است که چگونه کد نوشته شده توسط برنامه‌نویس به زبان قابل فهم برای کامپیوتر، یعنی زبان باینری، تبدیل می‌شود.? زبان‌های تفسیریزبان‌های تفسیری، همانطور که از نامشان پیداست، توسط یک برنامه به نام تفسیرگر (interpreter) تفسیر می‌شوند. تفسیرگر، هر خط کد را به صورت پویا و در زمان اجرا (run-time) به زبان باینری تبدیل می‌کند و به کامپیوتر می‌فرستد. این روش دارای مزایا و معایب خاص خود است.? مزایای زبان‌های تفسیرینصب و راه‌اندازی ساده: فقط نیاز به داشتن تفسیرگر مناسب است.قابل حمل: همان کد را می‌توان در سکوهای (platforms) مختلف اجرا کرد.خطایابی (debugging) آسان: هر خط کد را مستقل از بقیه مورد بررسی قرار می‌دهد.تغییرپذیر: هر لحظه می‌توان کد را ویرایش و اجرا کرد.? معایب زبان‌های تفسیرسرعت کم: هر خط کد را باید در هر بار اجرا مجددا تفسیر کند.امنیت کم: کد به صورت متنی (plain text) ذخیره می‌شود و قابل دسترسی و تغییر است.عدم دسترسی به سخت‌افزار: تفسیرگر محدودیت‌های خود را به کد منتقل می‌کند.? زبان‌های کامپایل شدهزبان‌های کامپایل شده، قبل از اجرا، توسط یک برنامه به نام کامپایلر (compiler) به زبان باینری تبدیل می‌شوند. کامپایلر، تمام کد را یک بار و در زمان ساخت (build-time) مورد بررسی قرار می‌دهد و یک فایل اجرایی (executable) مستقل از آن می‌سازد. این فایل را می‌توان بدون نیاز به کامپایلر در کامپیوتر اجرا کرد. این روش نیز دارای مزایا و معایب خود است.? مزایای زبان‌های کامپایل شدهسرعت بالا: فقط یک بار نیاز به تبدیل به زبان باینری دارد.امنیت بالا: فایل اجرایی رمزگذاری شده است و قابل تغییر نیست.دسترسی به سخت‌افزار: می‌توان از قابلیت‌های سخت‌افزار استفاده کرد.? معایب زبان‌های کامپایل شدهنصب و راه‌اندازی پیچیده: نیاز به داشتن کامپایلر مناسب و تنظیمات لازم است.قابل حمل نبودن: هر سکو نیاز به یک فایل اجرایی جداگانه دارد.خطایابی سخت: همه خطاها را در زمان ساخت نشان می‌دهد و ممکن است باعث شود کامپایل انجام نشود.تغییرپذیر نبودن: هر تغییر در کد نیاز به کامپایل مجدد دارد.? جاوا و سی شارپ چگونه جزء زبان‌های کامپایل شده هستند؟جاوا و سی شارپ، دو زبان برنامه‌نویسی پرکاربرد هستند که در ظاهر به زبان‌های کامپایل شده تعلق دارند. اما در عمل، این دو زبان چنین ساده قابل دسته‌بندی نیستند. چون این دو زبان، هم از ویژگی‌های زبان‌های تفسیری و هم از ویژگی‌های زبان‌های کامپایل شده استفاده می‌کنند.? جاواجاوا، یک زبان برنامه‌نويسي چندسک? جاوا جاوا، یک زبان برنامه‌نويسي چندسکويي (multi-platform) است که از یک مفهوم به نام ماشین مجازی جاوا (Java Virtual Machine) استفاده می‌کند. ماشین مجازی جاوا، یک تفسیرگر است که کد جاوا را به زبان باینری تبدیل و اجرا می‌کند. اما کد جاوا، قبل از این کار، توسط یک کامپایلر به یک زبان میانی به نام بایت‌کد (bytecode) تبدیل می‌شود. بایت‌کد، یک زبان است که قابل فهم برای ماشین مجازی جاوا است و در هر سکو که این ماشین مجازی وجود دارد، قابل اجرا است. این روش باعث می‌شود که جاوا هم سرعت بالای زبان‌های کامپایل شده را داشته باشد و هم قابل حمل بودن زبان‌های تفسیری را.? سی شارپ سی شارپ، یک زبان برنامه‌نويسي شيءگرا (object-oriented) است که تحت فریمورک (framework) دات نت (dot net) اجرا می‌شود. فریمورک دات نت، یک محیط نرم‌افزاري است که از چندین زبان برنامه‌نويسي پشتیباني می‌کند و به آن‌ها امکان دسترسي به سخت‌افزار و سرويس‌های سيستم عامل را مي‌دهد. سي شارپ، همانند جاوا، از یک کامپایلر و یک تفسیرگر استفاده می‌کند. کامپایلر سي شارپ، کد را به بایت‌کد تبدیل می‌کند و تفسیرگر دات نت، بایت‌کد را به زبان باینري تبديل و اجرا مي‌كند. این روش باعث مي‌شود كه سي شارپ هم سرعت و امنيت زبان‌های كامپایل شده را داشته باشد و هم قابل حمل بودن و خطایابي آسان زبان‌های تفسيري را.? خلاصه زبان‌های برنامه‌نويسي، به دو دسته تفسيري و كامپایل شده تقسيم مي‌شوند. زبان‌های تفسيري، هر خط كد را در زمان اجرا به زبان باینري تبديل و اجرا مي‌كنند. زبان‌های كامپایل شده، تمام كد را در زمان ساخت به زبان باینري تبديل و يك فایل اجرایي مستقل مي‌سازند. هر دو دسته از مزایا و معایب خود برخوردارند. جاوا و سي شارپ، دو زبان برنامه‌نويسي هستند كه از ويژگي‌های هر دو دسته استفاده مي‌كنند و به زبان‌های كامپایل شده تعلق دارند.