Previous Up Next
Chapter 1 はじめに

1.1 関数型言語 ML と Objective Camlについて

プログラミング言語 ML は,元々は計算機による証明支援において,証明を記 述する object language (対象言語) に対する,証明戦略の記述用の言語であ る,meta language (頭文字をとって ML)から発展してきた言語で,関数型プ ログラミングと呼ばれるプログラミングスタイルをサポートしている.MLは核 となる部分が小さくシンプルであるため,プログラミング初心者向けの教育用 に適した言語であると同時に,大規模なアプリケーション開発のためのサポー ト(モジュールシステム・ライブラリ)が充実している.MLの核言語は型付き λ計算と呼ばれる,形式的な計算モデルに基づいている.このこと は,言語仕様を形式的に(数学的な厳密な概念を用いて)定義し,その性質を厳 密に「証明」することを可能にしている.実際,Standard ML という標準化さ れた言語仕様 [4]においては,(コンパイラの受理する)正しいプロ グラムは決して未定義の動作をおこさない,といった性質が証明されている.

この演習で学ぶのは ML の方言である Objective Caml という言語で ある.Objective Caml は INRIA というフランスの国立の計算機科学の研究所でデザイ ン開発された言語で,Standard ML とは文法的には違った言語であるが,ほと んどの機能は共有している.また,Objective Caml では Standard ML には見られない, 独自の拡張が多く施されており,関数型プログラミングだけでなく,オブジェ クト指向プログラミングもサポートしている.またコンパイラも効率のよいも のが開発されている.

1.1.1 Objective Caml の特徴

Objective Caml の特徴としては,以下のようなものが挙げられる.
1.2 参考書,資料,マニュアル

Objective Caml のマニュアル [3] (英語)は よりオンライン利用が可能なようにしてある. また から,FAQ などの文書, Objective Caml を使ったソフトウェアなどが利用できる.

Objective Caml は,Caml という言語を拡張して,オブジェクト指向プログラミング の機能などを加えたものであるが,本来の Caml の教科書として [1]が出版されている.また,フランス語の Objective Caml の本が O'Reilly から出版されているが,現在,英訳プロジェクトが進行中で,オン ラインでhttp://caml.inria.fr/oreilly-book/ より利用可能になって いる.一方,Standard MLの教科書はそれに比べれば多数出版されている [5, 6, 7]が,OCaml とは文法を含め微妙に異なるので ML 入門者はかえって混乱するかもしれない.

[2]は,再帰/型の概念を対話形式で平易に 解説している一風変った本である.読みやすいので,この実験で興味を持ったら読 んでみると面白いだろう.

1.3 環境設定

環境設定は,Emacs エディタでの プログラム編集/実行のための設定を行う.

Emacs の設定

Emacs (Mule) 上で Objective Camlプログラムの編集を助けるプログラムが ~igarashi/lib/elisp にインストールされている.以下は ~/.emacs に 加える設定である.
;;; caml-mode
(setq load-path (cons "~igarashi/lib/elisp/ocaml-mode" load-path))
(setq auto-mode-alist
          (cons '("\\.ml[iylp]?$" . caml-mode) auto-mode-alist))
(autoload 'caml-mode "caml" "Major mode for editing Caml code." t)
(autoload 'run-caml "inf-caml" "Run an inferior Caml process." t)
(if (and (string-match "^19" emacs-version) window-system)
    (require 'caml-hilit))  ;; for Mule
(if (and (string-match "^20" emacs-version) window-system) 
    (require 'caml-font))   ;; for Emacs20
Emacs を起動し直して,.ml という拡張子を持つファイルを開いたときに モードラインに (caml) と表示されることを確認すること.




Previous Up Next