さらにmrubyは組み込み開発での利用を意識した開発がされており、以下のような特徴を持っています。
・少ないメモリ(RAM100Kバイト)程度で動作
・VM(仮想マシン)上で動作するため環境依存しません。また組み込み開発での安全性を考慮し、Rubyアプリケーションはスクリプトですが、mrubyアプリケーションはmrubyコンパイラによりバイトコードに変換して利用したり、スクリプトのまま利用できたりと自由度が高くなっています(動作確認済OS: Windows、Linux、Mac OS、ITRON、VxWorks、μCLinux、Android、iOS)。
・mrubyからC/C++の呼び出し可能
・C/C++からmrubyアプリの呼び出し
・mrbgemsというライブラリフレームワークによって容易に機能拡張可能(ビルド時に必要なライブラリを組み込めます)
mrubyに標準で用意されているライブラリ(ミニマルライブラリ)は下記の通りです。
緩やかにGCを行うことでシステムのリアルタイム性を損ないません。GCの実行時間やタイミングはAPIにて設定可能ですし、Generational ModeというGCの頻度を最適化する手法も取り入れています。
環境に合わせたVMを用意することでmrubyアプリケーションは動作しますので、クロス開発は不要になります。また、一般的な組み込み開発ではハードウェア開発の後にソフトウェア開発を行いますが、mrubyではPC上でシミュレートすることで、製品開発を待たずにソフト開発を開始できるのも大きなメリットです。このため、開発環境でのトライ&エラーの繰り返しが容易に行えます。
MITライセンスのオープンソースソフトウェアとして公開されています。利用/改造した場合にソース公開の必要はありません。
mrubyは十分高速とはいえ、C言語に比べると動作が遅いこともあり、ハードリアルタイムが必要な部分にはC/C++を、mrubyはソフトリアルタイムな部分にと使い分けていきます。また、mrubyはRuby同様に、メモリの割り当てや解放などの管理が言語処理系により自動で行われ、動的型付け言語(型等も実行時に判断される)であることも特徴です。
その他の特長として、Rubyは2011年にJIS X 3017として制定され、翌年の2012年には日本発のプログラミング言語としては初めて国際標準規格 ISO/IEC 30170として承認されました。mrubyはそのRubyに準拠しています。
ここまでmrubyの概略、そのメリット、C/C++との主な相違点について紹介しました。次回は「IoT開発にmrubyを投入する」状況を想定し、mrubyを実際に触ってみることにします。
「軽量Ruby・実用化促進ネットワーク」設立総会が2015年7月23日(木)、福岡にて行われます。Ruby開発者 Matzとのトークセッションやmrubyライブコーディング、mrubyのリファレンスボードである「enzi」が当たる抽選会もあるようです。詳しくはこちら 軽量Ruby普及・実用化促進ネットワーク設立記念講演会・交流会をご参照ください。
Copyright © ITmedia, Inc. All Rights Reserved.