Compilers/ja

From Free Pascal wiki
Jump to: navigation, search

English (en) español (es) français (fr) italiano (it) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

Pascal コンパイラ (原著者: Tao Yue, 修正あり)

この文書ではコンパイラの基本を説明すると同時によく知られている Pascal コンパイラへのリンクを提供し、Free Pascal のセットアップの仕方を解説する。

コンピュータ言語とコンパイラについて

コンピュータ言語について語るとき、基本的に使われることになる3つの主要な用語がある。

  1. 機械語 -- コンピュータのCPUに基本的な指示を与える実際のバイナリコード。 たいていは、2つの数字を足すとかデータをあるメモリー位置から別の位置に移動するといったとても単純なコマンドである。
  2. アセンブリ言語 -- バイナリ数の文字列を記憶することなく、直接コンピュータに人間がプログラムする方法。マシン語のコードと一対一の対応がある。たとえば、インテルの x86 マシン語では、 ADD と MOV は加算の操作と移動の操作の簡略記号である。
  3. 高級言語 -- 人間が一つずつ進める必要なく、複雑なプログラムを書くことを可能にする。高級言語には Pascal, C, C++, FORTRAN, Java, Visual Basic, C#, Java, など他にも多数が含まれる。 高級言語における一つのコマンド、たとえばある文字列をファイルに書き込むなどは何十、あるいは何百と言うことさえあるかもしれない機械語の指示に変換される。

マイクロプロセッサが直接に実行できるのは機械語だけである。アセンブリ言語はアセンブルされるか、機械語に変換される。Pascalのような高級言語で書かれたプログラムも実行される前に機械語に変換されなくてはならない。

変換を実行するプログラムはコンパイラと呼ばれる。このプログラムは複数のコード行から機械語を作り出すだけではなく、コードがより速く走るように最適化し、エラーに対応するコードを書き加え、他の場所に蓄えられているサブルーチンとリンクを行うのでかなり複雑である。たとえば、コンピュータに何かをディスプレイ画面に表示せよと伝えたとすると、コンパイラはこれをあらかじめ書かれていたモジュールへの呼び出しだと翻訳する。それから、あなたのコードは実行可能なプログラムが結果を生み出す前に、コンパイラの製作者が提供したコードとリンクされなくてはならない。

高級言語では覚えておくべき3つの基本用語がここでもある。

  1. ソースコード -- あなたが書いたコードのこと。これは普通、用いられた言語を示す拡張子がつけられる。たとえば、Pascal のソースコードはたいてい「.pas」で終わるし、 C++ のコードは「.cpp」で終わる。
  2. オブジェクト・コード -- コンパイルした結果である。 オブジェクト・コードは普通、プログラムのあるモジュールだけを含み、不完全なのでまだ走らせることができない。 DOS/Windows システムでは、これはたいてい「.obj」という拡張子になっている。
  3. 実行コード -- 最終的な結果である。機能するためのプログラムに必要なオブジェク・トコード・モジュールはすべて一緒にリンクされる。 DOS/Windowsシステムでは通常、これは「.exe」という拡張子を持つ。

コンパイラについての補足

DOS や Windows ベースの Pascal におけるデファクト・スタンダードはボーランドの Pascal である。それが出てくる前はほとんどの Pascal コンパイラは出来が悪くてのろく、Pascalの標準からは外れており、数百ドルもした。1994年にボーランドがターボ・パスカルを出した。それは100ドル以下で既存のコンパイラより桁違いに速く、豊富なソースコードとユーティリティ・プログラムがついてきた。

この製品はすばらしい成功をおさめ、ほぼ10年間突出していた。 しかし、1990年代になって、世界はウインドウに移行した。1993年にターボ・パスカルの最終バージョンであるバージョン7 for DOS が出た。その後、DOS プログラムに対する需要は急激に落ち込み、ボーランド(短期間、Inpriseとして知られていた)はウインドウ用のIDE/コンパイラ(すなわち、Delphi)に注力した。後にボーランドはそのコンパイラを Embarcadero に売却し、 Embarcadero は今なお定期的に Delphi をバージョンアップさせている。

このチュートリアルではコンソールベースのプログラミングのみを扱う。従って、コンピュータはデータの行をディスプレイに表示し、ユーザーはキーボードを通してコンピュータとやりとりする。このチュートリアルの目標は Pascal でいかにプログラムするかを教えることである。いったん、それを学びさえすれば参考文献やウェブページを見て自らのコンピュータでグラフィックシステムとウインドウシステムを簡単に習得できる。

古い製品版の Pascal コンパイラがダウンロードできることも多いが(たとえば、Borland Museum から Turbo Pascal 5.5 やマッキントッシュの Symantec Think Pascalなど, The Free Country's Free Pascal コンパイラ・リストを参照のこと)、1980年代と1990年代の初期からコンピュータはずっと進化してきた。もはや DOS の8.3文字のファイルネームの制約はないし、Mac OS でのプリエンティティブではないマルチタスクに悩まされることもない。古いコンパイラを使うのは、古いゲームをエミュレーター上でプレイするのが楽しいのと同じように楽しい。しかし、オープンソース運動は現代のオペレーティング・システムのためのより良いコンパイラを生み出しており、初心者はそちらの方が古いものよりずっと使いやすいことに気がつくだろう。


オープンソースのコンパイラ

オープンソース・プロジェクトとして主な2つが以下である。

   GNU Pascal
   Free Pascal 

Free Pascal は初心者にはとっきやすいと考えられており、多くの点でボーランドの Pascal をエミュレートしようとしている。とは言え、Free Pascal、GNU Pascal ともにPascalの学習にはとてもよい。

このチュートリアルのほとんどのユーザーは Windows を走らせているだろうから、ここではFree Pascal をセットアップする方法と現在の Windows オペレーティング・システム上でプログラムをコンパイルする要点を示す。それは以下の手順となる。

  1. Free Pascal のダウンロードページから Free Pascal の Win32 インストーラーをダウンロードする。Free Pascal download page.
  2. そこでダウンロードしたファイルを走らせて Free Pascal をセットアップするウイザードを走らせる。
  3. ショートカットを使って(デフォルトでは「Start」→「Free Pascal」) Free Pascal をオープンする。
  4. プログラムをタイプする ("Hello, world." プログラムを走らせる次のレッスンに移る)。
  5. 「名前をつけて保存」で、そのファイルを保存する ...
  6. そのプログラムを「(実行)Run menu」から走らせる。何か修正を加えたら自動的にプログラムはコンパイルされ、走る。最後にコンパイルしてから何も手を加えていないなら、コンパイルをせずにプログラムは実行される。

ユーザーが入力することを期待されていないプログラムでは、黒スクリーンでプログラムが点滅しているのを見ることになるだろう。しかし、プログラムが一瞬で終了すると作業の結果を見ることなく IDE に戻る。これを避けるには2つの方法がある。

  • プログラムの結果を見るためにデバッグ・メニューからユーザー・スクリーンを選択する。
  • どのプログラムの終わりにも readln を書く。こうするとプログラムが終了して IDE に戻る前にユーザーが Enter キーを押すまでプログラムを待たせることができる。

Userscreen.png

「.exe」ファイルはプログラムを保存したところに作成される。このファイルは実行可能である。コマンド・プロンプトに行って、ディレクトリを変更して、この実行可能ファイルを直に走らせることができる。あるいはウインドウの Explorer 上でダブルクリックしてもよい。(そこでも、ユーザーの入力を要求しない場合にはパッと点滅して終了するだろう)。


previous contents next