Boo言語についてと同言語で書かれたプログラムの実行に関して
Booについて
Booは共通言語基盤(CLI)の実装(Monoや.NET Framework)上で(OSやアーキテクチャに依存せずに)動作するプログラムを記述するための言語名(Boo言語)であり、同言語で書かれたプログラムを扱うツール群でもある(ライブラリ含む)。ライセンスはBSDスタイル(本文)。Boo言語はPythonに近い文法という特徴がある(同一ではない)。
Pythonとは異なるので、Pythonに付属するモジュール群は利用できないが、Mono/.NETの基本クラスライブラリとMono/.NET向け言語バインディングが利用でき、Gtk#のようなGUIツールキットも使用できる。
標準の文法として(Perlのように)正規表現による処理をサポートしている(基本クラスライブラリの正規表現の機能も使用可)。
ツールは「boo」という名前のディストリのパッケージになっている場合が多いので、インストールするにはこれを検索して追加する。
実行
Boo言語で書かれたプログラムには2つの実行方法がある。
プログラムをMono/.NETアセンブリにコンパイル(コンパイラboocの使用)
Boo言語のコードをMono/.NETアセンブリにコンパイルして実行する方法でboocを用いる。コンパイルしたアセンブリの起動時間は後述のbooiを用いた場合よりも短い(Pythonスクリプトよりは時間がかかる)。
標準ではコンパイル時にコンパイラのバージョンが表示され、これを表示しないようにするには-nologoオプションを付ける。
(コンパイル) $ booc -nologo ([オプション...]) [.booファイル...] -out:[出力ファイル] (実行) $ mono [出力ファイル]
ソースファイルが複数の場合、関数やクラスの定義以外の(メイン)処理を記述できるのは1つのファイルのみ。複数ファイルにメイン処理を記述するとコンパイルエラー「BCE0029: More than one entry point found.」になる。
単一ファイルのプログラムを直接実行(インタプリタbooiの使用)
booiを用いると、コンパイルをせずに直接単一ファイルのプログラムを実行することができる。プログラムの起動に時間がかかるが、コンパイルと実行という2段階の手間をかけずに済み、プログラム記述の作業段階に適する。
.booファイルの1行目を
#! /usr/bin/booi
とした上でファイルに実行属性を付けると、このファイルをそのまま実行することができる。
もしくはbooiコマンドを直接実行して引数にソースファイルの場所を指定する。
$ booi [.booファイル]
シェル(対話型インタプリタbooish)
Pythonのようなシェル(対話型インタプリタ)がBooにも存在する。これはbooishというコマンドで起動する。
終了するには「/q」か「quit()」を入力後Enterを押す。