موضوع مقاله: ماشین مجازی جاوا | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # ماشین مجازی جاوا | مقدمه: بایت‌کد اعتبارسنجی‌شده سپس به صورت مفسری یا ترجمهٔ جی‌ای‌تی بر روی معماری بومی انجام می‌شود. | ## بخش 1: ماشین مجازی جاوا | واسط برنامه‌نویسی جاوا و جی‌وی‌ام به صورت توأم محیط اجرایی را ایجاد می‌نماید ماشین مجازی جاوا که به صورت اختصار JVM مشخص می‌شود، مجموعه‌ای از برنامه‌های نرم‌افزاری و ساختمان‌داده‌هایی است که برای مدلسازی ماشینی مجازی اجرای برنامه‌های سایر رایانه‌ها و اسکریپت‌های دیگر سامانه‌هاُ به کار می‌رود. این زبان میانی، به صورتی مفهومی، مجموعه‌ای از دستورهاِ زبان برنامه‌نویس مبتنی به پشته و معماری قابلیت مبتنی بر امنیت است. سان، ادعا نموده که هم اکنون، ۴٫۵ میلیارد دستگاه در جهان از جی‌وی‌ام استفاده می‌نماید. دربارهٔ فناوری جاوا بیشتر بدانیم دید کلی یک ماشین مجازی جاوا، علاوه بر جاوا، زبان‌های برنامه‌نویسی دیگری را هم پشتیبانی می‌نماید. برای مثال دستورها زبان برنامه‌نویسی ادا توانایی ترجمه به بایت کد و نیز اجرا در این ماشین مجازی را دارا هستند. علاوه بر شرکت سان (که شرکت توسعه دهندهٔ جاواست که البته این انحصار به شرکت اوراکل واگذار شده‌است)، سایر شرکت‌ها نیز ماشین‌های مجازی جاوایی را منتشر نموده‌اند؛ که البته این کار تحت ویژگی‌های منتشر شده توسط سان، صورت می‌پذیرد. این ماشین مجازی نرم‌افزاری است که در لایهٔ بالایی سخت‌افزار واقعی و سیتم‌عامل قرار می‌گیرد. | ## بخش 2: ماشین مجازی جاوا | جاوا با استفاده از بایت کد یکسان برای تمام سکوها، ویژگی‌ای را معرفی می‌نماید با نام: یک بار ترجمه کن، هرجایی اجرا کن که مخالف با مفایر با یکبار بنویس، همه‌جا اجرا کن است. یک رابط برنامه‌نویسی نرم‌افزار، توسط یک سامانهٔ رایانه‌ای، کتابخانه، یا برنامه برای تبادل داده بین آن‌ها فراهم می‌گردد. این رابط‌های برنامه‌ای، به صورت متناسب و با هم، در محیط زمانِ‌اجرای جاوا (JRE) به صورت یک بسته وجود دارد. محیط اجرایی برنامه‌ایی که می‌خواهند بر روی جی‌وی‌ام، اجرا شوند، باید در قالبی استاندارد و کد دودویی (باینری) قابل حمل ترجمه شده‌باشند که به شکل نقطه‌کلاس (class.) است. این کار با استفاده از شبیه‌سازی مجموعه دستورها جی‌وی‌ام و با از تفسیر نمودن آن صورت می‌پذیرد. ترجمه همزمانِ٬که در واقع تفسیر نیست، برای دستیابی به سرعت‌های بالاتر در نسخه‌های امروزی جی‌وی‌ام استفاده می‌گردد. البته برای آن دسته از توسعه‌گران، که برای سامانه‌های خاص، نیاز به کد بومی دارند، ترجمهٔ زودهنگام نیز برای جی‌وی‌ام وجود دارد. | ## بخش 3: ماشین مجازی جاوا | مانند بسیاری از ماشین‌های مجازی، ماشین مجازی جاوا، دارای ساختاری مبتنی بر پشته که مبتنی بر ریزپردازنده/ریزکنترلگر اجرا کنندهٔ آن است . وظیفهٔ جی‌وی‌ام به عنوان شیءای از محیط اجرای جاوا، اجرای برنامه‌های جاوا می‌باشد. این روش ترجمه، با ترجمهٔ همزمان بخش‌هایی که عملکرد یکسانی را دارند و کاهش زمان لازم برای ترجمه، این افزایش سرعت را به ارمغان می‌آورد. زبان‌های جی‌وی‌ام +نسخه‌هایی از زبان‌های غیر جی‌وی‌امزبان روی جی‌وی‌امارلنگارلجَنگجاوا اسکریپترهینوپی‌اچ‌پی کرکسپایتونجایتونرکسنترکسروبیجی‌روبیتی‌اس‌ال جی‌ای‌سی‌ال اگرچه جی‌وی‌ام در ابتدا تنها با هدف ترجمهٔ برنامه‌های جاوا پا به عرصه گذاشته بود، اما امروزه بسیاری از زبان‌های دیگر نیز قادر به اجرای برنامه‌های خود بر روی آن هستند. جی‌وی‌امِ کنونی هیچ‌گونه پشتیبانی از زبان‌هایی که بررسی نوع در آن‌ها به صورت پویاست نمی‌کند، چرا که بررسی نوع موجود از نوع ایستاست. با این وجود از جی‌وی‌ام می‌توان به عنوان مفسری برای زبان‌هایی با بررسی نوع پویا، استفاده نمود. پشتیبانی از تغییر پویا در کلاس‌ها و متدها در جی‌وی‌ام به صورت محدود صورت می‌پذیرد که همان هم تحت محیط عیب‌یابی است. | ## جمع‌بندی | از هم‌اکنون طرحی برای پشتیبانی توکار از زبادهای پویا در نگارش هفتم جاوا در دست است.