連載
» 2015年07月16日 07時00分 UPDATE

mruby概論(2):“組み込みRuby”こと「mruby」をセットアップしてみよう (2/3)

[石井宏昌,MONOist]

mrubyインタプリタ(bin/mruby)

 mrubyインタプリタ(bin/mruby)は、Rubyスクリプトを解釈して実行します。さらにバイナリコードの実行も可能です。

 実際に動かしてみましょう。Ruby/mrubyのアプリケーションは通常.rbという拡張子を付けます。

 例として下記のプログラムをtwice.rbという名前で作成します。

ary = [1, -2.5, "mruby", [3, 9]]
ary.each do |x|	
p x * 2
end

1行目 [ ] で括られたものを配列(Array)

2行目 Array#eachは配列の要素を順番に繰り返すメソッド

3行目 "p" は引数で指定した値の内容を画面表示するメソッド


 これを実行します。

$ mruby twice.rb
2
-5
"mrubymruby"
[3, 9, 3, 9]

 mirbgは対話形式でmrubyを実行できます。Rubyで言うところの“irb”に相当します。簡易的な動作確認に使います。

C:\mruby\mruby>mirb
mirb - Embeddable Interactive Ruby Shell
> 0xffff
 => 65535
> a=[1,5,-9]
 => [1, 5, -9]
> a*3
 => [1, 5, -9, 1, 5, -9, 1, 5, -9]
>

mrubyコンパイラ(bin/mrb)

 mrubyコンパイラ(bin/mrb)はRubyスクリプトをバイトコードにコンパイルします。コンパイル結果のファイルは以下の2種類を作成でき、コンパイル時のスイッチで決定します。

  • バイナリファイル (mrbファイル -B オプション指定なし)

 実行環境のファイルシステムに配置し、mruby VMにロードして実行します。実行環境にファイルシステムが必要です。

 *実行例

    $ mrbc rwice.rb 

 実行結果としてtwice.mrbが生成されます

  • C言語ソースファイル(バイナリデータのchar配列 -B オプション指定なし)

 アプリケーションの一部としてバイナリコードを読み込み、そのメモリ上のバイナリコードをmruby VMに読み込ませて実行します。ファイルシステムを持たない実行環境でも利用できます。

 *実行例

    $ mrbc -Bappin twice.rb

 実行結果としてtwice.cが生成されます

 コンパイル結果の実行をします。

 $ mruby -b twice.mrb

-b バイナリ(mrb)ファイルの実行


Copyright© 2017 ITmedia, Inc. All Rights Reserved.