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