آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

ارسال مجدد کد یکبار مصرف (00:90)
  • 02177010771
  • info@chabokacademy.com
  • اخبار و مقالات
  • علاقمندی ها
آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
شروع کنید
0

وبلاگ

آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی > اخبار و مقالات > برنامه نویسی > جاوا مفسری یا کامپایلری؟ بررسی عمیق و کاربردی

جاوا مفسری یا کامپایلری؟ بررسی عمیق و کاربردی

خرداد 7, 1404
ارسال شده توسط ادمین آکادمی
برنامه نویسی
تفاوت اجرای مفسری و کامپایلری زبان‌ جاوا

فهرست مطالب این نوشته

Toggle
  • شروع ماجرا از تفاوت زبان‌های مفسری و کامپایلری
  • معماری خاص جاوا: نه این، نه آن!
  • کامپایلر جاوا چیست و چه نقشی دارد؟
  • مفسر جاوا چیست؟ نقش JVM در اجرا
  • تفاوت اجرای مفسری و کامپایلری زبان‌ جاوا
  • مزایای اجرای برنامه جاوا با کامپایلر یا مفسر
  • مقایسه زبان‌‌های مفسری و کامپایلری از منظر جاوا
تعداد بازدید: 36
لطفا به این مقاله امتیاز بدهید.

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

chabokacademy
دوره‌های آموزشی آکادمی چابک
با تخفیف‌های ویژه آکادمی چابک، یادگیری را شروع کنید!
مشاهده دوره‌ها

شروع ماجرا از تفاوت زبان‌های مفسری و کامپایلری

قبل از وارد شدن به صحبت اصلی، بهتر است با تفاوت‌های بین زبان‌های مفسری و کامپایلری آشنا شوید. تفاوت مفسر و کامپایلر عبارتند از:

  1. زبان‌های کامپایلری (مانند C++ و Go): پیش از اجرا، توسط کامپایلر به کد ماشین ترجمه می‌شوند و سرعت بالا و کارایی بی‌نظیری دارند چون مستقیماً با سخت‌افزار صحبت می‌کنند. اما نکته‌ای مهم دارند: خروجی آن‌ها مخصوص همان پلتفرم است. یعنی برنامه‌ای که روی ویندوز کامپایل شده، روی لینوکس اجرا نمی‌شود (مگر با تنظیمات خاص).
  2. زبان‌های مفسری (مثل پایتون و جاوااسکریپت): در زمان اجرا خط‌به‌خط تفسیر می‌شود پس نیازی به مرحله build و خروجی خاص ندارند. بنابراین نتیجه می‌گیریم روی پلتفرم‌های مختلف راحت‌تر اجرا می‌شود چون کد مستقیماً روی ماشین مجازی یا مفسر اجرا می‌شود.
  • نکته درباره زبان‌های مفسری: به خاطر ماهیت خط‌به‌خط، سرعت‌شان نسبت به زبان‌های کامپایلری کمتر است.

حالا پرسش اصلی: جاوا مفسری یا کامپایلری است؟

جاوا مفسری یا کامپایلری

معماری خاص جاوا: نه این، نه آن!

جاوا زبان خاصی است که از همان ابتدا با شعار معروف “یک‌بار بنویس، همه‌جا اجرا کن” (Write Once, Run Anywhere) وارد دنیای برنامه‌نویسی شد. این شعار با ترکیب کامپایل و تفسیر به حقیقت پیوست. برای همین جاوا را زبان نیمه‌کامپایلری یا هیبریدی می‌نامند.

چرا جاوا زبان نیمه کامپایلری است؟

چون:

  • ابتدا کدهای .java شما با کامپایلر جاوا (javac) به فایل‌های بایت‌کد با پسوند .class تبدیل می‌شوند.
  • این بایت‌کد برخلاف کد ماشین، قابل اجرا روی هر دستگاهی نیست.
  • در مرحله اجرا JVM این بایت‌کد را یا تفسیر می‌کند (با Interpreter) یا با کمک JIT Compiler به کد ماشین تبدیل می‌کند.

یعنی اجرای برنامه جاوا با کامپایلر یا مفسر انجام می‌شود.

کامپایلر جاوا چیست و چه نقشی دارد؟

کامپایلر جاوا (javac) کدی که توسعه‌دهنده نوشته است (فایل‌های .java) را بررسی می‌کند و اگر بدون خطا باشد، آن را به بایت‌کد (فایل‌های .class) تبدیل می‌کند. باید بدانید که بایت‌کد یک زبان میانی است. نه به اندازه زبان سطح بالا انتزاع دارد، نه مثل کد ماشین وابسته به سخت‌افزار است. اما به وسیله آن می‌تواند برنامه را روی هر پلتفرمی اجرا کرد.

راهنمای انتخاب زبان‌های برنامه‌نویسی بک‌اند برای پروژه‌ها
بخوانید

مفسر جاوا چیست؟ نقش JVM در اجرا

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

JVM یا ماشین مجازی جاوا یک نرم‌افزار است که بایت‌کد را تفسیر می‌کند (خط‌به‌خط اجرا). سپس بخش‌های پرتکرار را شناسایی و به کد ماشین واقعی تبدیل می‌کند (با استفاده از JIT Compiler).

حافظه را مدیریت می‌کند، کلاس‌ها را بارگذاری می‌کند و … . در واقع مفسر جاوا بخشی از موتور اجرای JVM است.

تفاوت اجرای مفسری و کامپایلری زبان‌ جاوا

اگر بخواهیم بدانیم جاوا مفسری یا کامپایلری و این تفاوت را روی جاوا پیاده کنیم، باید بگوییم:

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

برای مثال، در تست‌های الگوریتم فیبوناچی:

زبان / حالت اجرا زمان اجرای متوسط (نانوثانیه)
جاوا با JIT ۲۷۲۶
جاوا بدون JIT ۱۷۹۶۵
C++ بدون بهینه‌سازی ۹۴۳۵
JavaScript ۲۲۹۹۸

 

مزایای اجرای برنامه جاوا با کامپایلر یا مفسر

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

سومین مزیت این است که با استفاده از JIT بخش‌های پرتکرار کد مستقیماً به زبان ماشین ترجمه می‌شوند که این یعنی سرعت بالا. آخرین مزیتی که می‌خواهیم به آن اشاره کنیم امکان مدیریت حافظه به لطف Garbage Collector است.

جاوا مفسری است یا کامپایلری

مقایسه زبان‌‌های مفسری و کامپایلری از منظر جاوا

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

سخن پایانی

جاوا نه صرفاً مفسری است و نه کاملاً کامپایلری. ابتدا کدهای جاوا توسط کامپایلر جاوا به بایت‌کد تبدیل می‌شوند، سپس این بایت‌کد توسط ماشین مجازی جاوا (JVM) با کمک مفسر و JIT Compiler اجرا می‌گردد. این ساختار هیبریدی را قابل حمل و بهینه کرده است.

پس اگر از شما بپرسند “جاوا مفسری یا کامپایلری است؟”، با اطمینان بگویید: جاوا یک زبان نیمه‌کامپایلری است.

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

انواع Scopeها در جاوا اسکریپت و پایتون
بخوانید

منبع:

www.baeldung.com

قبلی آموزش ابزارهای فتوشاپ با تمرین و ویدئو
بعدی چگونه می‌توانیم اپلیکیشن‌های موبایل خود را در اپ استورهای ایرانی منتشر کنیم؟

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • آموزش گرافیک کامپیوتری
  • امنیت و شبکه
  • برنامه نویسی
  • پایگاه داده
  • سیستم عامل
  • طراحی وب
  • کسب و کار
  • هوش مصنوعی
برچسب‌ها
MBA آموزش و کاربرد هوش مصنوعی اهداف شغلی بازاریابی محصول کسب و کار اینترنتی
logoacademy
آکادمی چابک با برگزاری دوره‌های جامع و تخصصی در حوزه‌ی نرم‌افزار، تحلیل کسب‌وکار و همچنین مشاوره‌های تخصصی در این حوزه‌ها سعی بر آن دارد تا علاقمندان پس از گذراندن دوره‌های مربوطه بتوانند از دانش و مهارت‌ خود بهترین استفاده را کرده و وارد بازار کار شوند.
 

ارتباط با ما

  • ۰۲۱۷۷۰۱۰۷۷۱
  • info@chabokacademy.com
  • حکیمیه، بلوار بابائیان، ۱۵ متری امام حسین، بن بست شفاعت، پلاک ۱۵، طبقه ۷

دسترسی سریع

  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما
  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما

نماد‌ها و خبرنامه

۱۴۰۲© کلیه حقوق سایت نزد آکادمی چابک محفوظ است.

ورود
با شماره موبایل
آیا هنوز عضو نشده اید؟ اکنون ثبت نام کنید
ثبت نام
قبلا عضو شده اید؟ اکنون وارد شوید
محافظت شده توسط