目次
この章には、GHCのコマンド行構文の完全なリファレンスが、400以上のフラグも含めて書かれている。これは大きくて複雑なシステムであり、大量の詳細があるので、どこから始めれば良いのかかなり分かりにくいかもしれない。これを踏まえて、ここに入門的な節がある。以降の節で完全な構文に飛び込む前に、この節はHaskellプログラムをコンパイルするためのGHCの基本的な使い方について簡単な導入を提供する。
Hallo Worldプログラムを作ってコンパイルし、実行してみよう。まず、以下のHaskellコードを含むhello.hsというファイルを作る。
main = putStrLn "Hello, World!"
このプログラムをコンパイルするには、次のようにGHCを使う。
$ ghc hello.hs
(ここで$はプロンプトを表す。これを入力しないように)。GHCはhello.hsというソースファイルをコンパイルし、hello.oというオブジェクトファイルとhello.hiというインタフェースファイルを生成する。次にこのオブジェクトファイルをGHC付属のライブラリとリンクし、Unix/Linux/Macならhello、Windowsならhello.exeという実行ファイルを作成する。
デフォルトでは、GHCは自身の動作に関して寡黙であり、表示するのはエラーメッセージだけである。裏で何が行われているかを見たいなら、コマンド行に-vを追加すれば良い。
その後、次のようにしてプログラムを実行できる。
$ ./hello Hello World!
プログラムが複数のモジュールに分かれている場合、GHCにはMainモジュールが置かれているソースファイル名を教えてやれば十分である。そうすると、GHCはimport宣言を分析して、プログラムを構成する他のモジュールを見付け、そのソースファイルを見付ける。これは、Mainを除いて、全てのソースファイルは、その中身のモジュール名に従って名付けられなけばいけない(ドットはディレクトリ区切りに変換して)ということである。例えば、Data.Personというモジュールは、Unix/Linux/MacではData/Person.hsというファイルに、WindowsではData\Person.hsに、それぞれ置かれることになる。