موتور جاوااسکریپت
موتور جاوااسکریپت جزء نرمافزاری است که کد جاوااسکریپت را اجرا میکند. اولین موتورهای جاوااسکریپت تنها مفسر بودند. اما تمامی این موتورهای جاوااسکریپت کنونی برای بهبود عملکرد و بازدهی از روش کامپایل درجا استفاده میکنند.[۱]
موتورهای جاوااسکریپت معمولاً توسط تولیدکنندگان مرورگرهای وب توسعه مییابند. میتوان اینطور گفت که تمامی مرورگرهای مهم یکی از انواع موتورهای جاوااسکریپت مخصوص به خود را دارد. در یک مرورگر، موتور جاوااسکریپت از طریق اتصالات مدل شیءگرای سند و وب آیدیاِل در هماهنگی کامل با موتور چیدمان و دوشادوش آن اجرا میشود.[۲]
با این وجود استفاده از موتورهای جاوااسکریپت به مرورگرها محدود نمیشود. به عنوان مثال، موتور V8 جزء اصلی سیستمهای زمان اجرا در نود جیاس و دینو است که مرورگر نیستند.[۳]
از آنجایی که مشخصات استاندارد جاوااسکریپت توسط اکمااسکریپت مشخص شده است، نام دیگر این ابزارها موتور اکمااسکریپت است. با ظهور وباسمبلی، برخی از موتورها به اجرای این تکنولوژی در همان جعبه شنی که کدهای جاوااسکریپت معمولی اجرا میشوند میپردازند.[۴][۳]
تاریخچه
[ویرایش]اولین موتور جاوااسکریپت در سال 1995 توسط برندان آیک برای مرورگر وب نتاسکیپ نویگیتور ایجاد شد.[۵] این یک مفسر ابتدایی برای زبان نوپایی بود که آیک اختراع کرد.[۶] (این به موتور اسپایدر مانکی تبدیل شد که هنوز توسط مرورگر فایرفاکس استفاده می شود. [۵])
گوگل در سال 2008 مرورگر کروم خود را با موتور V8 جاوااسکریپت که سریعتر از رقبای خود بود، معرفی کرد.[۷][۸] نوآوری کلیدی در این محصول استفاده از روش کامپایل درجا (اختصاری JIT) بود که موزیلا نیز روی اسپایدر مانکی برای استفاده از این روش کار میکرد.[۹] با توجه به عملکرد بالای V8، سایر ارائه دهندگان مرورگر نیاز به تعمیرات اساسی موتورهای خود برای JIT داشتند تا بتوانند جایگاه خود را حفظ کنند.[۱۰] اپل موتور نیترو را برای مرورگر سافاری خود توسعه داد که 30 درصد عملکرد بهتری نسبت به نسخه قبلی خود داشت. [۱۱] پس از آن نیز موزیلا از بخشهایی از نیترو برای بهبود اسپایدر مانکی استفاده کرد. [۱۲]
از سال 2017، اکثر موتورهای تولید شده توسط شرکتهای بزرگ پشتیبانی از وباسمبلی را اضافه کردهاند. [۴]
موتورهای مهم در بازار
[ویرایش]- موتور V8 محصول گوگل پر استفادهترین موتور جاوااسکریپت است. گوگل کروم و بسیاری دیگر از مرورگرهای مبتنی بر کرومیوم از آن استفاده میکنند. بدین ترتیب تمامی برنامههای کاربردی ساخته شده با CEF، الکترون، یا هر چارچوب نرم افزاری دیگری که از کرومیوم استفاده می کنند نیز از امکانات موتور V8 بهرهمند میشوند. کاربردهای دیگر آن شامل سیستمهای زمان اجرا در نود جیاس و دینو است.
- مانکی اسپایدر توسط موزیلا برای استفاده در فایرفاکس و انشعاب های آن توسعه یافته است. پوسته گنوم از آن برای پشتیبانی برنامههای افزودنی استفاده میکند.
- موتور ساخته شده توسط اپل برای مرورگر سافاری، جاوااسکریپت کُرنام دارد. سایر مرورگرهای مبتنی بر وبکیت و سیستم زمان اجرای بان نیز از آن استفاده میکنند. نقطه شروع توسعه این موتور برنامه کانکرور از کیدیئی بود.[۱۳]
- چاکرا موتور مرورگر اینترنت اکسپلورر است. مایکروسافت در گذشته از آن در مرورگر اصلی مایکروسافت اج ساتفاده کرد، اما بعداً این مرورگر بر اساس کرومیوم بازنویسی شد و در حال حاضر از V8 استفاده میکند.[۱۴] [۱۵]
منابع
[ویرایش]- ↑ Looper, Jen (2015-09-21). "A Guide to JavaScript Engines for Idiots". Telerik Developer Network. Archived from the original on 2018-12-08. Retrieved 2018-12-08.
- ↑ "How Blink Works". Google. Retrieved 12 March 2024.
- ↑ ۳٫۰ ۳٫۱ "Documentation · V8". Google. Retrieved 3 March 2024.
- ↑ ۴٫۰ ۴٫۱ Nelaturu, Keerthi. "WebAssembly: What's the big deal?". medium.com. Retrieved 3 March 2024.
- ↑ ۵٫۰ ۵٫۱ Eich, Brendan (2011-06-21). "New JavaScript Engine Module Owner".
- ↑ Fin JS (June 17, 2016), "Brendan Eich – CEO of Brave", YouTube, retrieved February 7, 2018
- ↑ "Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome". PC Games Hardware. Computec Media AG. 3 July 2009. Archived from the original on May 2, 2012. Retrieved June 28, 2010.
- ↑ Purdy, Kevin (June 11, 2009). "Lifehacker Speed Tests: Safari 4, Chrome 2". Lifehacker. Archived from the original on April 14, 2021. Retrieved May 8, 2021.
- ↑ "TraceMonkey: JavaScript Lightspeed, Brendan Eich's Blog". Archived from the original on December 4, 2015. Retrieved July 22, 2020.
- ↑ "Mozilla asks, 'Are we fast yet?'". Wired. Archived from the original on June 22, 2018. Retrieved January 18, 2019.
- ↑ Safari 5 Released
- ↑ Shankland, Stephen (2010-03-02). "Opera 10.5 brings new JavaScript engine". CNET. CBS Interactive. Archived from the original on 2013-10-03. Retrieved 2012-01-30.
- ↑ Stachowiak, Maciej (November 9, 2008). "Companies and Organizations that have contributed to WebKit". WebKit Wiki. Retrieved April 13, 2019.
- ↑ Belfiore, Joe (2020-01-15), New year, new browser – The new Microsoft Edge is out of preview and now available for download, Microsoft
- ↑ "Microsoft Edge and Chromium Open Source: Our Intent". Microsoft Edge Team. 6 December 2018. Retrieved 8 December 2018.