Pascal

Pascal

PASCAL: プログラミング言語の一つ。1968年にスイス連邦工科大学のヴィルツ*1教授によって開発された教育用言語です。C言語と同じALGOLの流れをくんだ言語で、構造化プログラミングに適しています。コンパイラが初めて実装されたのは1970年で、Cray Research社が開発した当時最高速のコンピュータであるCDC 6600が使われました。Borland社のWindowsアプリケーションソフト開発環境であるDelphiでは、Pascalにオブジェクト指向的な拡張を施したObject Pascalが使われました。私は会社でPASCALの講習を受けました。よく整ったきれいな言語だと思いました。

Java: JavaはC言語に似た表記法を採用していますが、C言語など、既存の言語の欠点を踏まえて一から設計された言語であり、今までの言語にない完全なオブジェクト指向性を備えています。また、強力なセキュリティ機構や豊富なネットワーク関連の機能が標準で搭載されており、ネットワーク環境で利用されることを強く意識した仕様になっています。 Javaで開発されたソフトウェアは特定のOSやMPU*2に依存することなく、基本的にはどのようなプラットフォームでも動作します。Javaの汎用性の高さはJava最大の特長であり、「Write Once, Run Anywhere*3」というキャッチコピーで、その利便性が強く主張されています。 Javaで記述されたソースコードは、コンパイル時にJavaバイトコードと呼ばれる中間コードにいったん変換されます。ソフトウェアはJavaバイトコードの状態で配布され、実行時にはJava仮想マシンと呼ばれるソフトウェアによって、実行するプラットフォームに対応した形式*4に変換され、実行されます。プラットフォーム間の違いはJava仮想マシンが吸収してしまうため、仮想マシン上で動作するJavaプログラムは、プラットフォームの違いを意識しなくてもよくなります。 一方、Javaの欠点として、プログラムをJavaバイトコードからネイティブコードに変換する際にある程度時間がかかるため、通常のプログラミング言語で開発されたソフトウェアよりも動作は遅くなってしまいます。また、どのプラットフォームでも動作させるために、どのプラットフォームでも実現できる、いわば最大公約数的な機能しか使用できないため、プラットフォーム固有の強力な機能を利用することはできません。 このような欠点を補うため、特定のプラットフォームでしか動作しないがその分高速で、プラットフォーム固有の強力な機能を利用できるJava開発環境を提供しているメーカーもあります。 ちなみに、1999年には機能を大幅に拡充したJava 2が発表され、現在はJava 2をベースにした改良が行われています。私は今後“C”とこの言語を使ってプログラミングしようと思っています。

*1:Niklaus Wirth

*2:マイクロプロセッサ

*3:一度コードを書けばどんな環境でも動作する

*4:ネイティブコード