iolanguage

iolanguage

(コンピュータ)
あいおー

言語名は「Io」。
プロトタイプベースの純粋なオブジェクト指向言語。Lispのように著しい単純さと一貫性を持ち、文法の習得は容易で、高機能。検索は「iolanguage」で。
作者はSteve Dekorte氏。BSDライセンス。

歴史

2002年 製作開始
2005年 1.0リリース予定

影響を受けた言語

  • Smalltalk - 全てがオブジェクト
  • Self - プロトタイプベース
  • NewtonScript - プロトタイプ継承モデル(differential inheritance)
  • Act1 - ActorとFutureによる並行処理
  • LISP - コードの自己検査/修正性
  • Lua - 軽量で組込み可能

特徴

メッセージ
例外なく全てのことがメッセージ送信によって行われる。文字列とメッセージオブジェクトとコードの変換は容易で、eval的なメソッドも多数用意されている。メソッドの引数はメッセージオブジェクトとして扱うこともできる。
プロトタイプベース
クラスは使用せず、cloneによって複製可能な、オブジェクトだけを扱う。オブジェクトはスロットと呼ばれる、識別子とオブジェクトのセットの集まり。継承はprotosという特殊なスロットにセットされたオブジェクトを辿って、スロットの検索を行うことで実現されている。深さ優先の多重継承も可能。
動的
型付けは動的。また、ライブラリのオブジェクトも含めて、スロットやprotosはいつでも変更できる。
軽量
小型の仮想機械で実行されるため、他言語のアプリケーションへの組込みにも利用できる。