削除された内容 追加された内容
編集の要約なし
編集の要約なし
1行目:
{{Infobox プログラミング言語
| 名前 = {{lang|en|ECMAScript}}
| パラダイム = [[マルチパラダイムプログラミング言語]]([[プロトタイプベース]]、[[関数型言語]]、[[命令型プログラミング]])
| 登場時期 = 1997
| 開発者 = [[Ecma Internationalインターナショナル|{{lang|en|Ecma}}インターナショナル]], [[ブレンダン・アイク]]
| 最新リリース = {{lang|en|ECMA}}-262 {{lang|en|6th Edition}} ({{lang|en|ECMAScript}} 2015)
| 型付け = [[ダック・タイピング]]、弱い[[動的型付け]]
| 方言 = {{lang|en|[[JavaScript]], }}、{{lang|en|[[ActionScript]], }}、{{lang|en|[[JScript]], }}、{{lang|en|[[QtScript]], }}、{{lang|en|[[DMDScript]], }}、{{lang|en|[[InScript]]}}
| 影響を受けた言語 = {{lang|en|[[Scheme]]}}、{{lang|en|[[Self]], }}、{{lang|en|[[HyperTalk]], }}、{{lang|en|[[AWK]], }}、[[C言語|C]], 、{{lang|en|[[Perl]], }}、{{lang|en|[[Python]], }}、{{lang|en|[[Java]]}}
}}
{{Infobox file format
| name = {{lang|en|ECMAScript}}
| icon = [[ファイル:Crystal source.png]]
| logo =
| screenshot =
| caption =
| extension = <code>.es</code>
| mime = <code>application/ecmascript</code><ref>RFC 4329</ref>
| type code =
| uniform type =
| magic =
|owner={{lang|en|[[サン・マイクロシステムズ]]}}、<br />{{lang|en|Ecma}}インターナショナル
| owner = [[Sun Microsystems]],<br />[[Ecma International]]
| released = {{release date and age|1997|6}}
| latest release version = {{lang|en|6th Edition}}
| latest release date = {{release date and age|2015|6|17}}
| genre = [[スクリプト言語]]
| container for =
| contained by =
| extended from = {{lang|en|[[JavaScript]]}}
| extended to =
| standard =
| url = [http://www.ecma-international.org/publications/standards/Ecma-262.htm {{lang|en|ECMA}}-262], [http://www.ecma-international.org/publications/standards/Ecma-290.htm {{lang|en|ECMA}}-290],<br />[http://www.ecma-international.org/publications/standards/Ecma-327.htm {{lang|en|ECMA}}-327], [http://www.ecma-international.org/publications/standards/Ecma-357.htm {{lang|en|ECMA}}-357]
|}}
 
{{プログラミング言語}}
 
{{lang|en|'''ECMAScript'''}}(エクマスクリプト)は、{{lang|en|[[JavaScript]]}} の標準であり、[[Ecma Internationalインターナショナル|{{lang|en|Ecma}}インターナショナル]]のもとで標準化手続きなどが行われている。2015年6月に6th edition第6版がリリースされている。
 
{{lang|en|Ecma Internationalインターナショナル}}のほか、[[ISO/IEC JTC 1]]からもISO/IEC 16262として標準化されている。日本もJIS X 3060として[[日本工業規格|JIS]]化している。
 
__TOC__
47行目:
3rd Editionは条件付きで『ECMAScript』として知られている。『5th Edition』およびその将来型は『Harmony』というコードネームが付けられ、現在策定中である。
-->
{| class="wikitable"
!版
|- style="background:#ccf;"
!Edition
!公開日
!以前のバージョンとの違い
57 ⟶ 56行目:
|1997年6月
|初版
|[[ガイ・スティール・ジュニア|Guy L. Steele, Jr.]]
|-
|2
|1998年6月
|Editionとしての仕様はそのままであり、ISO/IEC 16262 {{lang|en|international standard}} に完全な対応をした
|マイク・コウリショウ<ref>{{lang-en-short|Mike Cowlishaw}}</ref>
|-
|3
| nowrap | 1999年12月
|正規表現、よりよい文字列の取り扱い、新しいコントロール構文、<code>try</code>/<code>catch</code>例外処理、より厳格なエラー処理、数字のその他の書式化フォーマット
|マイク・コウリショウ
|Mike Cowlishaw
|-
|4
|放棄
|4th Editionこの版は放棄された。言語の複雑化に関する政治的な差異による。いくつかの成果は5thの基礎として採用され、いくつかは6thの基礎となっている。
|
|-
|5
|2009年12月
|"「{{外語ルビ|en|strict|ストリクト}}モード"、初期化時に発生しがちなエラーを回避するための追加仕様の追加。多くの曖昧な部分、および仕様に準拠しつつも現実世界の実装の融通の利く振る舞いを明確にした。いくらかの新機能、{{外語ルビ|en|getter|ゲッター}}{{外語ルビ|en|setter|セッター}}、[[JSON]]ライブラリのサポート、より完全な[[オブジェクト]]の[[属性]]の[[リフレクション]]<ref>[http://www.youtube.com/watch?v=Kq4FpMe6cRs {{lang|en|JavaScript}}の変更, 、{{lang|en|Part 1: EcmaScript 5}}]</ref>
| プラタップ・ラクシュマン<ref>{{lang-en-short|Pratap Lakshman, }}、アレン・ヴィルフス-ブロック<ref>{{lang-en-short|Allen Wirfs-Brock}}</ref>
|-
|5.1
|2011年6月
|
|プラタップ・ラクシュマン、アレン・ヴィルフス-ブロック
|Pratap Lakshman, Allen Wirfs-Brock
|-
|6
|nowrap|2015年6月17日
|クラス、モジュール、イテレータ、<code>for</code>/<code>of</code>ループ、{{lang|en|Python}}スタイルのジェネレータ、アロー関数、2進数および8進数の整数リテラル、<code>Map</code>オブジェクト<coe>Set</code>オブジェクトWeekMap<code>WeakMap</code>オブジェクトWeekSet<code>WeakSet</code>オブジェクト、プロキシ、テンプレート文字列、<code>let</code><code>const</code>、型付き配列、デフォルト引数、Symbol、Promise、分割代入、可変長引数
|アレン・ヴィルフス-ブロック
|Allen Wirfs-Brock
|-
|7
95 ⟶ 94行目:
|}
 
2004年6月に、{{lang|en|Ecma International}}インターナショナル {{lang|en|ECMA}}-357 {{lang|en|standard}} を公開した。{{lang|en|ECMAScript}} の拡張であり、 [[E4X]]<ref>{{lang-en-short|ECMAScript for XML}}</ref>として知られるものである (ECMAScript for XML).
 
{{lang|en|Ecma}} {{lang|en|ECMAScript}} のための"「コンパクト・プロファイル」<ref>{{lang-en-short|Compact Profile"}}</ref>も定義した — ES-CP、あるいは {{lang|en|ECMA}} 327 として知られる — リソースの厳しいデバイス用にデザインされている。{{lang|en|ECMAScript}} のいくつかの動的な機能(『<code>eval</code>』関数など)はオプションにされている。これにより、処理系はプログラムの振る舞いに対してより多くの仮定ができるようになり、その結果、より良いパフォーマンス・トレードオフを実行時に得ることができるようになる。
[[{{lang|en|HD DVD]] standard}} {{lang|en|ECMAScript Compact Profile}} に準拠し、完全な {{lang|en|ECMAScript}} の支援をより少ないメモリのデバイスで実行できるよう採用している。
 
