إيكماسكربت

إيكماسكربت
نموذجمتعدد النماذج : يعتمد على النموذج الأولي ، وظيفي ، إلزامي
صمم بواسطةبريندان إيتش ، إيكما إنترناشيونال
ظهرت لأول مرة1997 ؛ منذ 27 سنة ( 1997 )
الانضباط في الطباعةضعيف ، ديناميكي
موقع إلكترونيwww.ecma-international.org/publications-and-standards/standards/ecma-262/
التنفيذات الرئيسية
جافا سكريبت ، أكشن سكريبت ، جي سكريبت ، كيو تي سكريبت ، إنسكريبت ، تطبيقات جوجل سكريبت
متأثر بـ
ذاتي ، HyperTalk ، AWK ، C ، CoffeeScript ، Perl ، Python ، Java ، Scheme
ECMAScript (تنسيق الملف)
ملحقات اسم الملف
.es
نوع الوسائط على الإنترنت
تطبيق/ecmascript
تم التطوير بواسطةشركة صن مايكروسيستمز ،
إيكما الدولية
الإصدار الأولييونيو 1997 ؛ منذ 27 عامًا ( 1997-06 )
أحدث إصدار
الطبعة 15
يونيو 2024 ؛ منذ 4 أشهر ( 2024-06 )
نوع التنسيقلغة البرمجة النصية
موقع إلكترونيالمعايير

ECMAScript ( / ˈɛkməskrɪpt / ؛ ES ) [1] هو معيار للغات البرمجة النصية، بما في ذلك JavaScript وJScript وActionScript . يُعرف بشكل أفضل بأنه معيار JavaScript يهدف إلى ضمان قابلية التشغيل البيني لصفحات الويب عبر متصفحات الويب المختلفة . [ 2 ] تم توحيده بواسطة Ecma International في الوثيقة ECMA-262.

يستخدم ECMAScript بشكل شائع في البرمجة النصية من جانب العميل على شبكة الويب العالمية ، ويتم استخدامه بشكل متزايد لتطبيقات وخدمات جانب الخادم باستخدام بيئات وقت التشغيل - Node.js ، [3] و deno [4] و bun . [5]

ECMAScript، ECMA-262، جافا سكريبت

يحدد ECMA-262 ، أو مواصفات لغة ECMAScript ، لغة ECMAScript ، أو ECMAScript فقط . [6] يحدد ECMA-262 فقط قواعد اللغة ودلالات واجهة برمجة التطبيقات الأساسية ( API )، مثل Array و Function و globalThis ، بينما تضيف التنفيذات الصالحة لـ JavaScript وظائفها الخاصة مثل الإدخال/الإخراج ومعالجة نظام الملفات .

تاريخ

مواصفات ECMAScript هي مواصفات موحدة للغة برمجة نصية طورها بريندان إيتش من شركة Netscape ؛ سُميت في البداية Mocha، ثم LiveScript، وأخيرًا JavaScript. [7] في ديسمبر 1995، أعلنت شركة Sun Microsystems وNetscape عن JavaScript في بيان صحفي. [8] في نوفمبر 1996، أعلنت شركة Netscape عن اجتماع لمنظمة معايير Ecma International للتقدم في توحيد معايير JavaScript. [9] تم اعتماد الإصدار الأول من ECMA-262 من قبل الجمعية العامة لـ Ecma في يونيو 1997. تم نشر العديد من إصدارات معيار اللغة منذ ذلك الحين. كان اسم "ECMAScript" بمثابة حل وسط بين المنظمات المشاركة في توحيد معايير اللغة، وخاصة Netscape وMicrosoft، التي سيطرت نزاعاتها على جلسات المعايير المبكرة. علق إيتش قائلاً "كان ECMAScript دائمًا اسمًا تجاريًا غير مرغوب فيه يبدو وكأنه مرض جلدي ". [10] تم إضفاء الطابع الرسمي على ECMAScript من خلال الدلالات التشغيلية من خلال العمل في جامعة ستانفورد وقسم الحوسبة ، إمبريال كوليدج لندن لتحليل الأمان والتوحيد القياسي. [11] كانت "ECMA" تعني "رابطة مصنعي الكمبيوتر الأوروبيين" حتى عام 1994.

