Smalltalk
概要
Smalltalkとは、1970年代にアラン・ケイ(Alan C. Kay)氏らが考案したオブジェクト指向プログラミング言語。対象にメッセージを伝えるという形式で処理を進めていく言語で、プログラムと開発・実行環境が強く結びついているなどユニークな特徴で知られる。一般的なプログラミング言語のようにソースコードをテキストファイルとして保存しコンパイラなどの言語処理系に渡すのではなく、コードの記述、実行、結果の表示、デバッグなどの機能が一体化した独自の統合環境によって開発や実行を行うようになっている。環境を構成する個々のツール自体もSmalltalkによって記述されており、開発者が機能を拡張することもできる。
Smalltalk環境を基盤にグラフィック表示と視覚的な操作でプログラムを作成できるビジュアルプログラミング環境を構築した「Squeak」(スクイーク)は特に有名で、文字主体のプログラミングが難しい子ども向けのプログラミング教材として現在でも広く知られている。
Smalltalkの文法や構文などの言語仕様そのものは非常にシンプルで、対象を指定してメッセージを送る「メッセージ式」と呼ばれる記法でほとんどの処理を記述する。反復や条件分岐など一般的な言語で用意されている制御構文なども言語仕様上の構文としては用意されておらず、代わりに特定の形のメッセージ式によって実装されている。
対象に指定できるのは一般的なオブジェクト指向言語で想像されるオブジェクト(データとメソッドの集合体)だけでなく、変数や定数、リテラル、コードブロック(Smalltalkでは単にブロックと呼ぶ)などコード中に登場するほとんどありとあらゆるものが含まれる。この点を指して「純粋オブジェクト指向プログラミング言語」と呼ばれることがある。
Smalltalkはクラスベースのオブジェクト定義を採用しており、互いに関連するデータ群とこれを操作するための手続き群(メソッド)を一体化した雛型をクラスとして定義し、メモリ上にインスタンスとして実体化して使用する。一般的な言語と異なりクラス定義は統合環境へのクラスの登録という形を取り、取り除かれるまで永続的に保持され続ける。