اکما اسکریپت

اکما اسکریپت  با کوته‌نوشت ES مشخصات یک زبان اسکریپتی است که توسط اکما اینترنشنال در ECMA-262 و ISO/IEC 16262 استاندارد شده‌است. اکما اسکریپت برای استانداردسازی جاوا اسکریپت ایجاد شده‌است تا بتواند پیاده‌سازی چندگانه مستقل را تقویت کند. از زمان انتشار اولین استاندارد، جاوا اسکریپت به عنوان معروف‌ترین پیاده‌سازی اکما اسکریپت، باقی مانده است. دیگر پیاده‌سازی های شناخته شده شامل جی‌اسکریپت و اکشن‌اسکریپت می‌شوند. 

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

تاریخ 
مشخصات اکما یک ویژگی استاندارد شده از یک زبان اسکریپتی است که توسط برندان آیک از نت اسکیپ طراحی شده‌است. در ابتدا موچا، بعداً لایو اسکریپت، و در نهایت جاوا اسکریپت نامگذاری شد. در دسامبر ۱۹۹۵ سان مایکروسیستمز و نت اسکیپ جاوا اسکریپت را در مطبوعات اعلام کردند. اولین نسخه اکما-۲۶۲ توسط مجمع عمومی اکما در ژوئن ۱۹۹۷ تصویب شد. چندین نسخه استاندارد زبان از آن زمان منتشر شده‌است. نام «اکما اسکریپت» بین سازمان‌های مربوط به استانداردسازی زبان با سازش انتخاب شد، به خصوص نت اسکیپ و مایکروسافت، که اختلافات آنها در جلسات اولیه استانداردها جلسات را تحت سلطه خود درمی‌آورد. آیک اظهار داشت که «اکما اسکریپت همیشه یک نام تجاری نامناسب است که به نظر می‌رسد مانند یک بیماری پوستی است.»

در حالی که هر دوی جاوا اسکریپت و جی اسکریپت با اکما اسکریپت سازگار هستند، آنها همچنین ویژگی‌های اضافی را که در مشخصات اکما مشخص نشده‌اند، ارائه می‌دهند.

تاریخچه نسخه‌ها

امکانات 
زبان اکما اسکریپت شامل ویژگی‌های ساختاری، پویا، برنامه‌نویسی تابعی و مبتنی بر پیش نمونه است.

سینتکس مختصر 
ES6 با خود امکان استفاده از یک حالت جدید از تعریف توابع، به نام «توابع فلش» را آورده‌است. در ES5 یک تابع به صورت زیر تعریف می‌شود: var readWikiArticle = function(content) {
  // مقاله را بخوان
}; در حالیکه در ES6، با استفاده از دستور جدید تابع فلش می‌توان آن را به صورت زیر نوشت: var readWikiArticle = (content) => {
  // مقاله را بخوان
}; توابع فلشی همچنین اتصال متغیر بین توابع را بهبود می‌بخشد.

ترنسپایل کردن 
از اکما اسکریپت ۲۰۱۵ تاکنون، ترنسپایل جاوا اسکریپت بسیار رایج شده‌است.

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

معمولاً ترنسپایل کننده‌ها به نسخه ES3 برای حفظ سازگاری با تمام نسخه‌های مرورگر ترنسپایل می‌کنند.

تنظیمات لازم برای ترنسپایل به یک نسخه خاص می‌تواند بر اساس نیاز پیکربندی شوند. ترنسپایل کردن یک گام برای فرایند ساخت اضافه می‌کند و گاهی اوقات برای جلوگیری از استفاده از پولی فیلز (polyfills) نیز می‌تواند استفاده شود. Polyfills اجازه می‌دهد به وسیلهٔ یک فایل جاوا اسکریپتی که ویژگی‌های خاصی را اضافه می‌کند ویژگی‌های اضافی، اضافه شود.

سازگاری 
در سال ۲۰۱۰، Ecma International شروع به ایجاد یک آزمون استاندارد برای اکما اسکریپت Ecma-262 کرد.

Test262 یک مجموعه آزمون سازگاری اکما اسکریپت است که می‌تواند مورد استفاده قرار گیرد تا مقدار نزدیک پیاده‌سازی یک جاوا اسکریپت به مشخصات اکما اسکریپت ۵ را بررسی کند. مجموعه تست شامل هزاران تست اختصاصی است که هر کدام از آنها یک مشخصهٔ خاص از مشخصات اکما اسکریپت را آزمایش می‌کند.

توسعه test262 یک پروژه کمیته ۳۹ فنی اکما (TC39) است. چارچوب تست‌ها و آزمایش‌های اختصاصی توسط اعضای سازمان‌های TC39 ایجاد شده و به اکما برای استفاده در Test262 کمک می‌کنند.

کمک‌های مهمی توسط گوگل (Sputnik testuite) و مایکروسافت که هر دو در بیش از هزاران آزمایش کمک کردند، شکل گرفت شد. مجموعه آزمون Test262 در حال حاضر شامل بیش از ۱۱٬۰۰۰ آزمون است و توسعه آن  فراتر رفته‌است.

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

جستارهای وابسته 
 اکما اسکریپت برای اکس‌ام‌ال 
 جاوا اسکریپت
 جی‌اسکریپت
 سیاهه موتور های اکما اسکریپت

منابع

پیوند به بیرون 
 

 ایزو استاندارد
 ایزو ۱۶۲۶۲

 استانداردهای اکما
 ECMA-262
 ECMA-262 ECMAScript Language Specification نسخه سوم (دسامبر ۱۹۹۹)
 مشخصات زبان ECMAScript، نسخه ۳ فینال، 24-Mar-۰۰
 ECMA-262 ECMAScript Language Specification ویرایش پنجم (دسامبر ۲۰۰۹)
 ECMA-262 ECMAScript Language Specification 5.1 (ژوئن ۲۰۱۱)
 ECMA-290 ECMAScript Components Specification (ژوئن ۱۹۹۹)
 ECMA-327 ECMAScript 3rd Compact Profile (ژوئن ۲۰۰۱)
 ECMA-357 ECMAScript برای مشخصات XML (E4X) (ژوئن ۲۰۰۴)

استانداردهای ئی‌سی‌ام‌ای
استانداردهای رایانه
زبان‌های اسکریپت‌نویسی
زبان‌های برنامه‌نویسی بر پایه پیش‌نمونه
زبان‌های برنامه‌نویسی خانواده سی
زبان‌های برنامه‌نویسی دارای استاندارد ایزو
زبان‌های برنامه‌نویسی ماشینی پویا
زبان‌های برنامه‌نویسی مبتنی بر شیء
صفحات با ترجمه بازبینی‌نشده
معرفی‌شده‌های مرتبط با رایانه در ۱۹۹۷ (میلادی)
مقاله‌ها با نحو منسوخ‌شده تصویر
ویکی‌سازی رباتیک
کامپایلرهای کد منبع به کد منبع