تطور

اللجنة الفنية 39 (TC39) التابعة لـ Ecma مسؤولة عن صيانة ECMAScript. [12] تمر المقترحات الجديدة للغة بعملية تدريجية، حيث تمثل كل مرحلة اكتمال مواصفات الاقتراح. يجب التوصل إلى إجماع داخل اللجنة للمضي قدمًا في الاقتراح إلى المرحلة التالية. سيتم تضمين المقترحات التي تصل إلى المرحلة 4، المرحلة النهائية، في الإصدار التالي من المعيار. [13] منذ إصدار الإصدار 6 في يونيو 2015، تم الانتهاء من إصدارات رئيسية جديدة ونشرها كل يونيو. [14]

سمات

تتضمن لغة ECMAScript ميزات منظمة وديناميكية ووظيفية ومبنية على النماذج الأولية . [15 ]

أمرية ومنظمة

يدعم JavaScript في ECMAScript البرمجة المنظمة على غرار C. في السابق، كان JavaScript يدعم فقط نطاق الوظيفة باستخدام الكلمة الأساسية var، لكن ECMAScript 2015 أضاف الكلمات الأساسية letو const، مما يسمح لـ JavaScript بدعم نطاق الكتلة ونطاق الوظيفة. يدعم JavaScript الإدراج التلقائي للفاصلة المنقوطة ، مما يعني أنه يمكن حذف الفواصل المنقوطة التي تنهي عادةً عبارة في C في JavaScript. [16]

مثل لغات نمط C، يتم تنفيذ تدفق التحكمwhile باستخدام عبارات , for, do/ while, if/ else, و switch. تكون الدوال ضعيفة النوع وقد تقبل وتعيد أي نوع. الوسائط غير المقدمة تكون افتراضيًا undefined.

مكتوب بشكل ضعيف

إن لغة ECMAScript ضعيفة النوعية . وهذا يعني أن أنواعًا معينة يتم تعيينها ضمنيًا استنادًا إلى العملية التي يتم إجراؤها. ومع ذلك، هناك العديد من العيوب في تنفيذ JavaScript لتحويل متغير من نوع إلى آخر. كانت هذه العيوب موضوع محاضرة بعنوان Wat . [17] [18]

متحرك

يتم كتابة ECMAScript بشكل ديناميكي. وبالتالي، يرتبط النوع بقيمة بدلاً من تعبير. يدعم ECMAScript طرقًا مختلفة لاختبار نوع الكائنات، بما في ذلك كتابة duck . [19]

الترجمة

منذ ES 2015، أصبح تحويل لغة JavaScript أمرًا شائعًا للغاية. التحويل هو تجميع من مصدر إلى مصدر يتم فيه استخدام إصدارات أحدث من JavaScript، ويعيد المحول كتابة الكود المصدر بحيث يدعمه المتصفحات القديمة. عادةً، يقوم المحولون بالتحويل إلى ES3 للحفاظ على التوافق مع جميع إصدارات المتصفحات. يمكن تكوين إعدادات التحويل إلى إصدار معين وفقًا للحاجة. يضيف التحويل خطوة إضافية إلى عملية البناء ويتم ذلك أحيانًا لتجنب الحاجة إلى إضافات . تنشئ إضافات الميزات ميزات جديدة للبيئات القديمة التي تفتقر إليها. تقوم إضافات الميزات بذلك في وقت التشغيل في المفسّر، مثل متصفح المستخدم أو على الخادم. بدلاً من ذلك، يعيد التحويل كتابة كود ECMA نفسه أثناء مرحلة البناء من التطوير قبل وصوله إلى المفسّر.

