mruby ・・・  IoT開発に適した新しい言語

mrubyとは

mrubyは、まつもとゆきひろ氏によって開発されたプログラミング言語「Ruby」を組込みシステム等の幅広い分野への適用、およびそれらのシステム開発効率の向上を目標に新たに開発されたプログラミング言語です。

弊社は、経済産業省の地域イノベーション創出研究開発事業として採択されたmrubyを用いた組込みプラットフォームの研究・開発」の中で、福岡県、九州工業大学、Ruby言語の 生みの親であるまつもとゆきひろ氏等と共に、産学官のプロジェクトとしてmrubyの開発を進めてきました。

mrubyは、その経済産業省の開発プロジェクト終了後の2012年4月にオープンソースとして公開され、「軽量」という特徴から組込み系を始め多くのシステムで適用されることへの期待が高まっています。

IoT開発に適した新しい言語mruby

mrubyは、実行時に必要なリソースが少なくなるように設計されています。
本家Rubyでは、Ruby言語で記述されたスクリプトを解釈しながら実行されます。 mrubyは、コンパイラにより出力される「Rite中間表現」をmrubyの実行基盤である「RiteVM」上で動作させる仕組みになっています。
スクリプトではなく中間表現を実行する仕組みを採用したmrubyには、以下の優位性があります。

  • 実行時に必要なリソース(メモリ)が少ない。
  • 実行時にコンパイルが不要なため、速度的に優位。
  • 実行環境上にスクリプトを配置することが不要なため、プログラムの秘匿性が高まる。

コンパイルした中間表現を実行する仕組みは、JavaのプログラムがJavaVM上で動作するイメージに近いですが、mrubyでは「Rite中間表現」の実行時でも、Rubyの特徴である動的型付けや動的なクラス・メソッドの追加等ができるように 設計されていることが大きな特徴です。

mrubyの特徴

さらにRubyの持つ「書きやすく、習得しやすい」という特長はそのまま、組み込み開発向けに開発されたmrubyは、組み込み開発におけるプロタイピングや試行錯誤の必要なIoT開発に適しています。
mrubyのネットワークやデータベースアクセスに強く、高い生産性を持つという特長と、既存資産であるC言語による開発、双方を組み合わせることで、IoTサービス・機能のスピード感あふれる開発が可能となるのです。

mrubyのソフトウェア構成

mrubyのソフトウェアは、mrubyの実行基盤である「RiteVM」を含むコアコンポーネント、ツール、ライブラリ群で構成されます。

  • 開発環境の構成
    開発環境の構成
  • 実行環境の構成
    実行環境の構成

コアコンポーネント

RiteVM

コンパイラによって生成されるRite中間表現を実行するmrubyの実行基盤です。ガベージコレクタ機能(インクリメンタルGC)を搭載しています。

パーサ

Ruby言語で記述されたスクリプトの構文解析し、中間構文木を生成します。

コードジェネレータ

中間構文木を基にRite中間表現を生成します。

ツール

バイナリ入力

Rite中間表現をRiteバイナリファイル(mrbファイル)に出力します。

バイナリ出力

Riteバイナリファイル(mrbファイル)を読み込み、Rite中間表現に復元します。

ライブラリ群

ミニマルライブラリ

mrubyの基本機能を提供するライブラリです。環境依存しません。

スタンダードライブラリ(現在未提供)

ミニマルライブラリに、ファイル、ネットワークなどの機能を追加したライブラリです。POSIX準拠の環境で利用可能です。

フルライブラリ(現在未提供)

本家Ruby相当のライブラリ群です。

mrubyアプリケーションは、Rubyスクリプトをコンパイルした結果のRite中間表現で、mrubyの実行基盤である「RiteVM」上で動作します。
RiteVMは、環境依存しない構造になっており、ITRON、VxWorks等の組込み向けRTOS、Windows、Linux等の汎用OS、OSなしの環境でも動作させることが可能です。
またmrubyでは、C言語のプログラムを呼び出すためのAPIが提供されており、mrubyとCとのハイブリッド構成が可能となっています。

mrubyお問い合わせ先

E-mail:mruby@scsk-kyushu.co.jp
※記載されている製品/サービス名称、社名、ロゴマークなどは該当する各社の商標または登録商標です。

ページトップへ