ECMAScript
| パラダイム | マルチパラダイムプログラミング言語(プロトタイプベース、関数型言語、命令型プログラミング) |
|---|---|
| 登場時期 | 1997 |
| 開発者 | Ecma International, ブレンダン・アイク |
| 最新リリース | ECMA-262 6th Edition (ECMAScript 6) |
| 型付け | ダック・タイピング、弱い動的型付け |
| 方言 | JavaScript, ActionScript, JScript, QtScript, DMDScript, InScript |
| 影響を受けた言語 | Self, HyperTalk, AWK, C, Perl, Python, Java |
![]() |
|
| 拡張子 | |
|---|---|
| MIME Type | application/ecmascript[1] |
| 開発者 | Sun Microsystems, Ecma International |
| 初版 | 1997年6月 |
| 最新版 | Edition 6 / 2015年6月17日 |
| 種別 | スクリプト言語 |
| 派生元 | JavaScript |
| 公式サイト | ECMA-262, ECMA-290, ECMA-327, ECMA-357 |
ECMAScript(エクマスクリプト)は、Ecma Internationalによって標準化されたスクリプト言語である。実装ごとの互換性が低い JavaScript 類(特に JScript)の標準を定めたものである。現在の最新バージョンは6 (6th edition)。最初のバージョンのリリースは2009年12月である。関連規格の一つである ECMAScript for XML (E4X) では、ネイティブで XML がサポートされている。
Ecma Internationalのほか、ISO/IEC JTC 1からもISO/IEC 16262として標準化されている。日本もJIS X 3060としてJIS規格化している。
バージョン[編集]
| Edition | 公開日 | 以前のバージョンとの違い | 策定者 |
|---|---|---|---|
| 1 | 1997年6月 | First edition | Guy L. Steele, Jr. |
| 2 | 1998年6月 | Editionとしての仕様はそのままであり、ISO/IEC 16262 international standardに完全な対応をした | Mike Cowlishaw |
| 3 | 1999年12月 | 正規表現、よりよい文字列の取り扱い、新しいコントロール構文、try/catch例外処理、より厳格なエラー処理、数字のその他の書式化フォーマット | Mike Cowlishaw |
| 4 | 放棄 | 4th Editionは放棄された。言語の複雑化に関する政治的な差異による。いくつかの成果は5thの基礎として採用され、いくつかは6thの基礎となっている。 | |
| 5 | 2009年12月 | "strictモード"、初期化時に発生しがちなエラーを回避するための追加仕様の追加。多くの曖昧な部分、および仕様に準拠しつつも現実世界の実装の融通の利く振る舞いを明確にした。いくらかの新機能、getterやsetter、JSONライブラリのサポート、より完全なオブジェクトの属性のリフレクション[2] | Pratap Lakshman, Allen Wirfs-Brock |
| 5.1 | 2011年6月 | ||
| 6 | 2015年6月17日 | 複数の新たな概念および言語機能 - Future development (英文)を参照 | |
| 7 | 策定中 |
2004年6月に、Ecma InternationalはECMA-357 standardを公開した。ECMAScriptの拡張であり、 E4Xとして知られるものである (ECMAScript for XML).
EcmaはECMAScriptのための"Compact Profile"も定義した — ES-CP、あるいはECMA 327として知られる — リソースの厳しいデバイス用にデザインされている。ECMAScript のいくつかの動的な機能(『eval』関数など)はオプションにされている。これにより、処理系はプログラムの振る舞いに対してより多くの仮定ができるようになり、その結果、より良いパフォーマンス・トレードオフを実行時に得ることができるようになる。 HD DVD standardはECMAScript Compact Profileに準拠し、完全なECMAScriptの支援をより少ないメモリのデバイスで実行できるよう採用している。
ECMAScriptの方言およびその呼称[編集]
ECMAScript は、ウェブブラウザをはじめとする多くのアプリケーションでサポートされている。DOM との連携はドキュメントの操作を可能にする。
| アプリケーション | 呼称 | 最新バージョン | 対応するECMAScriptリビジョン |
|---|---|---|---|
| Mozilla およびその派生品 | JavaScript | 1.8.5 | ECMA-262 5.1th edition ECMA-357[呼称 1] |
| Internet Explorer | JScript (IE8まで) | 5.8 | ECMA-262 3rd edition |
| JScript (Chakra) | 11.0 | ECMA-262 5.1th edition | |
| Google Chrome Opera |
JavaScript | ECMA-262 5.1th edition | |
| Safari(JSCore) | JavaScript | ECMA-262 5.1th edition | |
| Konqueror(KJS) | JavaScript | ECMA-262 3rd edition | |
| iCab | InScript | ECMA-262 3rd edition | |
| Microsoft .NET | JScript .NET | 10.0 | ECMA-262 4th草案 [呼称 2] |
| Adobe Flash | ActionScript | 3 | ECMA-262 4th草案 [呼称 3] ECMA-357 |
| Adobe Acrobat | JavaScript | 1.5 | ECMA-262 3rd edition |
| Adobe Creative Suite | ExtendScript | ECMA-262 3rd edition | |
| DMDScript | DMDScript | ECMA-262 3rd edition | |
| Qt | QtScript | ECMA-262 3rd edition | |
| Max/MSP | JavaScript | 1.5 | ECMA-262 3rd edition |
- ^ Mozillaは1.8 Beta 1以降でE4X をサポートしている。
- ^ 2001年頃のMicrosoftの草案であり、独自に開発を進めたもので、現在のECMAScript 4草案とは大きく異なる。
- ^ 2001年頃のNetscapeの草案に近く、現在のECMAScript 4草案のサブセットに近い。
ECMAScript 4[編集]
ECMAScript 4 は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。
1回目[編集]
2000年~2003年ごろ行われた。主に、旧Netscape社とMicrosoft社によって行われたが、意見がまとまらずに、打ち切りとなった。この時の案は ActionScript へと引き継がれた。
- http://www.mozilla.org/js/language/old-es4/ - 昔のNetscape草案
2回目[編集]
2007年~2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、2008年8月13日に、小規模の改善にとどまる、ECMAScript 3.1 を進めることとなった[3]。仕様は、http://www.ecmascript.org/docs.php にて公開されている。
以下のような予定があった。
- 大規模・大人数開発のための機能の追加[要出典]
- 型に関する機能の追加[要出典]
- ジェネリックプログラミングの機能の追加
- ECMAScript 3 が下位互換だが、互換でない仕様が一部に入る[要出典]
- ActionScript 3 の上位互換だが、互換でない仕様が一部に入る[要出典]
脚注[編集]
外部リンク[編集]
- ECMAScript
- ECMAScript言語仕様
- ECMAScript実装
- SpiderMonkey[1] - C - Firefox/Mozillaブラウザで使われている
- KJS - C++ - KDEのKonquerorブラウザで使われている
- JavaScriptCore - C++ - MAC OS XのSafariブラウザやdashboardで使われている。KJSベース
- Google V8 JavaScript Engine - C++ - Google Chromeブラウザで使われている
- NJS - C
- SEE - Simple ECMAScript Engine - C
- ixlib - C++
- QSA - Qt Script for Applications - C++
- DMDScript - C++/D
- DMonkey - Delphi
- Rhino[2] - Java
- FESI - Free EcmaScript Interpreter - Java
- Scriptonite - Java
- xwt - Java
- JANET - Java
- Epimetheus - C++ - Mozillaプロジェクトによる以前のECMAScript Edition 4草案の実装
- Narcissus - JavaScript
|
|||||||||||||||||||||||||||||||||
