組み込みC言語プログラマのためのmruby入門(中編) ―― mrubyをお手軽に体験する!
mruby(eMbeddable Ruby)は,まつもと ゆきひろ氏が開発したプログラミング言語Rubyの処理系の一つであり,組み込み分野への適用をねらっている.まだ発展途上の部分もあるが,組み込みシステムへの適用やアプリケーションに組み込むソフトウェア部品の開発手法として,今後,急速に広まる可能性がある.本連載では,主にC言語で開発している組み込みプログラマを対象に,Rubyおよびmrubyについて解説する.今回は,実際にWindows環境でmrubyを動作させながら,mrubyによるプログラミングを体験していただこう.(編集部)
技術解説・連載「組み込みC言語プログラマのためのmruby入門」 バック・ナンバ
前編 Rubyとmruby,何が違う? どう違う?
2.Windows環境でmrubyを体験
Ruby言語はさまざまなプログラミング言語の影響を受けています.独創的なパラダイムを提唱して人気を得たというよりは,組み合わせの絶妙さで好かれている,といった趣があります.さまざまな言語を試したことのある雑食系プログラマにとっては,元ネタが想像できるので,学習しやすい言語です.
組み込み系プログラマの多くは,C言語とアセンブリ言語以外の言語を修得する機会がなかなかありません.そのため,Rubyを敷居が高い言語と感じるかもしれません.特に,Ruby on Railsが普及して以降,RubyはWeb系の文脈で説明されることが多くなり,組み込み系プログラマにとってはますます学習しづらくなってしまいました.
ここでは,そのような組み込みプログラマの視点に合わせて,Ruby言語の概要を説明します.そのため,(ちょっともったいないのだが)Ruby言語の「一番おいしいところ」のいくつかは説明を省きます.あえて省くことで,C言語のような手続き型言語に慣れている方でもRubyによる開発を始められることを,より強く理解していただけると思っています.
●mrubyのビルド
mrubyは,C言語やRubyのソース・コードの形態で配布されています.そのため,使用前にはビルドを行う必要があります.
mrubyのソース・ツリーには,GNU makeを用いてビルドするためのMakefileが用意されています.Cygwin,Linux,Mac OS XのようなUnix系のホスト環境用にビルドするときは,make一発で構築可能です.また,Xcode用のプロジェクト・ファイルも含まれています.
加えて,統合開発環境やクロス開発環境のために,CMakeのスクリプトが用意されています.CMakeは,各種環境用のビルド・ファイルを生成するためのオープン・ソース・ツールであり,Visual Studioで開発する場合やクロス開発を行う場合にはCMakeを使います(http://www.cmake.org/ からバイナリもダウンロードできる).なお,クロス開発の場合には,CMake 2.8-9以降が必要です.それ以前のバージョンのCMakeにはバグがあり,正常にMakefileを生成できません.
● Win32環境用mrubyの入手
ビルドそのものはドキュメントの通りに行うだけで済みますが,事前にビルド環境を構築していないと手間と時間がかかります.そこで,本稿のために,Win32環境用のmrubyのバイナリを用意しました.下記のWebページにあるzipファイルのうち,ファイル名に-win32を含む一番新しいものを取得してください.
http://support.monami-ya.com/mruby/downloads
zipファイルを展開すると,三つのexe形式のファイルが得られます.それぞれの機能は以下の通りです.
- mirb.exe
対話的にmrubyのプログラミングができるアプリケーションです.本稿の解説では,mirb.exeを用います. - mrbc.exe
mruby用のコンパイラです.Rubyのソース・コードを読み込んで,mruby用のバイトコードを出力します.詳細は後編で説明します. - mruby.exe
mirbから対話的な機能を取り去ったものです.Rubyで書かれたソース・コードのほかに,mrbc.exeが生成したバイトコードも入力として使えます.
それぞれのexeファイルには,mrubyのコアが含まれています.それぞれのexeファイルの間に依存性はありません.
●対話型シェル mirb
本家Rubyでは,irb(Interactive Ruby)という,対話型環境を提供するコマンドが用意されています.mrubyでも同様に,mirbコマンドが用意されています.
mirbはWindows,Mac OS X,Linuxなど数多くの環境で実行可能です.上記のWin32バイナリにもmirb.exeとして含まれています.ここではmirbを使って,Rubyによるプログラミングを体験してみましょう.
●Hello mruby!
最初に,プログラミング言語習得のお約束である「hello world」を実行してみましょう.まず,mirbを立ち上げます.Windows環境ならmirb.exeをダブル・クリックするか,コマンド・プロンプトからmirb.exeを実行してください.すると,下記のようなメッセージが表示されるはずです.
mirb - Embeddable Interactive Ruby Shell
This is a very early version, please test and report errors.
Thanks :)
>
>はコマンド・プロンプトです.ここにrubyのコード片を入力してリターン・キーを押すと,結果が得られます.なお,この先のリストではコマンド・プロンプト記号を含めて記述していますが,実際にはコマンド・プロンプトの後ろの文字を入力してください.
> print "Hello mruby!"
Hello mruby! => nil
>
=> の右には評価結果の値が表示されます.nilはC言語のNULLと似た値です.
これで,ごあいさつが済みました.