【Documents】軽量Ruby普及・実用化促進ネットワーク

前往首頁Pathお知らせPath【Documents】軽量Ruby普及・実用化促進ネットワーク
print

2022/3/3
【Documents】軽量Ruby普及・実用化促進ネットワーク

ドキュメント
 
・Rubyとmrubyの違いについて
 
mrubyはRubyのサブセットとして実装されているため言語としてのコア部分は共通しています。しかしながらmrubyは組込み向け用途に特化した部分がありRubyとの違いも見られます。この章では以下の項目に関してRubyとmrubyの違いを説明します。
 
・コンパイラ言語
・C言語との主従関係
・RubyGemsとmrbgems
・数値型の扱い
・正規表現
・扱える文字コード
・カスタマイズ
 
・コンパイラ言語
 
 Ruby  mruby
 • Rubyスクリプトのインタプリタ
実行。
 • mrubyスクリプトのインタプリ
タ実行。
 
 • mrubyコンパイラでmrubyスクリプトをバイナリに変換。
コンパイル結果のバイナリをmruby VMで実行。
 
 
・C言語との主従関係
 
 
 Ruby  mruby
 • RubyからC言語モジュールの呼び出しが可能
( Rubyが主、C言語が従 )
 • mrubyからC言語モジュールの呼び出しが可能
( mrubyが主、C言語が従 )
• C言語アプリケーションからmrubyの呼び出しが可能
( C言語が主、mrubyが従 )
 
・RubyGemsとmrbgems
 Ruby  mruby
 • Ruby拡張ライブラリフレームワーク(RubyGems)
 • C言語またはRubyで機能拡張
• 実行時にライブラリを追加
 • mruby拡張ライブラリフレームワーク(mrbgems)
 • C言語またはmrubyで機能拡張
ビルド時にライブラリを追加
( 実行時のライブラリ追加はオ
プション )
 
・数値型の扱い(1)
 
 Ruby  mruby
 Numeric
 +--- Integer 整数型
 | +--- Fixnum int範囲内の数
 | +--- Bignum int範囲を超える数
 +--- Float 浮動小数型
 
 • 演算結果がint型を超える場合はBignumに拡張される。
 Numeric
 +--- Integer 整数型
 | +--- Fixnum int範囲内の数
 | Bignum対応なし
 +--- Float 浮動小数型
 
 • 演算結果がint型を超える場合はInteger overflow (RangeError) になる
 
・数値型の扱い(2)
 
mrubyの演算結果はmruby 2.1.2よりRubyの演算結果と同様になりました。
それ以前のバージョンでは演算結果の数値型は演算結果の値によって決定されます。
 
 
 Ruby  mruby
 • 演算結果の数値型は演算する値の型 (Integer / Float)によって決定される。
 
 irb(main):001:0> 1 / 2
 => 0
 irb(main):002:0> 2 * 2.5
 => 5.0
 irb(main):003:0>
 % ./mirb
 mirb - Embeddable Interactive Ruby Shell
 
 > 1 / 2
  => 0
 > 2 * 2.5
  => 5.0
 >
 
・正規表現
 
 Ruby  mruby
 正規表現(Regexpクラス)を標準装備
 
 • 正規表現エンジンは固定
 • 1.9以前 Oniguruma
 • 2.0以降 Onigumo
 正規表現はオプション
 ※mrbgemsで提供
 
 • 正規表現エンジンを選択可能
 • mruby-onig-regexp
 • mruby-pcre-regexp
 
・扱える文字コード
 Ruby  mruby
 • ASCII
 • UTF-8
 • Shift_JIS
 • EUC-JP
 • Windows-31J などなど...
 • ASCII
 • UTF-8 (オプション)
 
カスタマイズ
 
 Ruby  mruby
 • 実行環境用のバイナリを配布
 (ソースコードも入手可能)
 
 • バイナリ提供のためカスタマイ
ズ不能
 • ソースコード配布
 (そのままでは使えない)
 
 • ヘッダファイル、ビルドスクリプト修正によるカスタマイズが
可能
 
・mruby API
 
mrubyのclass.methodなどの情報は下記をご覧ください。
 
mruby official HP
https://mruby.org/docs/api/

mruby
mrubyとは
mruby 最新版Download

返回頁首