== ECMAScriptの方言およびその呼称 ==
 
{{lang|en|ECMAScript}} は、[[ウェブブラウザ]]をはじめとする多くの[[アプリケーションソフトウェア|アプリケーション]]でサポートされている。[[Document Object Model|DOM]] との連携はドキュメントの操作を可能にする。
 
{| class="wikitable"
|-
!アプリケーション
!呼称
!最新バージョン
!対応する{{lang|en|ECMAScript}}リビジョン
|-
|{{lang|en|[[Mozilla]]}} およびその派生品
|{{lang|en|[[JavaScript]]}}
|1.8.5
|{{lang|en|ECMA}}-262 5.1 edition<br/>{{lang|en|ECMA}}-357<ref group="呼称">{{lang|en|Mozilla}}は[http://www.mozilla.org/releases/mozilla1.8b1/README.html 1.8 {{lang|en|Beta}} 1]以降で[[ECMAScript for XML|{{lang|en|E4X}}]] をサポートしている。</ref></sup>
|-
|rowspan="2" | {{lang|en|[[Internet Explorer]]}}
|{{lang|en|[[JScript]]}} (IE8{{lang|en|Internet Explorer}} 8 まで)
|5.8
|{{lang|en|ECMA}}-262 {{lang|en|3rd edition}}
|-
|{{lang|en|[[JScript]]}} ({{lang|en|Chakra}})
|11.0
|{{lang|en|ECMA}}-262 5.1 {{lang|en|edition}}
|-
|{{lang|en|[[Google Chrome]]}}<br>{{lang|en|[[Opera]]}}
|{{lang|en|JavaScript}}
|
|{{lang|en|ECMA}}-262 5.1 {{lang|en|edition}}
|-
|{{lang|en|[[Safari]]}} ({{lang|en|JSCore}})
|{{lang|en|JavaScript}}
|
|{{lang|en|ECMA}}-262 5.1 {{lang|en|edition}}
|-
|{{lang|en|[[Konqueror]]}} (KJS)
|{{lang|en|JavaScript}}
|
|{{lang|en|ECMA}}-262 3rd {{lang|en|edition}}
|-
|{{lang|en|[[iCab]]}}
|{{lang|en|InScript}}
|
|{{lang|en|ECMA}}-262 {{lang|en|3rd edition}}
|-
|{{lang|en|[[.NET Framework|Microsoft .NET]]}}
|{{lang|en|[[JScript .NET]]}}
|10.0
|{{lang|en|ECMA}}-262 {{lang|en|4th}}草案 <ref group="呼称">2001年頃のMicrosoftマイクロソフト社の草案であり、独自に開発を進めたもので、現在の {{lang|en|ECMAScript 4}} の草案とは大きく異なる。</ref>
|-
|{{lang|en|[[Adobe Flash]]}}
|{{lang|en|[[ActionScript]]}}
|3
|{{lang|en|ECMA}}-262 {{lang|en|4th}} 草案 <ref group="呼称">2001年頃のNetscapeネットスケープ社の草案に近く、現在の {{lang|en|ECMAScript 4}} 草案のサブセットに近い。</ref><br/>{{lang|en|ECMA}}-357
|-
|{{lang|en|[[Adobe Acrobat]]}}
|{{lang|en|JavaScript}}
|1.5
|{{lang|en|ECMA}}-262 {{lang|en|3rd edition}}
|-
|{{lang|en|[[Adobe Creative Suite]]}}
|{{lang|en|[[ExtendScript]]}}
|
{{lang|en||ECMA}}-262 {{lang|en|3rd edition}}
|-
|{{lang|en|[[DMDScript]]}}
|[[{{lang|en|DMDScript]]}}
|
|{{lang|en|ECMA}}-262 {{lang|en|3rd edition}}
|-
|{{lang|en|[[Qt]]}}
|{{lang|en|[[QtScript]]}}
|
|{{lang|en|ECMA}}-262 {{lang|en|3rd edition}}
|-
|{{lang|en|[[Max/MSP]]}}
|{{lang|en|JavaScript}}
|1.5
|{{lang|en|ECMA}}-262 {{lang|en|3rd edition}}
|}
<references group="呼称"/>
 
== {{lang|en|ECMAScript 4 }}==
{{See also|JavaScript#JavaScript 2.0}}
{{lang|en|ECMAScript 4}} は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。
 
=== 1回目 ===
2000年~2003年ごろ行われた。主に、旧Netscapeネットスケープ社とMicrosoftマイクロソフト社によって行われたが、意見がまとまらずに、打ち切りとなった。この時の案は [[{{lang|en|ActionScript]]}} へと引き継がれた。
* http://www.mozilla.org/js/language/old-es4/ - 昔のNetscapeネットスケープ社による草案
 
=== 2回目 ===
2007年~2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、[[2008年]][[8月13日]]に、小規模の改善にとどまる、{{lang|en|ECMAScript}} 3.1 を進めることとなった<ref>https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html</ref>。仕様は、http://www.ecmascript.org/docs.php にて公開されている。
 
以下のような予定があった。
* 大規模・大人数開発のための機能の追加{{要出典|date=2011年2月}}<!--というか具体的に-->
* 型に関する機能の追加{{要出典|date=2011年2月}}<!--これも具体的に-->
* [[ジェネリックプログラミング]]の機能の追加
* {{lang|en|ECMAScript 3}} が下位互換だが、互換でない仕様が一部に入る{{要出典|date=2011年2月}}<!--これも具体的に-->
* {{lang|en|ActionScript 3}} の上位互換だが、互換でない仕様が一部に入る{{要出典|date=2011年2月}}<!--これも具体的に-->
 
== 脚注 ==
{{reflist}}
 
== 外部リンク ==
* [http://www.ecmascript.org/ ECMAScript]
* ECMAScript言語仕様
** [http://www.ecma-international.org/publications/standards/Ecma-262.htm {{lang|en|Standard ECMA}}-262]
*** [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf {{lang|en|ECMA-262 ECMAScript Language Specification 3rd edition (December 1999)}}]
*** [http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262%205th%20edition%20December%202009.pdf {{lang|en|ECMA-262 ECMAScript Language Specification 5th edition (December 2009)}}]
*** [http://www.ecma-international.org/ecma-262/5.1/index.html {{lang|en|ECMA-262 ECMAScript Language Specification 5.1 edition (June 2011)}}]
*** [http://www.ecma-international.org/ecma-262/6.0/index.html {{lang|en|Standard ECMA-262 6th Edition / June 2015 ECMAScript 2015 Language Specification}}]
** [http://www.ecma-international.org/publications/standards/Ecma-290.htm {{lang|en|Standard ECMA-290 ECMAScript Components Specification (June 1999)}}]
** [http://www.ecma-international.org/publications/standards/Ecma-327.htm {{lang|en|Standard ECMA-327 ECMAScript 3rd Edition Compact Profile (June 2001)}}]
** [http://www.ecma-international.org/publications/standards/Ecma-357.htm {{lang|en|Standard ECMA-357 ECMAScript for XML (E4X) Specification (June 2004)}}]
** [http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ {{lang|en|Under Translation of ECMA-262 3rd Edition}} (日本語訳)]
* {{lang|en|ECMAScript}}実装
** {{lang|en|[[SpiderMonkey]]}} ([http://www.mozilla.org/js/spidermonkey/ SpiderMonkey]) - C - {{lang|en|Firefox/Mozilla}}ブラウザで使われている
** [http://webcvs.kde.org/kdelibs/kjs/ KJS] - {{lang|en|C++}} - KDEの{{lang|en|Konqueror}}ブラウザで使われている
** [http://developer.apple.com/darwin/projects/webcore/ {{lang|en|JavaScriptCore}}] - {{lang|en|C++}} - MAC{{lang|en|Mac OS X}} {{lang|en|Safari}} ブラウザや {{lang|en|dashboard}} で使われている。KJSベース
** {{lang|en|[[Google V8 JavaScript Engine]]}} - {{lang|en|C++}} - {{lang|en|Google Chrome}} ブラウザで使われている
** [http://www.njs-javascript.org/ NJS] - C
** [http://www.adaptive-enterprises.com.au/~d/software/see/ {{lang|en|SEE - Simple ECMAScript Engine}}] - C
** [http://ixlib.sourceforge.net/ {{lang|en|ixlib}}] - C++
** [http://www.trolltech.com/products/qsa/ {{lang|en|QSA - Qt Script for Applications}}] - {{lang|en|C++}}
** [http://www.digitalmars.com/dscript/ {{lang|en|DMDScript}}] - {{lang|en|C++/}}、D
** [http://sourceforge.jp/projects/dmonkey/ {{lang|en|DMonkey}}] - {{lang|en|Delphi}}
** [[Rhino]] ([http://www.mozilla.org/rhino/ {{lang|en|Rhino}}]) - {{lang|en|Java}}
** [http://www.lugrin.ch/fesi/ {{lang|en|FESI - Free EcmaScript Interpreter}}] - {{lang|en|Java}}
** [http://scriptonite.sourceforge.net/ {{lang|en|Scriptonite}}] - {{lang|en|Java}}
** [http://www.xwt.org/ xwt] - {{lang|en|Java}}
** [http://janet-js.sourceforge.net/ {{lang|en|JANET}}] - {{lang|en|Java}}
** [http://www.mozilla.org/js/language/Epimetheus.html {{lang|en|Epimetheus}}] - {{lang|en|C++}} - {{lang|en|Mozilla}}プロジェクトによる以前の {{lang|en|ECMAScript Edition 4}} 草案の実装
** {{lang|en|[[Narcissus]]}} - {{lang|en|JavaScript}}
 
{{ECMAScript}}