نوشته شده توسط : مهدی فیضی

● تفسیر شدهInterpreted :
 

جاوا یک زبان تفسیر شده است. کامپایلر جاوا به جای ایجاد کد محلی ماشین، کد بایتی برای ماشین مجازی جاوا ایجاد می کند. برای اجرای دقیق برنامه، از مفسر جاوا برای اجرای کد های بایتی کامپایل شده استفاده می شود. به دلیل اینکه کدهای بایتی جاوا به نوع کامپیوتر بستگی ندارند، برنامه های جاوا می توانند روی هر نوع کامپیوتری که JVM (Java )Virtual Machine را دارند، اجرا شوند . در محیط تفسیر شده، مرحله لینک استاندارد توسعه برنامه از دید کاربر پنهان است. اگر جاوا تنها یک مرحله لینک داشت، فقط بارگذاری کلاس جدید به محیط پردازش می شد که این خصوصیت با چرخه کامپایل-لینک-اجرا ی آرام و طاقت فرسای زبان هایی مانند C یا C++ در تضاد است .


● معماری خنثی و قابل حمل:
 

به دلیل اینکه برنامه های جاوا در فرمت کد بایتی با معماری خنثی کامپایل شده اند، برنامه کاربردی جاوا می تواند در هر سیستمی اجرا شود.البته با این شرط که آن سیستم توانایی پیاده سازی ماشین مجازی جاوا را داشته باشد. این مسأله تقریباً برای کاربردهای توزیع شده روی اینترنت و یا دیگر شبکه های ناهمگن مهم است. اما روش معماری خنثی برای کاربردهای بر مبنای شبکه مفید است . به عنوان یک توسعه دهنده برنامه های کاربردی، در بازار نرم افزاری امروز ممکن است بخواهید مدل های کاربردی خود را توسعه دهید، به طوری که بتواند رویPc، مکینتاش و سیستم عامل Unix اجرا شود .با وجود گونه های مختلف Unix Windows روی Pc و مکینتاش قوی جدید، رفته رفته تولید نرم افزار برای همه انواع این کامپیوتر ها سخت می شود. اگر شما برنامه تان را در جاوا بنویسید می تواند روی همه این کامپیوترها اجرا شود. در حقیقت تفسیر شده بودن جاوا و تعریف یک استاندارد، معماری خنثی داشتن و فرمت کد بایتی آن از بزرگترین دلایل قابل حمل بودن آن به شمار می آیند . اما جاوا باز از این هم بیشتر گام برمی دارد، با اطمینان حاصل کردن از اینکه هیچیک از جنبه های وابستگی اجرایی زبان را ندارد. برای مثال جاوا به طور صریح اندازه هریک از انواع داده را تعریف می کند که این با C تفاوت دارد، برای مثال هریک از انواع صحیح می تواند بسته به نوع کامپیوتر۱۶-۳۲ یا ۶۴ بیت طول داشته باشد . هنگامی که به صورت تکنیکی امکان نوشتن برنامه های غیر قابل حمل در جاوا فراهم شد، جلوگیری از چند خاصیت وابسته به نوع کامپیوتر که توسط جاوا API تولید شده و به طور قطع قابل حمل نوشته شده است، آسان است . یک برنامه جاوا به تولید کنندگان نرم افزار کمک می کند تا از قابل حمل بودن کد هایشان اطمینان حاصل کنند. برنامه نویسان فقط برای پرهیز از دام غیر قابل حمل بودن برنامه احتیاج به یک تلاش ساده دارند که شعار تجارتی شرکتSun را زنده نگهدارند و آن شعار این است : « یک بار بنویس، همه جا اجرا کن» .


● پویا و توزیع شده: Dynamic and Distributed
 

جاوا یک زبان پویا است. هر کلاس جاوا می تواند در هر زمانی روی مفسر جاوا بارگذاری شود. سپس این کلاس های بارگذاری شده پویا می توانند به صورت پویا معرفی شوند. حتی کتابخانه کدهای محلی می تواند به طور پویا بارگذاری شود. کلاس ها در جاوا با کلاس Class فراخوانی می شوند؛ شما می توانید به طور پویا در مورد یک کلاس در زمان اجرا اطلاعاتی بدست بیاورید. این خصوصیت در جاوا به طور درستی موجود است. با وجود بازتاب API اضافه شده (Application Program Interface) که به برنامه ساز امکان می دهد که با برنامه از طریق یک برنامه کاربردی دیگر ارتباط برقرار کند . جاوا حتی با نام زبان توزیع شده نیز خوانده می شود. به طور ساده این به این معنا است که این زبان پشتیبانی سطح بالایی برای شبکه به وجود می آورد. برای مثال کلاس URL و کلاس های مرتبط با آن در بسته ava.net، خواندن فایل های دوردست را به همان سادگی خواندن فایل های محلی کرده است. به طور مشابه در جاوا ۱‎/،۱ احضار روش کنترلی RMI (RemoteMethod Invocation)، API به یک برنامه جاوا اجازه می دهد که روش هایی از اشیاء دور دست جاوا را به همان صورتی که اگر آن اشیاء محلی بودند آنها را می خواند، بخواند .(جاوا حتی از سیستم شبکه ای سطح پایین که شامل آدرس مقصد و مسیر جریانی که توسط سوکت ها متصل شده است، نیز پشتیبانی می کند). طبیعت توزیع شده جاوا زمانیکه با امکانات پویای بارگذاری کلاس همراه می شود، واقعاً درخشنده است. این خصوصیات با هم این امکان را برای مفسر جاوا به وجود می آورند که کدها را از اینترنت بارگذاری و اجرا کند. (همان طور که بعداً خواهیم دید جاوا باعث می شود که با وجود ابزار قدرتمند و ایمن این کار به طور مطمئن انجام شود). این چیزی است که در هنگام بارگذاری و اجرای یک برنامه کاربردی از اینترنت توسط مرورگر وب، اتفاق می افتد. اما داستان پیچیده تر از این هم می تواند باشد. تصور کنید یک پردازشگر کلمه چند رسانه ای در جاوا نوشته شده است. وقتی از این برنامه پرسیده می شود که چند نوع از داده هایی را که قبلاً هرگز وارد نشده را نمایش دهد، ممکن است به طور دینامیکی یک کلاس را که می تواند داده را شناسایی کند، از شبکه بارگذاری کند و بعد کلاس دیگری را که بتواند داده را از درون یک پوشه ترکیبی بخواند ، باز به طور دینامیکی بارگذاری می کند.


منبع: www.it4u.blogsky.com

 




:: بازدید از این مطلب : 116
|
امتیاز مطلب : 5
|
تعداد امتیازدهندگان : 2
|
مجموع امتیاز : 2
تاریخ انتشار : چهار شنبه 24 فروردين 1390 | نظرات ()
مطالب مرتبط با این پست
لیست
می توانید دیدگاه خود را بنویسید


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: