ECMAScript

プログラミング言語 >>他のプログラミング言語 ■カテゴリ / ■テンプレート ECMAScript（エクマスクリプト）は、Ecmaインターナショナルにおいて標準化されたJavaScriptの国際規格である。また、ISO/IEC JTC 1においてはISO/IEC 22275:2018、日本産業規格においてはJIS X 3060:2000として規格化されている。 ECMAScript仕様は、Ecma InternationalにてECMA-262という規格番号で標準化されている。改訂にあたっては版 (edition) が更新されている。 6th editionから、「ECMAScript 2015」仕様の名称に発行年が付加されることになった。以降、ECMAScriptは毎年改訂されることになり、以降特定の版を指す場合は、edition名ではなく年号つきの仕様書名で呼ばれることが推奨されている。 ECMAScriptにはいくつかの拡張が存在する。 ECMA-357 (ECMAScript for XML) - 2004年公開、E4Xとして知られる ECMA-402（国際化API） - 2012年公開 ECMA-404 (JSON) - 2013年公開 EcmaはECMAScriptのための "Compact Profile" も定義した — ES-CP、あるいはECMA 327として知られる — リソースの厳しいデバイス用にデザインされている。ECMAScriptのいくつかの動的な機能(『eval』関数など)はオプションにされている。これにより、処理系はプログラムの振る舞いに対してより多くの仮定ができるようになり、その結果、より良いパフォーマンス・トレードオフを実行時に得ることができるようになる。 HD DVD standardはECMAScript Compact Profileに準拠し、完全なECMAScriptの支援をより少ないメモリのデバイスで実行できるよう採用している。 ECMAScript は、ウェブブラウザをはじめとする多くのアプリケーションでサポートされている。DOMとの連携はドキュメントの操作を可能にする。 ^ Mozillaは1.8 Beta 1以降でE4Xをサポートしている。 ^ 2001年頃のマイクロソフトの草案であり、独自に開発を進めたもので、現在のECMAScript 4草案とは大きく異なる。 ^ 2001年頃のNetscapeの草案に近く、現在のECMAScript 4草案のサブセットに近い。 ECMAScript 4は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。 2000年〜2003年ごろ行われた。主に、旧Netscape社とマイクロソフトによって行われたが、意見がまとまらずに、打ち切りとなった。この時の案はActionScriptへと引き継がれた。 2007年〜2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、2008年8月13日に、小規模の改善にとどまる、ECMAScript 3.1を進めることとなった。仕様は、http://www.ecmascript.org/docs.php にて公開されている。 以下のような予定があった。 大規模・大人数開発のための機能の追加[要出典] 型に関する機能の追加[要出典] ジェネリックプログラミングの機能の追加 ECMAScript 3 が下位互換だが、互換でない仕様が一部に入る[要出典] ActionScript 3 の上位互換だが、互換でない仕様が一部に入る[要出典] V8 - C++ - Google Chromeブラウザで使われている Rhino (Rhino) - Java Narcissus - JavaScript SpiderMonkey (SpiderMonkey) - C - Firefox/Mozillaブラウザで使われている KJS - C++ - KDEのKonquerorブラウザで使われている JavaScriptCore - C++ - MAC OS XのSafariブラウザやdashboardで使われている。KJSベース NJS - C SEE - Simple ECMAScript Engine - C ixlib - C++ QSA - Qt Script for Applications - C++ DMDScript - C++/D DMonkey - Delphi FESI - Free EcmaScript Interpreter - Java Scriptonite - Java xwt - Java JANET - Java Epimetheus - C++ - Mozillaプロジェクトによる以前のECMAScript Edition 4草案の実装 ^ “ECMA-262. ECMAScript® 2023 language specification. 14th edition, June 2023” (英語). Ecmaインターナショナル (June 2023). 2024年3月19日閲覧。 ^ 過去には RFC 4329 で「application/ecmascript」とされていたが、互換性のために RFC 9239 で廃止(OBSOLETE)され「text/javascript」に統一された。 ^ ISO/IEC 16262は、ISO/IEC 16262:1998→ISO/IEC 16262:2002→ISO/IEC 16262:2011と改訂されてきたが、2021年8月時点の最新のISO/IEC 22275:2018 Information technology — Programming languages, their environments, and system software interfaces — * ECMAScript Specification Suiteとして、 ECMA-262, ECMAScript Language Specification ECMA-402, ECMAScript Internationalization API Specification ISO/IEC 21778, Information technology — The JSON data interchange syntax (Adoption of ECMA-404) の最新規格を一括して参照するようになった。 ^ JIS X 3060:2000は、ISO/IEC 16262:1998(ES1相当)の日本語訳。 ^ “JIS X 3060:2000, ＥＣＭＡＳｃｒｉｐｔ言語, Information technology -- ECMAScript language specification” (2000年6月30日). 2021年8月16日閲覧。 “対応国際規格：ISO/IEC 16262:1998 (IDT); IDT=identical（一致）” ^ http://www.wirfs-brock.com/allen/posts/778 ^ JavaScriptの変更, Part 1: EcmaScript 5 ^ ECMAScript Language Specification - ECMA-262 Edition 5.1 ^ ECMAScript 2023 Language Specification ^ https://www-archive.mozilla.org/js/language/old-es4 ^ https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html ECMAScript for XML (E4X) JavaScript Object Notation (JSON) CommonJS TypeScript: JavaScriptの構文を保ちつつ、型に関する機能を外部的に追加したプログラミング言語 ECMAScript ECMAScript言語仕様 Standard ECMA-262 ECMA-262 ECMAScript Language Specification 3rd edition (December 1999) ECMA-262 ECMAScript Language Specification 5th edition (December 2009) ECMA-262 ECMAScript Language Specification 5.1 edition (June 2011) Standard ECMA-262 6th Edition / June 2015 ECMAScript 2015 Language Specification Standard ECMA-262 12th Edition / June 2015 ECMAScript 2021 Language Specification The most accurate and up-to-date ECMAScript Language Specification Standard ECMA-290 ECMAScript Components Specification (June 1999) Standard ECMA-327 ECMAScript 3rd Edition Compact Profile (June 2001) Under Translation of ECMA-262 3rd Edition(日本語訳)