Pascalはスイス生まれの教育用プログラミング言語。
ALGOLの影響を受けた、強力な構造化言語として、ちょいと昔までは大学のプログラミングの講義といえばPascalというぐらい、よく使われていた。
教育用プログラミング言語と聞くと、イマイチ実用に耐えない印象があるかもしれないけれど、かのアルゴリズムの大家、KnuthによるTeXも、オリジナルはPascalで記述されている。
また、教育現場で用いられることが多かったという理由から、アルゴリズムに関連した多数の古典と呼ばれる書籍は、サンプルコードを記述するための言語としてPascalを用いている。
生まれがスイスだからかは知らないけれど、型には厳密な言語といわれていて、Cと対比されて解説されることが多い。
Cがじゃじゃ馬なら、こちらはお嬢様といった感じだろうか。
モダンなコンパイラにおいては、Pascalをオブジェクト指向化したObjectPascalという言語を扱える場合が多いが、これは特に規格化されておらず、オブジェクト指向開発をする場合、コンパイラ同士の互換性の悪さがネックになる。
最近じゃ、Codegear(旧Borland)の働きによって、Delphi言語として知っている人の方が多いかもしれない。
昨今の代表的な開発環境としては2つ。
・Free Pascal
その名の通り、GPLのもとで開発されているフリーなPascal実装。
Delphi互換なオブジェクト指向環境も利用できる。
・Delphi
Codegear(旧Borland)によるオブジェクト指向拡張型Pascal。
だけど、一応普通のPascalもコンパイル可能。
コンパイルスピードの速さが売り。
他にも環境は多数あると思う。(ApplePascalとか)
でも、これからPascal学ぶなら、このどちらかを選んでおくのが無難だと思う。
また、どちらにもRAD環境を提供してくれるIDEが用意されているため、ビジュアルなアプリケーションの作成も容易。
D.E.Knuthにならすべてをささげられる、C言語のじゃじゃ馬さ加減に嫌気がさした、あるいは「お嬢様系」が大好物だというなら、ぜひ学んでおくべき。たぶん大好きになる。
それ以外の理由で、現代において学習することのメリットはほとんどないと言っていいかもしれない。
その数少ないメリットの中でも、一番恩恵にあずかれるのは、アルゴリズム関連の古典を読むときと、疑似言語によってプログラムの骨組みを設計するときの二つだろう。
先述のとおり、アルゴリズムの古典はPascalによる記述であることが多く、Pascalの知識があれば、すんなりと読める場合が多いと思う。
また、Pascalはよく作られた構造化言語なので、疑似言語のモデルとしてその文法が使われている例も、これまで何例か見たことがある。
従って、そういった疑似言語を読むための理解の一助になると思う。
Hello Worldプログラムは実に簡単。
PROGRAM Hello; BEGIN WRITELN('Hello World'); END.
一つのソースファイルにはひとつのPROGRAM節が必要だとか、ブロックの開始にはBEGINを使うとか、プログラムの最後はEND.で締めるとか、それ以外のブロックの終わりはEND;で締めるとか、いくつかのきまりを覚えればすぐにプログラムを記述できるようになる。
ちなみに、多くのコンパイラ型言語と違って、大文字小文字を区別しないことが前提になっているが、このあたりは実装による違いがあったりする。