- 目次

はじめに

Rubyは手軽なオブジェクト指向プログラミングのためのインタプリ タ言語です.Rubyは(Perlのような)テキスト処理やシステム管理の ための豊富な機能を持っています.また,Rubyは単純で,分かりや すく,簡単に拡張できます.

もし,簡単なオブジェクト指向のための言語を求めていたり,Perl は見にくいと感じていたり,Lispの考え方は好きだがあの括弧の多 さには困ると感じているなら,Rubyはまさにぴったりです.

Rubyの特長は次の通りです.

インタプリタ
Rubyはインタプリタ言語ですのでプログラムを実行するた めにコンパイルする必要はありません.
変数に型が無い (動的型付け)
Rubyの変数はどのような型のデータも格納する事ができま すので,変数の型について心配する必要はありません.半 面,コンパイル時のチェックは弱くなります.
変数宣言が不要
Rubyでは変数を宣言無しで使う事ができます.変数の種類 (ローカル変数,グローバル変数,インスタンス変数など) は変数名から知る事ができます.
単純な文法
Rubyの文法はEiffelからわずかに影響を受けた単純なもの です.
ユーザによるメモリ管理が不要
Rubyはメモリ管理を自動的に行います.どこからもアクセ スされなくなったオブジェクトはインタプリタに組込みの ガーベージコレクタによって回収されます.
全てがオブジェクト
Rubyははじめから純粋なオブジェクト指向言語として設計 されています.整数のような基本的なデータ型をはじめと して,全てのデータをオブジェクトとして統一的に取り扱 えます.
クラス,継承,メソッド
Rubyはクラス,継承,メソッドのようなオブジェクト 指向言語として基本的な機能は当然持っています.
特異メソッド
ある特定のオブジェクトにメソッドを付加することができ ます.たとえば,GUIのあるボタンを押された時の動作をメ ソッドとして記述するような使い方ができますし,これを 応用してプロトタイプベースのオブジェクトプログラミン グも可能です(やりたければね).
モジュールによるMix-in
Rubyは多重継承は複雑さの源であるという見地から,意図 的に多重継承を持っていませんが,モジュールを使ってク ラス階層を横断して実装を共有できます.この機能を "Mix-in"と呼びます.
イテレータ
ループの抽象化を行うイテレータという機能があります.
クロージャ
手続きをオブジェクトとして扱う機能があります.このオ ブジェクト化された手続きのことをクロージャと呼びます.
強力な文字列操作/正規表現
Perlをお手本とした強力な文字列操作や正規表現検索の機 能があります.
多倍長整数
組込みの多倍長整数機能がありますので,メモリが許す限 り,非常に大きな整数の演算もできます.たとえば,400の 階乗なども簡単に計算できます.
例外処理機能
例外処理機能は例外的な状況への対処が簡単に書けます.
OSへの直接アクセス
Rubyは(UNIXの)ほとんどのシステムコールの呼び出し機能 を持っています.Rubyだけでシステムプログラミングも可 能です.
ダイナミックローディング
OSが許せば,オブジェクトファイルを実行時に読み込む機 能が提供されます.

- 目次

matz@netlab.co.jp