プログラミング言語 Io のはなし

since: 2003-12-04 update: 2005-12-08 count:

アプリケーション内に組み込むことが容易な小規模言語。 似たようなことができる言語としては JavaScript や Lua なんかが有名。 Python なんかもよく使われてるみたいですね。

Lua と違って根っからのオブジェクト思考言語で、 全てがプロトタイプ(クラス、オブジェクトに対応) と メッセージ(クラスメソッド、インスタンスメソッド、クラス変数、インスタンス変数に対応) と いうものでできていて、 とてもシンプルな扱いが可能です。

本家に取り込まれているバインディングの量が異常に多いことも特徴で、 IoServer IoDesktop を見ればなんでもできそうな感じがすることと思います。

弱点はリソースがロクに見つからんことと、 いくらか Buggy なこと、 それと異常に検索しづらいことでしょうか。 再度紹介を書いてみました。 Io はいいものだ

情報

適当にリンクを張りまくる、というスタイルで。 割と難しめなところだけ何か書いてるだけなので、 他のプログラム言語を知っていることは前提です。 あと、昔の例は := が = になっていることに注意して下さい。

とりあえず、 プログラミング言語 Io リファレンスマニュアル (邦訳) (by kizzさん)。 それと epcgさんのはてな日記

実は一番の難関か、 Windows でのインストール (by kizzさん)。 Linux でのインストール MacOSX でのインストール および簡単な紹介 (by sumim さん)。

基本的にはこれがわかれば大体 OK 、 Io の継承モデル、 一例として Io で Mixin

Io 版 coroutine 、 Concurrency

Io を組み込め、 Io と C の相互呼び出し。 この後 Future の仕様が変わってるため補足した、 Transparent Future

Io で if や for はどう作るか、 Io のブロック渡し (by Akiyahさん)。

後はここまでの応用でなんとでもなるはず。 コネタにシフト。

Io で memoize 。 再帰関数を定義後にその挙動を変更できるプロトタイプ OO のすばらしさ。

作ってみたもの

標準のシェルの当社比 1.1倍位の中途半端な使い心地の、 iosh。 今の段階 (2004-09-05) このままではコンパイルできません。 kurahoneさんの IoFE がオススメ。 (現状ソースに対応させているものはここにあります)

D から Io を使うためにちょっと作ったもの、 DIo 。たぶんまだ足りない API があります。


home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h