shikimi

shikimi

カレンダー

ブックマークタグ

登録情報はありません。
リファレンス

first-time visitors
user guide
謝辞

「みんなの翻訳」は情報通信研究機構言語翻訳グループ東京大学図書館情報学研究室による共同プロジェクトであり、三省堂国立情報学研究所連想情報学研究開発センターが開発に協力しています。三省堂には「グランドコンサイス英和辞典(36万項目収録)」の使用を許可していただきました。

連携研究グループはこちらをご覧ください。

「みんなの翻訳」を使っている翻訳グループについてはこちらをご覧ください。

バナー

logo

ポスター

poster

フライヤー

poster poster
Mozilla Firefox ブラウザ無料ダウンロード
本サイトはブラウザ「Mozilla Firefox」推奨です。
Firefox3で動作確認しています。

Valid XHTML 1.0 Transitional

site_image
E (programming language)
https://en.wikipedia.org/wiki/E_(programming_language)
shikimi shikimi     最終更新:2018-04-01 08:09:47    PDF


文書タグ: IT百科事典

E(プログラミング言語)

AmigaEe(検証言語)GNU Eと混同しないこと。

E
--------

パラダイム マルチパラダイム:オブジェクト指向、メッセージ・パッシング

設計者 Mark S. Miller

登場時期 1997年

型付け 強い型付け、動的型付け

OS クロスプラットフォーム

ライセンス 異なるフリーライセンスの一部

ウェブサイト erights.org

主な処理系 E-on-Java、E-on-CL

影響を受けた言語 Joule、Original-E、Java

影響を与えた言語 Pony
--------

Eは安全な分散コンピューティングのためのオブジェクト指向プログラミング言語であり、1997年にElectric CommunitiesでMark S. MillerとDan Bornstein、その他の人々によって生み出された。Eは主に、並行言語のJouleと、安全な分散プログラミングのためのJavaの一連の機能拡張であるOriginal-Eの系統を引いている。Eはメッセージに基づくコンピュータ操作とJavaのような構文を合わせ持つ。イベントループとpromisesに基づく並列実行モデルは、デッドロックが決して発生しないことを確実にする。

目次

1 原理
2 計算モデル
3 構文と例
4 関連項目
5 参考文献
6 外部リンク

原理

Minjie Shenから刺激を受けて、言語全体が安全なコンピューティングを念頭に置いて設計されている;これは主としてオブジェクト指向コンピューティング・モデルを厳密に順守することで成し遂げられ、そのモデルは、その純粋な形式において安全なコンピューティングを支える特性をもつ。E言語とその標準ライブラリは、プログラマが安全なソフトウェアを構築する手助けをするため、そしてたとえ十分に互いを信頼しなくてもソフトウェア・コンポーネントが共同できるようにするために、一貫して権限に基づく設計思想を採用している。Eにおいて、オブジェクトの参照は権限としての機能を果たし、従って権限がコンピュータ操作の間接経費や概念的な間接経費を加えることはない。その言語の構文は安全性の欠陥を監査する人々にとって平易であるよう設計されている。例えば、語彙のスコープは、所与の変数への影響が調査されなければならないコードの総量を制限する。もう一つの例としては、その言語は比較するための演算子として == を使い、代入には := という演算子を使う;混乱する可能性を避けるため、 = の演算子はない。

計算モデル

Eでは、すべての値はオブジェクトであり、コンピュータ操作はオブジェクトへのメッセージの送信によって作動する。それぞれのオブジェクトはvat(プロセスに類似したもの)の一部である。それぞれのvatは実行とスタックフレーム、イベント待ち行列のシングルスレッドをもつ。分散プログラミングは単にメッセージを遠くのオブジェクト(他のvatにあるオブジェクト)に送る問題である。遠隔の相手との通信はすべてEの実行時に暗号化される。メッセージの到着はvatのイベント待ち行列の中に置かれる;vatのイベントループは到着メッセージを到着順に一つずつ処理する。

Eは2つのメッセージ送信方法をもつ:即時呼び出しと最終的な送信である。即時呼び出しはちょうど非並行言語における典型的な関数とメソッドの呼び出しのようなものである:送信者は受信者が処理を終え、値を返すまで待つ。最終的な送信はメッセージを送ると同時に、promiseを呼び出した結果のためのプレースホルダーを作る。送信者はすぐにpromiseを進める。その後、受信者が処理を終え、結果を引き渡すと、promiseが結果に解決される。遠くのオブジェクトとの通信のときは最終的な送信のみが許可されるため、デッドロックは決して起きない。分散システムにおいて、promiseの仕組みもまたネットワーク待ち時間によって引き起こされる遅れを最小化する。

構文と例

Eの構文はJavaに最も似ているが、PythonとPascalとの類似性もまたもっている。変数は動的型付けと静的スコープである。しかしながら、JavaやPythonとは異なり、Eは完全に式によって構成される。ここに単純極まりないEのプログラムがある:

println ( "Hello, world!" )

これはコンピュータを使用して数の階乗を行う再帰関数をEで書いたものである。関数はdefという予約語を使用して定義されている。

def factorial ( n : int ) : int {
if ( n == 1 ) {
return 1
} else if ( n > 0 ) {
return n * factorial ( n - 1 )
} else {
throw ( "invalid argument to factorial: " + n )
}
}

一行目で、 :int は関数の引数と結果を限定するguardである。guardは型宣言と全く同じものではない;guardは任意のものであり、制約条件を指定することができる。一つ目の :int は、関数の本文で整数の引数のみを扱うことを保証している。上記の二つ目の :int がなかったなら、関数は値を返すことはできないだろう。最初に関数から出てくる情報を確認できることはセキュリティ監査の助けになる。

Eは安全な協同を支援することが意図されているため、Eのプログラムの標準的な例は、ほんの数行のEによる簡単な電子マネー・システムmintである。以下のコードはmintを作る関数を定義しており、そこでそれぞれのmintは自身の通貨をもつ。それぞれのmintはその通貨を保管する財布を作ることができ、同じ通貨で2つの財布をもつものは誰でも安全にお金を財布の間で移すことができる。ソースコードを素早く検討することで、Eのプログラマは、mintだけが流通する通貨の量を変えることができ、お金は作り出されるのみで消滅しないこと、mintは自らの流通させる通貨のみを作り出し、財布の所持者のみがその均衡を変えることができるということを簡単に確かめることができる。

def makeMint ( name ) : any {
def [ sealer , unsealer ] : = makeBrandPair ( name )
def mint {
to makePurse ( var balance :( int >= 0 )) : any {
def decr ( amount :( 0. . balance )) : void {
balance -= amount
}
def purse {
to getBalance () : int { return balance }
to sprout () : any { return mint . makePurse ( 0 ) }
to getDecr () : any { return sealer . seal ( decr ) }
to deposit ( amount : int , src ) : void {
unsealer . unseal ( src . getDecr ())( amount )
balance += amount
}
}
return purse
}
}
return mint
}

Eのオブジェクトはdefという予約語で定義され、オブジェクト定義の中でtoという予約語はそれぞれのメソッドの始まりである。この例でのguardの式は、値の制約を( :(int >= 0) や :(0..balance)のように)指定する方法を示している。

mintの例はsealerと呼ばれる組み込み機構を利用している。makeBrandPair関数は2つの関連オブジェクトであるsealerとunsealerを作り出し、sealerはオブジェクトを箱の中に封印することができ、unsealerは箱の中身を取り出すことのできる唯一のオブジェクトである。このお金の例についてのより詳しい説明についてはEのウェブサイトを参照のこと[1]。

関連項目

・CapDesk----Eで書かれたデスクトップ環境

Object-capability model

参考文献

1. Rees, Jonathan; Miller, Mark (2001). "From Objects To Capabilities - Simple Money". erights.org. ERights. Retrieved 8 July 2014. "Before presenting the following simple example of capability-based money, we must attempt to head off a confusion this example repeatedly causes. We are not proposing to actually do money this way! A desirable money system must also provide for..."

外部リンク

公式サイト

原文:https://en.wikipedia.org/wiki/E_(programming_language)
Creative Commons License
この作品は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。
クリエイティブ・コモンズ・ライセンス外部リンク
新着文書(shikimi)

Van Eck phreaking
Van Eck phreaking(ファン・エック・フリーク) Van Eck phreakingは盗聴の一形態であり、その中では特殊な装置が使用され、電子機器を探るため、隠...
7amleh conducts survey of digital activism of Palestinian civil society organisations / 7amleh – the Arab Center for the Advancement of So
7amlehはパレスチナの市民社会組織によるデジタル行動主義について調査を実施する 7amleh----ソーシャルメディアの促進のためのアラブセンター 発表...
Trusted Computer System Evaluation Criteria
Trusted Computer System Evaluation Criteria(信頼されたコンピュータ・システム評価基準) 【画像のキャプション】オレンジブック 信頼されたコ...

新着文書

Social leader killed in Cordoba is fourth in same town in 2018
3月11日日曜日、地方評議会リーダーでアフリカ系コロンビア人の子孫であるトマス・バレトが、コルドバ県サン・ホセ・デ・ウレの自宅で殺害された。 2...
Signing legal documents
現在の位置: チームハンドブック 目次 >法的文書に署名する  法的文書への署名は、他社・他組織などに直接出向いてNDAsを取り扱った人物を除...
Team Handbook
現在の位置:チームハンドブック 目次  このハンドブックは、GitLabという企業が、どのようにサービスを維持運営していくかを記したものだ。ここに...

新着Wikipedia翻訳

E (programming language)
E(プログラミング言語) AmigaE や e(検証言語) 、 GNU E と混同しないこと。 E -------- パラダイム マルチパラダイム:オブジ...
Van Eck phreaking
Van Eck phreaking(ファン・エック・フリーク) Van Eck phreakingは盗聴の一形態であり、その中では特殊な装置が使用され、電子機器を探るため、隠...
Trusted Computer System Evaluation Criteria
Trusted Computer System Evaluation Criteria(信頼されたコンピュータ・システム評価基準) 【画像のキャプション】オレンジブック 信頼されたコ...

更新履歴

キャンセル
ブックマーク登録

タグを「;(半角セミコロン)」区切りで入力して下さい(例)tag1;tag2;tag3
10タグまで登録可能。各タグ30文字まで

履歴
状態 作業中 作業予定あり 作業予定なし 作業完了
テーマ 社会 政治 法律 経済 文化 芸能 科学技術 IT 健康/医療 スポーツ メディア 植物 動物 菌類 地方 国際
地域 日本 東アジア アフリカ 南アジア 東南アジア 西アジア/中東 太平洋 北米 中南米 欧州
ジャンル ニュース 解説記事 論文 日記 百科事典

コメントを入力して下さい
0 / 250
    
ブックマーク登録

ブックマークに登録しました。


言語選択

    
ファイルプロパティ

使用許諾条件
ファイル情報
あなただけがこのファイルを閲覧・編集できます。
みんながこのファイルを閲覧できますが、
編集ができるのはあなただけです。
あなたに加えて、指定された人やグループが
このファイルを自由に閲覧・編集できます。
公開設定
編集設定
グループ:0組 翻訳者:0人
    
アクセス属性
この文書は「非公開」設定になっています。
一般公開する場合は、編集ページの書誌情報で「公開」設定に変更して下さい。
翻訳者選択

※メニュー「翻訳者管理」で翻訳者、グループを追加することができます。


    
ノート

非公開ノート
0 / 2000 ※「公開・編集」権限を持つ翻訳者のみに公開されます。
公開ノート
0 / 2000 ※文書を「公開」にした場合、一般に公開されます。

言語選択

 →