目次
この章には、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
に、それぞれ置かれることになる。