سکوی جاوا
بنسازه، یا پلتفرم جاوا به مجموعهای از محصولات نرمافزاری و مشخصهها از شرکت سان میکروسیستمز، یک زیر مجموعه از شرکت اوراکل، اطلاق میشود که به منظور ایجاد محیطی برای نوشتن نرمافزارهایی که به صورت چندسکویی اجرا میشوند به کار میرود. جاوا در محدوده وسیعی از کاربردها، مورد استفاده قرار میگیرد. کاربردهایی را محدودهٔ وسیعی از سکوهای محاسباتی، سامانههای توکار، تلفنهای همراه که کاربردهایی در دستگاههای معمولی هستند تا دستگاههایی از قبیل ابررایانه ها و رایانههای خدمتگزار را شامل میشود. البته گستردگی جاوا به اندازهای که در خدمتگزاران وب و رایانه رومیزی استفاده میگردد، نیست. جاوا اپلت، به عنوان بخشی از سکوی جاوا، برای فراهم آوردن عملیاتی توسعه یافته و ایمن، در وب استفاده میگردد.
نوشتن برنامه به زبان جاوا، راهی برای تولید کد این زبان است که در نهایت منجر به تولید بایت کد میگردد. هرچند مترجم زبانهایی مانند جاوا اسکریپت، روبی، پایتون نیز قادر به تولید بایت کد میباشند. امروزه تعدادی از زبانهای برنامهنویسی به گونهای طراحی شدهاند که قابل اجرا روی ماشین مجازی جاوا باشند. از این میان میتوان به اسکالا، کلوژر اشاره نمود. نحو جاوا، بسیار شبیه به نحو زبانهای سی و سی++ است. ولی شیء گرایی بکار رفته در آن مدل شدهٔ اسمالتاک و آبجکتیو-سی است. جاوا با سادهسازی استفاده از تملک حافظه (با روش قرارگیری روی هیپ) و نیز حذف عناصر سطح پایینی چون اشاره گر و جایگزینی آنها با مراجع سادهسازی در زبان صورت پذیرفتهاست. از سویی دیگر مدیریت حافظه با استفاده از بخش یکپارچه و خودکار با نام زبالهروب (به انگلیسی: Garbage Collection)، وسیله ماشین مجازی جاوا صورت می پذیرد.
در ۱۳ نوامبر سال ۲۰۰۶(۲۲ آبان ۱۳۸۵)، شرکت سان میکروسیستم بخش عظیمی از جاوا را تحت پروانه عمومی همگانی گنو منشر نمود. اگرچه بخشهایی از جاوا، هرچند اندک، هنوز به دلیل مسایل کپی رایت با مجوز سان و به صورت بایت کدهایی از پیش کامپایل شده، منتشر گردید؛ چرا که این بخشهای متعلق به شرکت سان نیست.
نویسنده(های) اصلی | جیمز گاسلینگ، سان مایکروسیستمز |
---|---|
توسعهدهنده(ها) | ابرشرکت اورکل |
انتشار ابتدایی | ۱۴ آوریل ۱۹۹۸ |
نوشتهشده با | جاوا، C++ ،C، زبان اسمبلی |
سیستمعامل | مایکروسافت ویندوز، سولاریس، لینوکس، مکاواس |
بنسازه رایانش | IA-32, x64, ARMv7 , ARMv8 , SPARC (تا جاوا 14) (Java 8 شامل پشتیبانی ۳۲-بیت هست – اما برای کاربردهای تجاری توسط اوراکل به صورت رایگان پشتیبانی نمیشود. – بنسازههای 32 بیتی در دیگر نسخهها پشتیبانی نمیشود، زیرا به صورت رسمی در Java 10 حذف شدند.) |
در دسترس به | English, Chinese, French, German, Italian, Japanese, Korean, Portuguese, Spanish, Swedish |
گونه | بنسازه نرمافزاری |
پروانه | پروانه دوگانه: ویرایش دوم پروانه عمومی همگانی گنو به استثنای مسیرکلاس، و یک پروانه مالکیتی. |
وبگاه |
سکو
سکوی جاوا(به انگلیسی: Java Platform)، نامی برای نرمافزارهای یا سکو مرتبطی استکه از سوی شرکت سان، برای توسعه و اجرای برنامههای نوشته شده به زبان جاوا منتشر شده. عبارت سکو، بیانگر پردازنده یا سیستم عامل خاصی برای اجرا برنامههای جاوا نیست، بلکه بیانگر موتور اجرایی این زبان ( که با نام ماشین مجازی جاوا معرفی میگردد) است. همچنین بیانگر مترجمی با مجموعهای از کتابخانه هاست که قابلیت اجرایی فارغ از سخت افزار و سیستم عامل های مختلف، را داراست. بنابراین جاوا به صورت مشخصی بر روی هر دستگاهی که ماشین محازی داشته باشد اجرا میگردد.
- جاوا کارت : به فناوری ایی اطلاق میگردد که به برنامههای مبتنی بر جاوا(اپلت ها) اجازه اجرایی امن بر روی کارتهای هوشمند و دستگاههای مشابه، را میدهد.
- جاوا نگارش ریز(به انگلیسی: Micro Edition): مجموعه از چندین کتابخانه را مشخص می نماید که برای دستگاههایی است که توانایی پشتیبانی کامل از کل مجموعه کتابخانههای جاوا را ندارند. چراکه که در صورت استفاده از تمام کتابخانهها، بخش عظیمی از فضای ذخیرهسازی را شامل میگردد.
- جاوا نگارش استاندارد(به انگلیسی: Standard Edition) : برای اهداف عمومی که قابل استفاده در رایانه رومیزی، کارگزار و ابزارها و دستگاههای مشابه است.
- جاوا نگارش سازمانی (به انگلیسی: Enterprise Edition): در واقع همان نگارش استاندارد جاوا به همراه رابط برنامهنویسی نرمافزار متنوع و مفیدی برای مشتری خدمتگزار و معماری چندلایه و خدومتگزار کاربردیاست.
در ماه سپتامبر۲۰۰۹، نگارش سابق سکوی جاوا با شماره ۱.۶.۰، که به صورت تجاری نگارش ۶ خوانده میشود منتشر شد. نمایش این نگارش به صورت ۱.۶.۰ برای توسعه دهندگان است.
اوارکل که پس از خرید سان، عنوان توسعهدهندۀ رسمی جاوابه جای این شرکت بر عهده گرفتهاست در تاریخ ۲۸ ژوئیه ۲۰۱۱(۶ مرداد ۱۳۹۰) نگارش هفتم جاوا را با کد ۱.۷.۰ را منتشر ساخت. اگرچه این انتشار با اعلام امکان بروز برخی خطاها در کامپایل برنامهای ارائه شده از سوی بنیاد آپاچی، مانند لوسنه و سولار همراه بودهاست. این سکوی جاوا شامل مجموعهای چندین برنامه است. هر یک از این برنامهها بخش مشخص و یکتایی از قابلیتهای کلی را پوشش میدهد. برای مثال، مترجم جاوا، که وظیفه اش تبدیل کد جاوا به بایت کد جاواست (که زبانی واسط برای ماشین مجازی جاواست) به عنوان بخشی از کیت توسعه جاواست. محیط زمان اجرای جاوا به عنوان مکمل ماشین مجازی جاو عمل می نماید. این محیط با اجرای کامپایل درجا، بایت کدهای تولید در واسط را به زبان بومی ماشینی که برنامه در آن در حال اجراست، تبدیل می نماید. همچنین کتابخانههایی گستردهای وجود دارند که به صورت از پیش ترجمه شده که شامل مؤلفههایی هستند که بعضی از آنها فقط در نگارشهای خاص استفاده میشوند.
ماشین مجازی جاوا
قلب تپنده سکوی جاوا، مفهوم "ماشین مجازی" است. ماشیت مجازی اجراکنندهٔ بایت کدهای برنامه است. بایت کد فارغ از نوع سخت افزار و سیستم عاملی که برنامه در آن در حال اجرا میشود، یکسان است. در این ماشین مجازی، کامپایلری به نام جی ای تی وجود دارد. این کامپایلر، بایت کدهای جاوا را به صورت دستورات بومی همان پردازندهٔ مجری برنامه، به شکل زمان اجرا، تبدیل می نماید. این کامپایلر همچنین، کد اصلی را به صورت بومی شده برای زمان اجرا، در حافظه مقیم میسازد.این شکل استفاده از بایت کد، به عنوان یک واسط، جاوا قادر به اجرا در هر سکویی که دارای ماشین مجازی باشد، است. جی ای تی با این امکانات، زمینه را به نحوی فراهم میسازد که برنامه بعد از اجرا، تقریباً با سرعتی معادل با برنامه بومی همان سیستم قابل اجراست. البته این اجرا با تاخیری اولیه برای بارگذاری و اصطلاحاً گرم شدن همراه است. از زمان ارائه نگارش 1.2 محیط اجرای جاوا، مفسر این زبان جایش را به پیادهسازی دیگری از شرکت سان داد. در واقع مفسر به کامپایل درجا تبدیل گردید.
اگرچه برنامههای جاوا، فارغ از نوع سکوست، ولی فاغ بودن شامل کد ماشین مجازی جاوا مجری نمیشود. در واقع هر سیستم عامل، ماشین مجازی ویژهٔ خود را دارد.
سکوهای مشابه
موفقیت و گسترش جاوا و این تفکر و مفهوم نوشتن یکبا، اجرا همجا، باعث گردید تا تلاشهای مشابهی برای ایجاد سکوهای همسان شروع شود. یکی از این تلاشها، دات نت مایکروسافت بود که در سال ۲۰۰۲ رو نمایی شد، که بسیاری از جنبههای عالی جاوا را پیادهسازی نموده بود. دات نت، با پایان پیادهسازی اش از سوی مایکروسافت، تنها قادر به اجرا تحت ویندوز این شرکت است. این درحالی است که جاوا قادر به اجرا در تمام سیستم عامل هاست. دات نت از ابتدا برای پشتیبانی از چندین زبان برنامهنویس طراحی گردیده بود، در حالی که سکوی جاوا، تنها یک هدف با نام زبان برنامهنویس جاوا داشت.(اگرچه امروزه بسیاری از زبانهها قادر به اجرا در ماشین مجازی جاوا هستند).
دات نت، زبان جاوا مانندی با نام جیشارپ (جی++ سابق) را طراحی نمود که با خصوصیات جاوا همخوانی کامل را ندارد و بسیاری از کلاسهای منتشر شدهٔ آن مربوط به نگارش ۱.۱ جاواست. به همین دلیل، به عنوان یک زبان برای انتقالی از جاوا به سمت سکوی دات نت، و نه یک زبان از دات نت، در نظر گرفته میشود. توسعه ویژوال جی شارپ، از نگارش ۲۰۰۸ ویژوال استودیو، متوقف شد. نگارش موجود، که با بسته مایکروسافت ویژوال استودیو ارائه میگردد و تنها تا سال ۲۰۱۵، در طی استراتژی چرخه زمانی، باقی خواهد ماند
زبانهای مورد استفاده
کلمه جاوا معمولاً برای اشاره به زبان برنامهنویسی جاوا استفاده میگردد. این زبان برای استفاده از سکوی جاوا مورد استفاده قرار میگیرد. زبانهای برنامه نویس، در واقع بحثی خارج از بحث سکوست. اگرچه زبان برنامهنویسی جاوا، به عنوان بخشی از هسته جاواست.
زبان و زمان اجرا معمولاً به صورت واحد در نظر گرفته میشوند. با این وجود، افراد و شرکتهای ثالث برخی از مترجم و مفسرهایی را با هدف استفاده از امکانات ماشین مجازی جاوا، طراحی و پیادهسازی نمودهاند. بعضی از آنها برای زبانهایی طراحی شدهاند که در حال حاضر نیز موجود هستند، در حالی که بعضی دیگر برای گشترش به نگارش از زبان جاوای خود هستند. اینها شامل :
- کلوژر
- جی روبی، مفسر روبی
- گروی
- جایتون، مفسر پایتون که شامل جیتونیک، یک مبدل پایتون به جاوا
- اسکالا
- رهینو، مفسر جاوا اسکریپت
کیت توسعه جاوا
کیت توسعه جاوا، محصولی از سان برای توسعه دهندگان جاواست که از زمان پیدایش جاوا، بسیار مورد توجه قرار گرفتهاست. این بسته شامل یک مترجم و تعداد دیگر از ابزارهای مهم برای توسعه جاواست، ازجمله یک کپی کامل از ماشین مجازی جاوا.
جستارهای وابسته
منابع
- ↑ "JavaSoft ships Java 1.0" (Press release). Web.archive.org. Archived from the original on 2008-02-05. Retrieved 2016-02-09.
- ↑ Ortiz, C. Enrique; Giguère, Éric (2001). Mobile Information Device Profile for Java 2 Micro Edition: Developer's Guide (PDF). John Wiley & Sons. ISBN 978-0471034650. Retrieved 2012-05-30.
- ↑ "HotSpot Group". Openjdk.java.net. Retrieved 2016-02-09.
- ↑ "Oracle JDK 8 and JRE 8 Certified System Configurations Contents". Oracle.com. 2014-04-08. Retrieved 2016-02-09.
- ↑ "Java SE 7 Supported Locales". Oracle.com. Retrieved 2016-02-09.
- ↑ "OpenJDK: GPLv2 + Classpath Exception". Openjdk.java.net. 1989-04-01. Retrieved 2016-02-09.
- ↑ "BCL For Java SE". Oracle.com. 2013-04-02. Retrieved 2016-02-09.
- ↑ «بنسازهٔ محصول» [مدیریت فنّاوری] همارزِ «product platform»؛ منبع: گروه واژهگزینی. جواد میرشکاری، ویراستار. دفتر دهم. فرهنگ واژههای مصوب فرهنگستان. تهران: انتشارات فرهنگستان زبان و ادب فارسی. شابک ۹۷۸-۶۰۰-۶۱۴۳-۳۴-۷ (ذیل سرواژهٔ بنسازهٔ محصول)
- ↑ «Java Was Strongly Influenced by Objective-C». بایگانیشده از اصلی در ۲۳ ژوئن ۲۰۱۰. دریافتشده در ۲ سپتامبر ۲۰۱۰.
- ↑ «Sun Opens Java». بایگانیشده از روی نسخه اصلی در ۱۳ مه ۲۰۰۸. دریافتشده در ۱۳ مه ۲۰۰۸.
- ↑ «Related Technologies | Oracle». بایگانیشده از اصلی در ۳ مارس ۲۰۱۲. دریافتشده در ۲ سپتامبر ۲۰۱۰.
- ↑ لاورنس لطیف (۲۹ ژوئیه ۲۰۱۱). "اوراکل نگارش استاندارد جاوا ۷ را منتشر نمود" (به انگلیسی). دِ انکویرر. Archived from the original on 10 December 2011. Retrieved 10 مرداد 1390.
- ↑ تد سامسون (۲۹ ژوئیه ۲۰۱۱). "اوراکل و آپاچی امکان بروز خطاهای جدیای را در کامپایل با جاوای ۷ اعلام نمودند" (به انگلیسی). اینفو ورلد. Retrieved 10 مرداد 1390.