Chapter 1. はじめる前に

Table of Contents
実行可能なプログラム
1つのファイルで構成されたプログラムのひな形
Makefileのひな形

おそらく、あなたはプログラミング言語を学習する際に何かプログラムを書きたくなるでしょう。 また、この本の見本のいくつかを試して、実際に起きることを目にしたいでしょう。 そこで、はじめにたった1つのファイルで構成されたプログラムを ATS で書く方法を説明します。 その後、コンパイル方法と実行手順を説明します。

実行可能なプログラム

次の例は "Hello, world!" という文字列と改行をコンソールに印字するプログラムです。

// val _ = print ("Hello, world!n") // implement main0 () = () // a dummy for [main] //

val キーワードは変数 _ (アンダースコア) に、関数呼び出し print ("Hello, world!n") を束縛します。 この束縛は作られた後に使われるのではありません。 評価された時に print 関数を呼び出すことが唯一の目的です。

main0 関数は ATS において特殊な意味を持っていて main 関数の変形です。 C や Java 言語を知っているプログラマにとっては、 main の役目は C や Java における同じ名前の関数と本質的に同等であると言えるでしょう。 implement キーワードは既に別の箇所でインターフェイスが宣言された関数の実装を作成します。 次に示す ATS のソースコードは main0 に対するインターフェイスの宣言です。

fun main0 (): void

このコードは main0 が引数を取らず返値もない関数であることを示しています。 返値がない、ということは void 値を返すと言いかえることもできます。 // から行末まではコメントです。

ATS プログラミング言語は既にインストール済みであると仮定します。 次のコマンドを実行すれば作業中ディレクトリに hello という名前で実行ファイルが作られます。


atscc -o hello hello.dats

hello.dats は先程のプログラムを含んだファイルです。 atscc コマンドは atsopt コマンドの便利なラッパーです。 atsopt は ATS プログラムの型検査とコンパイルを実行します。 ATS のインストール時の設定によっては、 atsccatsopt はそれぞれ実際には patsccpatsopt という名前が付けられているかもしれないことに注意してください。 .dats という拡張子は atscc コマンドが特別な意味に解釈するため変更してはいけません。 別の特別な意味を持つ拡張子として .sats があり、この後すぐに出会うことになります。