- WSOFT Docs
-
あみうは
- あみうは
- 新学期が始まりました!
- 恋の相談
- プチコン3号で作ったのは?
- オススメの文庫
- マクドナルド最高!
- ios11β レビュー
- あみうはの歌について
- ついに自分のソフトウェアのホームページができました。
- Windowsタブレットをリセットして起動しなくなった人のために
- PCレスで YouTubeの曲を携帯mp3プレイヤーで聴く(iPhone)
- 食べられないラズベリーパイを買いました。(1)
- ラズベリーパイの下ごしらえ(2)
- 小説始めます~
- 女子がキュンとくる行動ベスト3!!
- MacとWindowsについてあまり知られていない事
- macでできる裏技
- ドコモの格安スマホ「MONO」買っちゃいました☆いい所をいくつか
- 『レビュー』iPhone6sを1年間使い続けて思ったこと
- iPhoneの拡大鏡に関するバクを発見しました。
- iPhoneで圧縮ファイルを作成したり解凍する方法
- Obscura2が今だけ無料!使い方まとめ
- Windowsタブレットがブルースクリーンになった時のメモ
- お知らせ
- ブログ
- 共同作成ガイド
- 法的資料
-
製品
- 製品
- PCMX
- WSOFTアカウント
- AliceScript
- AliceScript
- 謝辞
- ダウンロード
- Alice(キャラクター)
- AliceScriptのツアー
- Wikiの概要
- APIブラウザー
- APIブラウザー
- Alice
- delay
- exit
- function
- import
- include
- lock
- string_format
- using
- write
- Environment
- Exception
- Interpreter
- Math
- math_abs
- math_acos
- math_acosh
- math_atan
- math_atan2
- math_atanh
- math_bitdecrement
- math_bitincrement
- math_cbrt
- math_celling
- math_clamp
- math_copysign
- math_cos
- math_cosh
- math_e
- math_exp
- math_floor
- math_fusedmultiplyadd
- math_isprime
- math_max
- math_min
- math_pi
- math_pow
- math_round
- math_sin
- math_sinh
- math_sqrt
- math_tan
- math_tanh
- math_tau
- math_truncate
- Net
- Security
- Threading
- Array
- Bool
- Bytes
- Delegate
- None
- Number
- String
- Variable
- 変更履歴
- 基本
- Alice in Discord
- 相互運用
- チュートリアル
- ダウンロードセンター
- ほめて.ws
- アイコンメーカー
- WSOFTScript
- Unidet
- WebSailing
- WSNET
- WSTodon
- WSTube
- Lantana
- 生存報告
AliceModel
この記事では、標準AliceScript実装モデルについて説明します
AliceModelまたは標準AliceScript実装モデル(SAIM :Standard AliceScript Implementation Model )は、複数のAliceModel実装間で使用されるAliceScriptのインタプリタとそれに付属するAPIの正式な仕様です。
AliceModelは、AliceScriptのインタプリタの各実装による差異を最小限にとどめるために策定されました。これにより、AliceModelを実装するどのインタプリタでも、同じコードやパッケージを実行することが可能になります。
AliceModelはAliceScriptの言語構造とそれに対するインタプリタの実装を定めたAlice.Interpreterと付属するAPIから呼び出すことができる機能を定めたAlice.Runtimeからなります。
AliceModelのバージョン
AliceModelはバージョン管理されています。AliceModelのバージョンは直線的かつ基本的に論理的同心円形です。 バージョンナンバリングの大小のみで新旧を比較でき、より新しいバージョンは普通それ以前のバージョンの機能を含みえます。
その一方で、一部には新しいバージョンとそれ以前のバージョンの間で変更されたものもあります。それらの変更点は、破壊的変更と呼ばれ、一覧を破壊的変更の一覧にまとめています。また、一度策定された同一バージョンのAliceModelの間でその内容に差異が生じることはありえません。
モデルと仕様
AliceModelは、AliceScriptのインタプリタとAPIを定めただけにすぎず、そのインタプリタやAPIの詳細な仕様や実装方法について定めるものではありません。
それらの仕様はAliceModelを実装する各実装(AliceScriptやAliceSisterなど)によって管理されています。 それぞれの実装は仕様通りに記述されたAliceScriptのコードを逐次的に読み取り、それに応じた動作を提供します。この点で、AliceModelはAliceScript言語の仕様といえます。
Alice.Runtime
AliceModelの各実装は、開発者にとってわかりやすい方法で、AliceModelに実装されるAPIを公開します。このとき、ある実装ではある機能が重視されていて、他のAliceModelの実装ではその機能が重視されていない状況もあります。AliceModelの実装は、その実装間で互換性のない機能を含むことができます。
それらをまとめてAlice.Runtime.Extとよぶことにします。ただし、これらの実装間の差異はできる限り埋められるべきで、それがあったとしてもその実装のその機能の部分をAliceModel準拠と称することはできません。これは、同一バージョンのAliceModel実装間で同一のコードを実行できるようにするというAliceModelの策定意図を体現するためです。