Mana_(プログラミング言語)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Mana_(プログラミング言語)の意味・解説 

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/24 04:51 UTC 版)

Mana
パラダイム 手続き型言語
登場時期 2002年
開発者 守屋俊
最新リリース 0.9.5/ 2017年3月17日 (7年前) (2017-03-17)
型付け 静的型付け
主な処理系 C言語
テンプレートを表示

Manaは、ビデオゲーム開発向けスクリプト言語である。ゲームの登場人物の移動やアニメーション、およびメッセージの制御などを簡単な構造で記述できることが特徴である。アクターモデルを扱って並列処理を再現したものである。

構成概念

Mana言語ではプログラミングするという行為を、ドラマの製作過程になぞらえて考える。プログラマーは映画でいう監督・脚本家・演出家である。そして、プログラムに登場する要素は役者になぞらえられ「アクター」と呼ばれる。Mana言語のプログラムは、複数のアクターという単位によって構成される。それぞれの場面に必要なアクターが、その場面のソースファイルの中に存在する。そして、各アクターがお互いの動きに応じて反応しあい、一つの場面を作り上げていく。Mana言語を象徴する概念がリクエストとプライオリティである。これはアクター同士でお互いの動きを命令しあうもので、これによって並列的な動きとアクター同士の連携を実現している。

「台本」のようなコードを記述するコンピューター言語には他に、プログラミング言語の「Shakespeare」や データ記述言語の「TVML」があるが、Mana言語ではreqやjoinなど並列制御に関する命令のみ言語使用に定義されているだけで、ゲームに関する命令は全て拡張関数として定義しなければならない。

アクターとリクエスト、プライオリティ

Mana言語を象徴する概念が「リクエスト」である。これはアクター同士でお互いの動きを命令しあうもので、これにより並列的な動きとアクター同士の連携を実現している。

アクターは全16段階のプライオリティ(優先度)毎にプログラムカウンタを持っており、現在のプライオリティの処理のみが実行される。優先すべきリクエストが来た場合、即座に処理を切り替える。逆に、下位のリクエストが来た場合は、現在の処理終了後に処理を切り替える。 このようにして、高いプライオリティのタスクは即座に切り替わり、低いプライオリティのタスクは予約される。

コード例

基本的な「Hello world」プログラムはこのように書く。

action HelloWorldActor::init
{
 print ("Hello, world!\n") ;
}

オブジェクトAがオブジェクトBに話しかけるプログラムの例。(大文字の命令は拡張関数である)

action ObjectA::walk
{
 ShowMessage ("Hello!\n") ;
 req (1, ObjectB::talk);
 join (1) ;
}
action ObjectB::talk
{
 ShowMessage ("Hello! Nice to meet you.\n") ;
}

関連項目

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Mana_(プログラミング言語)」の関連用語

Mana_(プログラミング言語)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Mana_(プログラミング言語)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのMana (プログラミング言語) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS