Basic Pascal Tutorial/History/ja

From Lazarus wiki
Revision as of 18:22, 19 June 2015 by Derakun (talk | contribs)
Jump to navigationJump to search

Template:Object Pascal History

歴史 (原著者: Tao Yue, : 修正あり)

   1 起源
   2 Wirth による Pascal の考案
   3 UCSD Pascal
   4 Pascal が標準となる
   5 拡張
   6 世界が変わる
   7 Pascalを学ぶ利点は何か?



起源

PascalはALGOLから派生した。ALGOLは科学計算のためのプログラミング言語であった。チューリッヒでの会合で国際委員会はプラットフォームから独立な言語としてALGOLをデザインした。この結果、ALGOLにデザインできる特徴について比較的束縛から自由になった。しかし、同時にそのためのコンパイラを書くことはより難しくなった。当時は、多くのコンピュータに私たちが今は当然と思っているハードウェアの性質がない時代だった。多くのプラットフォームでコンパイラがないこと、そしてポインターがないこと、さらに文字記号のような基本的なデータタイプがないことも相まってALGOLは広く受け入れられるものにはならなかった。科学者やエンジニアは多くのプラットフォームで利用できたプログラミング言語であるFORTRANのところに集まっていた。ALGOLはアルゴリズムを記述する言語として利用される以外はほとんど消え去ったのである。


Wirth による Pascal の考案

1960年代に何人かのコンピュータ科学者がALGOLを拡張する作業をはじめた。その中の一人がニクラウス・ヴィルト博士(Dr. Niklaus Wirth)であった。彼はスイス連邦工科大学(the Swiss Federal Institute of Technology :ETH-Zurich)に所属し、ALGOLを最初に作り出したグループの一人でもあった。1971年に彼は多くの点でALGOLに似た高度に構造化された言語の仕様を発表した。17世紀のフランスの哲学者で、同時に数学者であり、動作する機械的なデジタルコンピュータを組み立てたPascalの名前をとって、彼はそれをPascalと名付けた。

Pascalは非常にデータ指向なので、プログラマーは好みのデータタイプを定義することができる。この自由さと同時に厳密なタイプチェックが行われるため、データタイプがごちゃまぜになることはない。 Pascalは教育用言語を意図としており、実際その目的で広く採用された。 PascalはFORTRANと違って自由な書き方ができ、自然言語のように読みやすく、書かれたコードは理解しやすい。


UCSD Pascal

ALGOLを殺した原因の一つはコンパイラを作る困難さにあった。ヴィルト博士はPascalコンパイラに中間の、プラットフォームに依存しないオブジェクトコード段階をコンパイルさせることで、これを避けた。別なプログラムがこの中間コードを実行コードに変換したのである。

カリフォルニア大学サンディエゴ校(the University of California at San Diego :UCSD)の Ken Bowles 教授はこの提供されたチャンスを利用して Pascalコンパイラを Apple II、それはその当時もっとも人気のあったマイクロコンピュータであった、に移植した。 UCSD P-System は標準となり、多くの大学で広く使われた。 これはFORTRANのような他の言語を走らせるために必要だった大型計算機のコストとApple IIの低コストを比較する手助けとなった。 コンピュータ界におけるそのインパクトはIBMの革命的なパーソナルコンピュータの広告の中に見ることができる。その広告では、そのパーソナルコンピュータが3つのオペレーティングシステム、すなわちデジタルリサーチ社のCP/M-86、Softech社の UCSD P-system,そしてMicrosoft社のPC-DOSをサポートしていることを自慢していたのである。


Pascal が標準となる

1980年代の初期までにPascalはすでに広く大学で受け入れられていた。 2つの出来事がPascalをさらに人気のあるものにした。

第一は教育テストサービス(the Educational Testing Service)で、この会社は合衆国における主要な大学入試試験の作成と実施を行っていた。この会社がコンピュータ科学を高校生の能力別クラス分け試験に加えることを決定したのである。この試験のためにPASCAL言語が選ばれたのである。このため、大学生と同じく、高校2年生もPASCALを学び始めることとなった。Pascalは1999年になるまで能力別クラス分け試験の公式言語であり続け、その後C++に取ってかわられた。そのC++もすぐにJavaに取って変わられたのである。

第二はボーランド(Borland International)という名の小さい会社がターボ・パスカル(the Turbo Pascal)というIBM PC用のコンパイラを発売したことである。このコンパイラはアンダース・ヘルスバーグ(Anders Hejlsberg)によって設計された。彼はのちにC#を開発したマイクロソフトのグループを率い、マネージコード(managed code)を計算機の世界に(再)紹介した。

