peyman5color

جاوا
نویسنده : پیمان پنجرنگ - ساعت ٤:٥۳ ‎ب.ظ روز ۱۳٩۱/۸/۱۳
 

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


 

ماشینی که می خواهد برنامه جاوا را اجرا کند، کافیست برنامه ای به نام کامپایلر و یا مفسر جاوا را در اختیار داشته باشد تا آن برنامه را برای ماشین ترجمه کند. به یاد دارید که وقتی از زبان هایی غیر از جاوا استفاده می کنید، چندین نسخه از برنامه باید نوشته شوند. مثل نسخه تحت MS-DOS، نسخه ویندوز 3.1، نسخه ویندوز 95، نسخه ویندوز 98، نسخه مکینتاش و غیره.

جاوا مستقل از محیط است

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

 

 


جاوا استقلال از محیط را با استفاده از ماشین مجازی انجام می دهد. در واقع ماشین مجازی، کامپیوتری در کامپیوتر دیگر است. ماشین مجازی برنامه های کامپایل شده ی جاوا را می گیرد و دستورات آن را به فرمان هایی تبدیل می کند کهسیستم عامل می تواند با آنها کار کند. کد ماشین مجازی را "بایت کد" (bytecode) می نامند. برنامه ی کامپایل شده که به شکل بایت کد است، می تواند بر روی هر کامپیوتر و سیستم عاملی که ماشین مجازی را دارد اجرا شود. ماشین مجازی را مفسر جاوا و یا روتین جاوا (java routine) نیز می نامند. به طور کلی می توان گفت که لازم نیست برنامه نویس جاوا، چندین نسخه از برنامه را برای محیط های مختلف بنویسد، زیرا ماشین مجازی جاوا آن برنامه را برای محیط های مختلف ترجمه می کند.

برنامه های جاوا فقط در سیستمی می توانند اجرا شوند که ماشین مجازی جاوانصب شده باشد. یعنی برای اجرای برنامه ها در هر سیستمی، ماشین مجازی جاواباید در آن سیستم وجود داشته باشد

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

جاوا مستقل از محیط است

بایت کد شبیه کد ماشین است که توسط سایر زبان های تولید می شود، ولی مخصوص ماشین خاصی نیست. بایت کد، سطحی را بین کد منبع و کد ماشین اضافه می کند.

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

برنامه های جاوا فقط در سیستمی می توانند اجرا شوند که ماشین مجازیجاوا نصب شده باشد. یعنی برای اجرای برنامه ها در هر سیستمی، ماشین مجازی جاوا باید در آن سیستم وجود داشته باشد.

همان طور که گفتیم به دلیل استفاده از ماشین مجازی سطحی بین کد منبع و کد ماشین به وجود می آید. اجرای برنامه های جاوا کند است.

اگر برنامه هایی می نویسید که سرعت آن ها باید بیشتر از ماشین مجازی باشد، به دو روش زیر می توانید عمل کنید:

1. در برنامه جاوا از کد ماشین خاصی استفاده کنید که منجر به برنامه ای می شود که وابسته به محیط است.

2. از کامپایلرهای بی درنگ (just in time) استفاده کنید که بایت کد جاوا را به کدی برای ماشین های خاص تبدیل می کند.