التوافق

في عام 2010، بدأت Ecma International في تطوير اختبار معايير لـ Ecma 262 ECMAScript. [20] Test262 عبارة عن مجموعة اختبارات مطابقة لـ ECMAScript يمكن استخدامها للتحقق من مدى قرب تنفيذ JavaScript من مواصفات ECMAScript. تحتوي مجموعة الاختبار على آلاف الاختبارات الفردية، كل منها يختبر بعض المتطلبات المحددة لمواصفات ECMAScript. يعد تطوير Test262 مشروعًا للجنة الفنية 39 التابعة لـ Ecma (TC39). يساهم في Ecma إطار عمل الاختبار والاختبارات الفردية المنظمات الأعضاء في TC39.

قدمت جوجل ( مجموعة اختبارات سبوتنيك ) ومايكروسوفت مساهمات مهمة، حيث ساهمت كل منهما بآلاف الاختبارات. تتألف مجموعة اختبارات Test262 من38014 اختبارًا اعتبارًا من يناير 2020. [ 21] مواصفات ECMAScript من خلال ES7 مدعومة جيدًا في متصفحات الويب الرئيسية . يوضح الجدول أدناه معدل التوافق للإصدارات الحالية من البرنامج فيما يتعلق بأحدث إصدارات ECMAScript.

توافق محرك البرمجة النصية
محرك النصوص البرمجية طلب مرجعي المطابقة [22]
ES5 [23] ES6 (2015) [24] ES2016+ [25] التالي [26] [27]
القرد العنكبوت فايرفوكس 120 100% 98% 98% 5%
محرك V8 جوجل كروم 117، مايكروسوفت إيدج 113، أوبرا 98 100% 98% 98% 5%
جافا سكريبت كور سفاري 17 99% 100% 98% 11%

انظر أيضا

