Basic Pascal Tutorial/History/ja: what changed
Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | 歴史 (原著者: Tao Yue, : 修正あり) | |
| 2 | 2 | ||
| 3 | - | ||
| 3 | + | ```text | |
| 4 | 4 | 1 起源 | |
| 5 | 5 | 2 Wirth による Pascal の考案 | |
| 6 | 6 | 3 UCSD Pascal | |
| 7 | 7 | 4 Pascal が標準となる | |
| 8 | 8 | 5 拡張 | |
| 9 | 9 | 6 世界が変わる | |
| 10 | 10 | 7 Pascalを学ぶ利点は何か? | |
| 11 | 11 | ``` | |
| 12 | 12 | ||
| 13 | 13 | ## 起源 | |
| 14 | 14 | ||
| 15 | 15 | PascalはALGOLから派生した。ALGOLは科学計算のためのプログラミング言語であった。チューリッヒでの会合で国際委員会はプラットフォームから独立な言語としてALGOLをデザインした。この結果、ALGOLにデザインできる特徴について比較的束縛から自由になった。しかし、同時にそのためのコンパイラを書くことはより難しくなった。当時は、多くのコンピュータに私たちが今は当然と思っているハードウェアの性質がない時代だった。多くのプラットフォームでコンパイラがないこと、そしてポインターがないこと、さらに文字記号のような基本的なデータタイプがないことも相まってALGOLは広く受け入れられるものにはならなかった。1966年、ヴィルトとホーアはALGOLの後継として、ポインターをサポートしたALGOL W言語を発表した。だが科学者やエンジニアは多くのプラットフォームで利用できたプログラミング言語であるFORTRANのところに集まっていた。ALGOLはアルゴリズムを記述する言語として利用される以外はほとんど消え去ったのである。 | |
| 16 | 16 | ||
| 17 | 17 | ## Wirth による Pascal の考案 | |
| 18 | 18 | ||
| 19 | 19 | 1960年代に何人かのコンピュータ科学者がALGOLを拡張する作業をはじめた。その中の一人がニクラウス・ヴィルト博士(Dr. Niklaus Wirth)であった。彼はスイス連邦工科大学(the Swiss Federal Institute of Technology :ETH-Zurich)に所属し、ALGOLを最初に作り出したグループの一人でもあった。1971年に彼は多くの点でALGOLに似た高度に構造化された言語の仕様を発表した。17世紀のフランスの哲学者で、同時に数学者であり、動作する機械的なデジタルコンピュータを組み立てたPascalの名前をとって、彼はそれをPascalと名付けた。 | |
| 20 | 20 | ||
| 21 | 21 | Pascalは非常にデータ指向なので、プログラマーは好みのデータタイプを定義することができる。この自由さと同時に厳密なタイプチェックが行われるため、データタイプがごちゃまぜになることはない。 Pascalは教育用言語を意図としており、実際その目的で広く採用された。ヴィルトによれば(注1)、「FORTRANの形は、IBMで作った特定の型の計算機向きであった。したがって、その言語は、その構成からみても定義からみても、改良の余地があった」のだという。PascalはFORTRANと違って自由な書き方ができ、自然言語のように読みやすく、書かれたコードは理解しやすい。 | |
| 22 | 22 | ||
| 23 | 23 | (注1)『系統的プログラミング/入門』(N.ヴィルト 著、野下浩平、筧 捷彦、武市 正人 訳、2001年4月、近代科学社)p.35 より引用 | |
| 24 | 24 | ||
| 25 | 25 | ## UCSD Pascal | |
| 26 | 26 | ||
| 27 | 27 | ALGOLを殺した原因の一つはコンパイラを作る困難さにあった。ヴィルト博士はPascalコンパイラに中間の、プラットフォームに依存しないオブジェクトコード段階をコンパイルさせることで、これを避けた。別なプログラムがこの中間コードを実行コードに変換したのである。 | |
| 28 | 28 | ||
| 29 | 29 | カリフォルニア大学サンディエゴ校(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をサポートしていることを自慢していたのである。 | |
| 30 | 30 | ||
| 31 | 31 | ## Pascal が標準となる | |
| 32 | 32 | ||
| 33 | 33 | 1980年代の初期までにPascalはすでに広く大学で受け入れられていた。 2つの出来事がPascalをさらに人気のあるものにした。 | |
| 34 | 34 | ||
| 35 | 35 | 第一は教育テストサービス(the Educational Testing Service)で、この会社は合衆国における主要な大学入試試験の作成と実施を行っていた。この会社がコンピュータ科学を高校生の能力別クラス分け試験に加えることを決定したのである。この試験のためにPASCAL言語が選ばれたのである。このため、大学生と同じく、高校2年生もPASCALを学び始めることとなった。Pascalは1999年になるまで能力別クラス分け試験の公式言語であり続け、その後C++に取ってかわられた。そのC++もすぐにJavaに取って変わられたのである。 | |
| 36 | 36 | ||
| 37 | 37 | 第二はボーランド(Borland International)という名の小さい会社がターボ・パスカル(the Turbo Pascal)というIBM PC用のコンパイラを発売したことである。このコンパイラはアンダース・ヘルスバーグ(Anders Hejlsberg)によって設計された。彼はのちにC#を開発したマイクロソフトのグループを率い、マネージコード(managed code)を計算機の世界に(再)紹介した。 | |
| 38 | 38 | ||
| 39 | 39 | Turbo Pascalは実際、革命的だった。それは標準的なPASCALにいくつかの近道を用意し、修正を施したものだった。しかし、それらは小さい変更だったが、最高の結果、すなわちスピードをもたらした。Turbo Pascal は目まいがするほどのペースで、1分間で数千行、コンパイルをした。当時、PCプラットフォームで利用できたコンパイラはのろくて肥大化していた。ターボ・パスカルが登場したとき、それは新鮮な息吹だった。すぐにターボ・パスカルはPCでのプログラミングのデファクト・スタンダードになった。PC Magazine誌がユーティリティプログラムを誌面に載せるときはたいていアセンブリかターボパスカルだったのである。 | |
| 40 | 40 | ||
| 41 | 41 | 同じ頃、アップルがマッキントッシュシリーズを出してきた。 Pascal はその時代卓越した構造化プログラミング言語だったので、アップルはMacの標準プログラミング言語としてPascalを選択した。プログラマーがMacプログラミングのAPIと実例コードを受け取るときは、それはすべてPascalで書かれていたのである。 | |
| 42 | 42 | ||
| 43 | 43 | ## 拡張 | |
| 44 | 44 | ||
| 45 | 45 | ターボ・パスカルのバージョン1.0から7.0までボーランドは言語を拡張し続けた。 Pascalのオリジナルバージョンに対する批判の一つはモジュールを別個にコンパイルできないことだった。ヴィルト博士(Dr. Wirth)は、この問題に取り組むために新しいプログラミング言語、Modula-2 を作り上げたほどであった。ボーランドはPascalにモジュールを付け加えて、その特徴を持たせた。 | |
| 46 | 46 | ||
| 47 | 47 | バージョン7.0までに多くの先進的な特徴が加えられた。 これらの一つは DPMI (DOS Protected Mode Interface)であった。これはプロテクトモードでDOSのプログラムを走らせ、より高速化し、DOSの下でのメモリーアクセスの640Kの壁から解放されるやり方であった。ターボ・ビジョン(Turbo Vision)はテキストベースのウインドウシステムでプログラマーは実際、ほとんど時間をかけずに見栄えのよいインターフェースを作成できた。 Pascal はバージョン5.5でアップル・オブジェクト・パスカル拡張(the Apple Object Pascal extensions)を採用することでオブジェクト指向にさえなった。ウインドウ3.0が出てきた時には、ボーランドはウインドウ用のターボパスカルを作りあげた。これはPascalのスピードと使いやすさをグラフィカル・ユーザー・インタフェースにもたらした。Pascalの未来は安泰に思えた。 | |
| 48 | 48 | ||
| 49 | 49 | ## 世界が変わる | |
| 50 | 50 | ||
| 51 | 51 | しかしながら、そうはならなかった。1970年代、AT&T ベル研究所のデニス・リッチー(Dennis Ritchie)とブライアン・カーニハン(Brian Kernighan)はCプログラミング言語を作り出した。リッチーはその後、ケン・トンプソン(Ken Thompson)と共同で UNIX のオペレーティングシステムを開発した。当時、AT&T は合衆国の電話事業に関して政府認可の独占権を持っていた。独占の引き替えに電話事業は制限され、コンピュータビジネスに参入することは禁じられていた。 AT&T はリサーチオペレーティングシステムに対する市場はないとみて、無料で完全なソースコードつきで UNIXを大学に与えたのである。こうして、コンピュータ科学の学生は全ての学年で言語とオペレーティングシステムのコースで C を学ぶことになった。徐々にだが、しかし確実に C はコンピュータプログラミングの世界に浸透していった。 | |
| 52 | 52 | ||
| 53 | 53 | 90年代、いくつかの大きな会社が他のプログラミング言語に集中しているときに大ヒットを飛ばしていた。たとえば、マイクロソフトはVisual Basic と C、アップルは API を Pascal から C に移し、後に Objective C に変えた。オペレーティングシステムの手続きからの支援がないにもかかわらず、Pascal は Delphi や Free Pascal を通してなお多数の支持を受けていた。 | |
| 54 | 54 | ||
| 55 | 55 | ## では、Pascalを学ぶ利点は何か? | |
| 56 | 56 | ||
| 57 | 57 | 以前のような支配的地位は失ったものの Pascal は今なお非常に有用である。利点の一つは(英語圏の話者にとって)日常的な単語——たとえば`begin`/`end`のような——で概念を表現することで非常に明確な文法を持ち、コードが読みやすく保守しやすいことである。 | |
| 58 | 58 | ||
| 59 | 59 | もう一つの利点はスピードとサイズである。 Pascal コンパイラは電光石火の速さであり、Delphi や Free Pascal も例外ではない。 同じようなサイズのプログラムに対して C プログラマーが数時間待つ一方で Pascal プログラマーはほんの1分待つだけかもしれない。 それ以外でも、Pascal の IDE は Delphi や Lazarus の IDE を通して、生産性という点では世界で今なおリーダーである。 | |
| 60 | 60 | ||
| 61 | 61 | また、Pascal は多くの大学で好まれ続けている。 加えて、 Pascal 教育用言語としてぴったりであったし、今でもそうである。 学生に必要とされるものは少ないし、プログラムがトラブルになることもない。 単純な手続き的プログラミングを教えるためには、Pascal は今も良い選択である。 Pascal は合衆国以外の国の教育では長く支持を得てきたし、国際情報オリンピック(International Informatics Olympiad)においては今なお公式言語である。 基本的なプログラミングの経験は多くの技術職で有用だし、Pascal は C/C++ よりも学びやすい。 | |
| 62 | 62 | ||
| 63 | 63 | 今日、Pascal は Delphi や Free Pascal、そして Lazarus を通して小さい市場を維持している。たくさんの小規模なフリーウェア、シェアウェア、オープンソースプログラムと商業プログラムが Pascal/Delphi で書かれている。だから、Pascal を学ぶことを楽しんで欲しい。それはコンピュータプログラミングへのすばらしい導入になるのだから。Pascal は C のように危険ではないし、C++ のようにややこしくはない。そして、Java のように遅くないのである。 | |
| 64 | 64 | ||
| 65 | 65 | | | | | | |
| 66 | 66 | |----|----|----| | |
| 67 | 67 | | [[Basic Pascal Tutorial/Introduction/ja|previous]] | [[Basic Pascal Tutorial/Contents/ja|contents]] | [[Basic Pascal Tutorial/Compilers/ja|next]] | | |
| 68 | 68 | ||
| 69 | 69 | --- | |
| 70 | 70 | *From the Free Pascal wiki, page "Basic Pascal Tutorial/History/ja", as it stood on 2023-04-30 after a change by Dhrname, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
