Ch.2 SML#プログラミング環境の準備

§ 2.1. Unix系OS,Emacsエディタ,その他ツールの整備

プログラミングのためには,

  • 使いやすい高機能エディタ

  • コンパイラとリンカー

を含むプログラミング環境が必要です. SML#でのプログラミングに必要とされるプログラミング環境は, SML#コンパイラのインストールを除けば,C言語の場合と同様です. Javaなどの言語では,これらを統合した対象言語に特化したEclipseなど の統合開発環境を使用する場合が多いですが,Cとの直接連携機能を用いたシス テムプログラミングやSQLを使ったデータベース操作などのSML#の先端機 能を駆使したプログラミングを十分に楽しむためには,以下のような標準的なプ ログラミング環境を整えることを勧めます.

  • Unix系のOS. 高度なプログラム開発には,Linux,FreeBSD,Mac OS等のUnix 系OSが豊富なツールを含んでいて便利です. Windows系のOSがインストールされたPCの場合は,VMware,VirtualBoxなど の仮想マシンを利用してLinuxなどの環境を容易に構築できます. Windows系OSでは,Cygwinでもほぼ同等の環境が得られます. Windows系OSで,Emacsが自由に使いこなせれば,MinGW(+MSYS)でも十 分にプログラミングを楽しむことができると思われます.

  • Emacsエディタ. プログラミングにもっとも適したエディタの一つです. プログラミングは,テキスト形式の文を書き,コンパイルしテストをし, 修正する,という作業の繰り返しであり,その大部分の時間はテキストエディタ との付き合いとなります. そこで,強力でカスタマイズ可能なテキストエディタの選択が重要です. Emacs系テキストエディタ(GNU Emacs,XEmacsなど)は,複数のバッファ の操作,ディレクトリなどのファイルの管理,コンパイラなどのコマンド起動, さらに,それらの柔軟なカスタマイズ機能を備えた強力なエディタであり,プロ グラミングやLaTeX文書などの複雑で高度な文書の作成に最適なエディタです. 使い始める時に少々練習が必用ですが,使いこなせば,プログラム開発 の強力な道具となります. Unix系OSでは通常デフォルトでインストール済みです.

  • Cコンパイラ.SML#コンパイラは,x86アーキテクチャのネイティブコードにコ ンパイルし,ソースコードをOS標準のオブジェクトファイルを作成し,さらに それらをリンクし実行形式ファイルを作成します. この過程でGNU Cコンパイラgccを通してリンカーを呼び出します. Unix系OSやCygwin,MinGWのインストール時にプログラム開発用に適し たシステムを選択すれば標準でインストールされているはずです.

    SML#プログラムのみをコンパイルしリンクする場合は,ユーザ が直接gccコンパイラを呼び出す必要はありませんが,C言語との直接連携 機能を使いより高度なプログラミングを行うためにも,gccコンパイラに 慣れておくことをお勧めします.

  • データベースシステム. SML#のデータベース機能を使用するにはデータベースシステムを インストールする必要があります. 第1.0.1版では,PostgreSQLが実行時にバインドされます. データベースアクセス機能を使用するには,PostgreSQLをインストール する必要があります. 詳細はOSに依存しますが,いずれの場合も簡単にインストールできるは ずです.

2.3節で説明する通り,Windowsのユーザ に対しても,コンパイル済みのバイナリープログラムを用意しています. このバイナリを使用すれば,Windowsのコマンドプロンプトで SML#コマンドが使用可能になります. その場合でも,Windows上にEmacsをインストールすることをおすすめし ます. Emacsが持つshell機能をを使えば,SML#コンパイラだけでも, 十分にに本格的なSML#言語のプログラムを楽しむことができるはずです.