Pascal 日和 ホームページ








ソースネクスト

なぜPascal系言語か


現在のプログラミング言語環境


 実際にはいろいろな環境があると思いますが、一般的なソフトウェアの開発環境で主に使用されているプログラミング言語は、以下の表のような環境だと思います。
 情報系の教育現場でも、社会に出てから役に立つように、これらのプログラミング言語が取り入れられているのではないでしょうか。

目的 使用されているプログラミング言語
組み込み系開発 C言語、C++言語、アセンブリ言語
システム系開発
(メインフレーム系開発)
COBOL言語、PL/I言語、FORTRAN言語
デスクトップ系開発 C#.NET言語、VB.NET言語、Java言語(Java SE)、C言語、C++言語
Web系開発
(エンタープライズ系開発)
Java言語(Java EE)、ASP.NET(C#.NET言語, VB.NET言語)
JavaScript言語、Perl言語、PHP言語、Ruby言語、Python言語などのスクリプト系言語

 ここで、この状況を悪く言うつもりはありません。

 すでにある環境を変えるには非常に大きなコストが生じます。
 既存コードの再利用の問題、新しいプログラミング言語に対応できるエンジニアの確保、外注協力会社の確保、既存エンジニアの再トレーニング等々。
 特に日本では上記表以外のプログラミング言語に対応するエンジニアを確保するのは難しい状況のようです。

 IPA(独立行政法人 情報処理推進機構)発行の「IT人材白書」を参照すると、IT技術者動向調査結果を見ることができます。



大人の事情の例


 数年前の日経コンピュータ(Webニュース)で、国産メーカの一つが日本の防衛分野のシステムでAda言語からリアルタイム機能を強化したJava言語(JVM)に切り替え、生産効率を上げるという記事がありました。
 その後、実はこの対応は2007年問題の影響であるという記事が掲載されました。2007年問題とはこれまで社会を支えてきた団塊世代の退職が最も多く発生する年で、それに伴い多くのベテランエンジニアが企業から居なくなってしまうということです。本来防衛分野のシステム開発ではアメリカ合衆国国防総省にならい、Ada言語を使用するのが一般的ですが、日本では防衛以外の分野では使用されることが少ないために団塊世代なきあとAda言語を使える技術者を育て維持し続けることが困難というのが実際の理由のようです。



それはともかく、Pascal系言語に取り組む


 企業で扱うシステムやプロダクトの場合、どのようなプログラミング言語を含む開発環境を使うかは、様々な事情により制約されますが、個人や小規模なアプリケーション開発、研究課題や論文で使用するアルゴリズム表現、趣味のプログラム学習などでは、選択の自由度は高くなります。
 この場合、Pascal系言語が有効であると考えます。アルゴリズムの表現でよく使用され、今でも日本語の書籍の入手が可能です。また、Pascal系の言語を学習することにより、現在仕事で使用しているC言語、C++言語などの特徴や問題点がより明確に理解できるようになると思います。複数の言語を習得することにより言語間でのアルゴリズムのポーティングなどの技術も上達すると思います。コンパイラ処理系もフリーで入手可能です。

 そこで、このサイトでは以下の表に示すプログラミング言語とコンパイラ処理系を取り上げます。
 Webサイトで得られる情報は英語がメインなので、少しずつ日本語で説明していきたいと思います。
 プラットフォームは、Microsoft Windowsをベースとします。

プログラミング言語 使用するコンパイラ処理系 コンパイラ処理系の概要
・ISO 標準 Pascal
・ISO 拡張 Pascal
GNU Pascal ISO 7185 Pascalと、10206 Extended Pascalを実装している。後者はまだ完全ではないが、ほとんどの機能が実装それている。10206 Extended Pascalでは、モジュラープログラミングを行うことができる。
研究課題、論文での利用、趣味のプログラム学習に向いています。
ISO 7185 Pascal規格を反映させた標準書籍の邦訳は『PASCAL 原書第4版』です。
・独自拡張 Object Pascal Free Pascal (Lazarus) ISO規格に準拠するのではなく、Delphiとの互換を目指す方向で多機能なObject Pascalを実装している。ライブラリも豊富で、Free Pascalだけで高度なコンソールアプリを開発することができる。また、Free PascalをベースにGUIコンポーネントなどを追加し、Delphi 7の様な統合開発環境Lazarusもある。コンソールアプリからGUIアプリまで柔軟に対応できる。モジュラープログラミング、ジェネリックスプログラミング、オブジェクト指向プログラミングのすべてを行うことができる。
実用的なソフトウェア開発に向いています。
・ISO Modula-2
・独自拡張 Modula-2
ADW Modula-2 ISO 10514-1, 2, 3 Modula-2 を実装し、モジュラープログラミング、ジェネリックスプログラミング、オブジェクト指向プログラミングのすべてを行うことができる。
研究課題、論文での利用、趣味のプログラム学習に向いていると思います。
ISO規格に準拠した(大規模)システム開発に向いています。
・ISO Ada
・独自拡張 Ada
GNAT Ada 83, 95, 2005, 2012 を実装し、モジュラープログラミング、ジェネリックスプログラミング、オブジェクト指向プログラミングのすべてを行うことができる。
組み込みシステムの信頼性を言語レベルで高めることのできる機能を持ち、単なるプログラミングツールとしてだけではなく、信頼性や安全に関する考察もすると良い。
ISO規格に準拠した(大規模)システム開発に向いていますが、最初に取り組むのは敷居が高いと思います。

 その他に、上記プログラミング言語に対応するエディタの構文色分け設定の公開も行います。