مراجع

  1. ^ ستيفانوف ، ستويان (2010). أنماط جافا سكريبت. شركة O'Reilly Media، Inc.، ص. 5. رقم ISBN 9781449396947. مؤرشف من الأصل في 2016-06-10 . تم استرجاعه في 2016-01-12 . لغة البرمجة الأساسية JavaScript [...] مبنية على معيار ECMAScript ، أو ES باختصار.
  2. ^ Wirfs-Brock, Allen; Eich, Brendan (2020-05-02). "JavaScript: The First 20 Years". Proceedings of the ACM on Programming Languages . 4 : 1–189. doi : 10.1145/3386327 . S2CID  219603695.
  3. ^ "Node.js — ECMAScript 2015 (ES6) وما بعده".
  4. ^ "انضمام دينو إلى جهود معايير JavaScript". 14 ديسمبر 2021.
  5. ^ https://bun.sh/docs#:~:text=or%2C%20more%20formally%2C-,ECMAScript,-)%20is%20just%20a كعكة
  6. ^ Guo, Shu-yu (2022-02-14). "ECMAScriptÂŽ 2022 Language Specification". tc39.es . مؤرشف من الأصل في 2020-05-08 . تم الاسترجاع في 2022-02-14 .
  7. ^ Krill, Paul (2008-06-23). ​​"JavaScript Creator ponders past, future". infoworld.com . InfoWorld. مؤرشف من الأصل في 2014-09-20 . تم الاسترجاع في 2013-10-31 .
  8. ^ "Netscape and Sun announce JavaScript, the Open, Cross-platform Object Scripting Language for Enterprise Networks and the Internet". Netscape.com . Netscape. 1995-12-04. مؤرشف من الأصل في 2002-06-06 . تم الاسترجاع في 2019-11-04 .
  9. ^ بيان صحفي (15 نوفمبر 1996). "قادة الصناعة يتقدمون بتوحيد معايير JavaScript في Netscape في اجتماع هيئة المعايير". Netscape.com . Netscape. مؤرشف من الأصل في 1998-12-03 . تم الاسترجاع في 2013-10-31 .
  10. ^ Eich, Brendan (2006-10-03). "هل سيكون هناك لاحقة ملف مقترحة لـ es4؟". mozilla.org . Mail.mozilla.org. مؤرشف من الأصل في 2020-06-21 . تم الاسترجاع في 2021-05-05 .
  11. ^ Maffeis, Sergio; Mitchell, John C.; Taly, Ankur (2020-01-03). "An Operational Semantics for JavaScript" (PDF) . stanford.edu . Association for Computing Machinery . مؤرشف من الأصل (PDF) في 2020-01-03 . تم الاسترجاع في 2020-01-03 .
  12. ^ "TC39"، اللجان الفنية ، Ecma International ، تم استرجاعها في 2024-08-11
  13. ^ "عملية TC39"، TC39 ، Ecma International ، تم استرجاعها في 2024-08-11
  14. ^ "ECMAScript، TC39، وتاريخ JavaScript"، ui.dev ، تم الاسترجاع في 2024-08-11
  15. ^ "حول". ECMAScript. مؤرشف من الأصل في 2012-08-02 . تم الاسترجاع في 2009-12-17 .
  16. ^ ديفيد فلاناغان (17 أغسطس 2006). JavaScript: The Definitive Guide: The Definitive Guide. "O'Reilly Media, Inc." ص. 16. ISBN 978-0-596-55447-7. مؤرشف من الأصل في 1 أغسطس 2020 . استرجاع 11 نوفمبر 2019 .
  17. ^ بيرنهاردت، جاري. وات. CodeMash 2012. تدمير كل البرمجيات . مؤرشف من الأصل في 2019-10-28 . تم استرجاعه في 2021-08-18 .
  18. ^ جيلبرتسون، سكوت (26 يناير 2012). "نكات للعباقرة: لحظات رائعة في البرمجة". Wired . مؤرشف من الأصل في 23 أغسطس 2020 . تم الاسترجاع في 22 أغسطس 2021 .
  19. ^ "أنواع البيانات وهياكل البيانات في JavaScript – JavaScript | MDN". Developer.mozilla.org . 2017-02-16. مؤرشف من الأصل في 2017-03-14 . تم الاسترجاع في 2017-02-24 .
  20. ^ "ECMAScript Language – test262". Test262.ecmascript.org. مؤرشف من الأصل في 2011-05-14 . تم الاسترجاع في 2013-10-31 .
  21. ^ "tc39/test262". GitHub . 24 يناير 2020. مؤرشف من الأصل في 1 أكتوبر 2019. تم الاسترجاع 29 يناير 2020 .
  22. ^ ES5 هو الأساس لمجموعة الاختبارات هذه. يعكس معدل التوافق للإصدارات الأخرى الدعم للميزات الجديدة فقط، وليس النتيجة الشاملة.
  23. ^ "جدول توافق ECMAScript 5". compat-table.github.io . 2024-04-14. مؤرشف من الأصل في 2024-01-14 . تم الاسترجاع 2024-04-14 .
  24. ^ "جدول توافق ECMAScript 6". compat-table.github.io . 2024-04-14. مؤرشف من الأصل في 2024-04-04 . تم الاسترجاع 2024-04-14 .
  25. ^ "جدول توافق ECMAScript 2016+". compat-table.github.io . 2024-04-14. مؤرشف من الأصل في 2024-01-14 . تم الاسترجاع 2024-04-14 .
  26. ^ "ECMAScript Next compatible table". compat-table.github.io . 2024-04-14. مؤرشف من الأصل في 2024-01-14 . تم الاسترجاع 2024-04-14 .
  27. ^ النتيجة المركبة التي تتضمن ميزات جديدة من ES7 وحتى مسودات الإصدار التالي
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=ECMAScript&oldid=1248165077"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate