「AliceModel」の版間の差分
編集の要約なし |
|||
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/saim/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}} | |||
[[Category:基本]] | [[Category:基本]] | ||
'''AliceModel'''または'''標準AliceScript実装モデル'''('''''SAIM''''' :''Standard AliceScript Implementation Model '')は、複数のAliceModel実装間で使用されるAliceScriptのインタプリタとそれに付属するAPIの正式な仕様です。AliceModelは、AliceScriptのインタプリタの各実装による差異を最小限にとどめるために策定されました。これにより、AliceModelを実装するどのインタプリタでも、同じコードやパッケージを実行することが可能になります。AliceModelはAliceScriptの言語構造とそれに対するインタプリタの実装を定めたAlice.Interpreterと付属するAPIから呼び出すことができる機能を定めたAlice.Runtimeからなります。 | '''AliceModel'''または'''標準AliceScript実装モデル'''('''''SAIM''''' :''Standard AliceScript Implementation Model '')は、複数のAliceModel実装間で使用されるAliceScriptのインタプリタとそれに付属するAPIの正式な仕様です。AliceModelは、AliceScriptのインタプリタの各実装による差異を最小限にとどめるために策定されました。これにより、AliceModelを実装するどのインタプリタでも、同じコードやパッケージを実行することが可能になります。AliceModelはAliceScriptの言語構造とそれに対するインタプリタの実装を定めたAlice.Interpreterと付属するAPIから呼び出すことができる機能を定めたAlice.Runtimeからなります。 | ||
5行目: | 7行目: | ||
=モデルと仕様= | =モデルと仕様= | ||
AliceModelは、AliceScriptのインタプリタとAPIを定めただけにすぎず、そのインタプリタやAPIの詳細な仕様や実装方法について定めるものではありません。それらの仕様はAliceModelを実装する各実装(AliceScriptや[[AliceSister]]など)によって管理されています。 | AliceModelは、AliceScriptのインタプリタとAPIを定めただけにすぎず、そのインタプリタやAPIの詳細な仕様や実装方法について定めるものではありません。それらの仕様はAliceModelを実装する各実装(AliceScriptや[[AliceSister]]など)によって管理されています。 | ||
それぞれの実装は仕様通りに記述されたAliceScriptのコードを逐次的に読み取り、それに応じた動作を提供します。この点で、AliceModelはAliceScript言語の仕様といえます。 | |||
=Alice.Runtime= | |||
AliceModelの各実装は、開発者にとってわかりやすい方法で、AliceModelに実装されるAPIを公開します。このとき、ある実装ではある機能が重視されていて、他のAliceModelの実装ではその機能が重視されていない状況もあります。AliceModelの実装は、その実装間で互換性のない機能を含むことができます。それらをまとめてAlice.Runtime.Extとよぶことにします。ただし、これらの実装間の差異はできる限り埋められるべきで、それがあったとしてもその実装のその機能の部分をAliceModel準拠と称することはできません。これは、同一バージョンのAliceModel実装間で同一のコードを実行できるようにするというAliceModelの策定意図を体現するためです。 |