Turbo Pascalは実際、革命的だった。それは標準的なPASCALにいくつかの近道を用意し、修正を施したものだった。しかし、それらは小さい変更だったが、最高の結果、すなわちスピードをもたらした。Turbo Pascal は目まいがするほどのペースで、1分間で数千行、コンパイルをした。当時、PCプラットフォームで利用できたコンパイラはのろくて肥大化していた。ターボ・パスカルが登場したとき、それは新鮮な息吹だった。すぐにターボ・パスカルはPCでのプログラミングのデファクト・スタンダードになった。PC Magazine誌がユーティリティプログラムを誌面に載せるときはたいていアセンブリかターボパスカルだったのである。

同じ頃、アップルがマッキントッシュシリーズを出してきた。 Pascal はその時代卓越した構造化プログラミング言語だったので、アップルはMacの標準プログラミング言語としてPascalを選択した。プログラマーがMacプログラミングのAPIと実例コードを受け取るときは、それはすべてPascalで書かれていたのである。


拡張

ターボ・パスカルのバージョン1.0から7.0までボーランドは言語を拡張し続けた。 Pascalのオリジナルバージョンに対する批判の一つはモジュールを別個にコンパイルできないことだった。ヴィルト博士(Dr. Wirth)は、この問題に取り組むために新しいプログラミング言語、Modula-2 を作り上げたほどであった。ボーランドはPascalにモジュールを付け加えて、その特徴を持たせた。

バージョン7.0までに多くの先進的な特徴が加えられた。 これらの一つは DPMI (DOS Protected Mode Interface)であった。これはプロテクトモードでDOSのプログラムを走らせ、より高速化し、DOSの下でのメモリーアクセスの640Kの壁から解放されるやり方であった。ターボ・ビジョン(Turbo Vision)はテキストベースのウインドウシステムでプログラマーは実際、ほとんど時間をかけずに見栄えのよいインターフェースを作成できた。 Pascal はバージョン5.5でアップル・オブジェクト・パスカル拡張(the Apple Object Pascal extensions)を採用することでオブジェクト指向にさえなった。ウインドウ3.0が出てきた時には、ボーランドはウインドウ用のターボパスカルを作りあげた。これはPascalのスピードと使いやすさをグラフィカル・ユーザー・インタフェースにもたらした。Pascalの未来は安泰に思えた。


世界が変わる

しかしながら、そうはならなかった。1970年代、AT&T ベル研究所のデニス・リッチー(Dennis Ritchie)とブライアン・カーニハン(Brian Kernighan)はCプログラミング言語を作り出した。リッチーはその後、ケン・トンプソン(Ken Thompson)と共同で UNIX のオペレーティングシステムを開発した。当時、AT&T は合衆国の電話事業に関して政府認可の独占権を持っていた。独占の引き替えに電話事業は制限され、コンピュータビジネスに参入することは禁じられていた。 AT&T はリサーチオペレーティングシステムに対する市場はないとみて、無料で完全なソースコードつきで UNIXを大学に与えたのである。こうして、コンピュータ科学の学生は全ての学年で言語とオペレーティングシステムのコースで C を学ぶことになった。徐々にだが、しかし確実に C はコンピュータプログラミングの世界に浸透していった。

Pascal took a heavy hit in the 90s when several large companies focused on other programming languages. Microsoft for example focused on Visual Basic and C, and Apple migrated it's APIs from Pascal to C and later to Objective C. Despite the lack of support from operating system producers, Pascal still retained a large following through Delphi and Free Pascal. [edit] So what are the advantages of learning Pascal?

Despite having lost its previous position of dominance, Pascal is still quite useful, one of its advantages being that it has a very clear syntax which uses common words, such as begin/end, to express concepts, making its code easier to read and maintain.

Another reason: speed and size. Pascal compilers are lightning-fast and Delphi and Free Pascal are no exceptions. While C programmers might wait for hours, Pascal programmers have to wait only 1 minute for a program of a similar size. Besides that the Pascal IDEs are still leaders in terms of productivity in the world through the Delphi IDE and the Lazarus IDE.

Also, Pascal remains preferred at many universities. In addition, Pascal was well-suited for teaching programming, and remains so. There is less overhead and fewer ways for a student to get a program into trouble. For teaching simple procedural programming, Pascal remains a good choice. Pascal has hung on longer in education outside the United States, and remains an official language of the International Informatics Olympiad. A basic programming background is useful in many technical occupations and Pascal is easier to learn than C/C++.

Today Pascal retains a niche in the market through Delphi, Free Pascal and Lazarus. Many small-scale freeware, shareware, open-source and commercial programs are written in Pascal/Delphi. So enjoy learning it. It's a great introduction to computer programming. It's not dangerous like C, confusing like C++, or slow like Java.