人気ブログランキングへ

2009年02月22日

Yet Another Haskell Tutorial (和訳): 2.2 Glasgow Haskell Compiler

2.2 Glasgow Haskell Compiler

Glasgow Haskell Compiler (GHC) は、頑健でHaskell 98のすべての機能を持つ最適化コンパイラおよび対話的環境である。GHCはHaskellをコンパイルしてネイティブコードまたはCを生成する。GHCはHaskell 98への実験的な言語拡張を多数実装している。たとえば、並行性 (concurrency)、他言語とのインターフェイス、複数パラメータ型クラス (multi-parameter type class)、スコープ付きの型変数 (scoped type variables)、存在量化 (existential quantification)、全称量化 (universal quantification)、非ボックス化型 (unboxed type)、例外処理 (exception)、ウィークポインタ (weak pointer)、などである。GHCには世代別ガベージコレクタ、スペースプロファイラ、タイムプロファイラが装備されている。

2.2.1 入手先

GHCの公式Webページ http://haskell.org/ghc にアクセスし、最新のリリースをダウンロードする。このチュートリアルの執筆時点での最新バージョンは5.04.2で、GHCのダウンロードページ ("Download" リンクからたどる) からダウンロードできる。そのページから、使用しているコンピュータに適したバージョンのGHCをダウンロードできる。

2.2.2 インストール手順

GHCのダウンロード後のインストール手順はプラットフォームに依存するが、使用しているプラットフォームへのプログラムのインストールと大きな違いはない。

Windowsの場合 "msi" ファイルをクリックしてダウンロードした場合は、単に "Run This Program" を選択すれば自動的にインストールが開始する。その後は、画面に表示される手順に従うだけである。

RPMの場合 もっとも使い慣れているRPMインストールプログラムを使用してインストールする。

ソースの場合 まずgunzipした後、untarする。サポートされている他のシステムとは異なるシステムを使用しているのなら、おそらくそのシステムについてはよくご存じで、手作業でconfigureスクリプトを実行し、makeすることができるだろうと思う。

インストール手順の詳細な説明については、"Installing GHC" にあるGHCのユーザーマニュアルを参照のこと。

2.2.3 コンパイラの実行方法

コンパイラの実行はきわめて簡単である。Main.hsというファイルにmain関数を書いたとすると、以下のように入力するだけでコンパイルできる。

% ghc --make Main.hs -o main

"-make" オプションは、これがライブラリではなくプログラムであり、依存するモジュールとともにビルドしたいということをGHCに知らせる。"Main.hs" はコンパイルするファイルの名前を指定している。"-o main" は "main" というファイルに出力したいということを意味する。

■注■ Windowsでは、Windowsが実行可能ファイルであることをわかるように "-o main.exe" とする必要がある。

コンパイルしたら、プロンプトに "main" と入力するだけでプログラムを実行できる。

2.2.4 インタープリタの実行方法

GHCiは、コマンド "ghci" または "ghc -interactive" で起動される。コマンドラインから、1つまたは複数のファイル名を指定することもできる。これにより指定したモジュールやファイル名がロードされ、GHCiプロンプトで :load modulesと入力したのとまったく同じ指示をGHCiに行える。

2.2.5 プログラムオプション

すべてのオプションを列挙すると膨大なものとなる。現時点で最も重要なオプションは "-fglasgow-exts" である。"-fglasgow-exts" をつけずにGHCiを起動すると、Haskell 98モードとなり、拡張機能はすべてオフとなる。"-fglasgowexts" をつけて起動すると、拡張機能はすべてオンとなる。だれかのコードをダウンロードしてそのロードに失敗する場合には、まずこのフラグが適切に設定されているか確認する。
GHCとGHCiのオプションに関する詳しい情報は、GHCのWebページのマニュアルに書かれている。

2.2.6 ヘルプの入手法

GHC(i)用のヘルプは、GHCのWebページに行くと得られる。Haskellに関する一般的なヘルプは、HaskellのWebページに行くと得られる。

前ページ「2.1 Hugs
次ページ「2.3 NHC


5 Basic Input/Output
6 Modules
7 Advanced Features
8 Advanced Types
9 Monads
10 Advanced Techniques
A Brief Complexity Theory
B Recursion and Induction
C Solutions To Exercises


これは、Haskell (ハスケル) のチュートリアル "Yet Another Haskell Tutorial" を日本語に翻訳したものです。
オリジナルのドキュメントは、
http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf
などから入手できます。
日本語訳に関するご指摘は、コメントとしてお寄せください。

posted by K/I at 22:19 | 東京 ☀ | Comment(0) | TrackBack(0) | Yet Another Haskell Tutorial | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。