高校数学の窓過去問検索

通大指定教材:Free Pascal のダウンロード/インストールに付いて

通大生に次のような質問を受けたんですよ。


今コンピュータの過去問を解くに当たってpascalをダウンロードしようと思ったのですが、もともとパソコンに弱い上に、玉川大学が指定しているダウンロードページがすべて英語なのでよくわかりません。
どのようにダウンロードしたらよいのか教えていただけないでしょうか??



とか訊かれて。
反射的に口を突いて出そうになったのは次の一言です。


バッカじゃねえの???


と。
いや、この質問者に思ったんじゃないですよ。そうじゃなくって通大が、です。アホちゃうか???と思った。
以下に通大数学コースコンピュータの教授陣が如何にバカタレなのかその理由を書いていきます。
いや、俺はホントに怒ってるんだぞ(怒)。


  1. 通大数学コースコンピュータの教授陣がバカタレな理由:Free Pascal は本当に Pascalなのか?


    まず、亀田はFree Pascalの存在は知っていました。
    と言うか、現状で、マトモと呼べるフリーのPascalコンパイラと言えば、次の二種類しか思い浮かばなかったのです。

    この二つのうち、前者はWindowsで使用するのは極めて難しいです。まず、Windowsに簡単にインストールして動かせるいわゆる.exeファイルが提供されていない、んですよね。LinuxやFreeBSD等のオープンソースのOS上ならいざ知らず(あるいはMac OS Xでも良いですが)、Windowsでこれを動かすのは至難の技です。
    一方、後者は確かにWindows用の実行ファイルも提供されていますし、比較的敷居が低いです。それは間違いありません。
    だったら。
    どうして亀田がFree Pascalの存在を匂わせなかったのか。その理由は以下の通りです。

    Free Pascal が本当にPascalコンパイラと呼んで良いのか自信が持てなかったから。

    これに尽きます。

    詳しい話はWikipedia辺りを参照して欲しいんですが、こんな事が書いてありますね。

    概説


    言語仕様はボーランドの Pascal (Turbo Pascal及びDelphi)に準拠しており、いくつか MacPascal の仕様も採用している。

    言語仕様


    FPC は Pascal の方言のうちで、デファクトスタンダードとなっているボーランドのものを採用している(1.0.xのFPCではBorland Pascal 7とDelphi 2、2.0.xでは Delphi 6または7)


    以前、Delphiの話を書きましたが、今現在、DelphiはPascalではない、んです。全く別の独自の言語と言って良いです。
    と言うことは、Free Pascalの実装方針、Delphi互換を目指してる、んだったらFree Pascalは事実上Delphiですよ。ホントにそれでイイのか?亀田はそこが不安に感じたので敢えてFree Pascalには触れなかったのです。

    名前にPascalが入ってりゃエエ、って問題じゃないんです。Pascal、と名乗るには、本来だったらISO(国際標準化機構)で制定された標準Pascalの言語仕様に準じてないといけません。

    通大数学コースの教授陣、ホントにFree Pascalの仕様確かめたんだろうな?どーも通大数学コースコンピュータの選択見ると、

    まあ、動けばイイや。

    と言うド素人と変わらない基準で選んでいる感じがしてとても不安です。十進BASICの配布もそうですが、本当に標準仕様に準じて実装しているのかどうか怪しい言語を選んでたりしますし。
    本来、プログラミング教育を名乗る以上、

    標準仕様に準じている以上、問題無く動作するコードが書ける

    実装を指定するべきでしょう。反面、通大の選択だとマトモな情報工学系大学の教員だったら絶対に行わないような事ばっかりやってるように見えます。
    (あるいは通大数学コースはマトモじゃねえのか。そうかもな。これじゃあそう取られてもしょーがない。)

    動けば良い、んだったらプログラミング言語なんて使わずにMicrosoft Excelでも教えてりゃイイんですよ(笑)。その方がよっぽど役に立ちますって。

  2. 通大数学コースコンピュータの教授陣がバカタレな理由:Free Pascal Compiler をダウンロードしたからと言ってどーにもならない


    第二がこれです。ダウンロードサイトを指し示したところでどーにもならない、と言う事です。

    英語ページに挑んで、無事Free Pascalのダウンロード/インストールに成功したとしましょう。

    「さて、Free Pascalを立ち上げようか」

    とFree Pascal IDEなるアイコンをダブルクリックすると結果はコレです。



    図1




    2chのアスキーアート状態です。
    この時点で通大生はPCの前でこんな顔↓してますよ。



    実際、ダウンロードした通大生から次のような事を言われました。

    実際にダウンロードしたpascalを開いてみるとバグ??のような感じになってしまっていて何もできませんでした。

    実はこれバグじゃないんですけどね。この状態でも使える事は使えます。
    平たく言うと、Windowsのコマンドプロンプト(DOS窓)の文字コードとFree Pascalの文字コードが合ってない為、こう言う「文字化けした」ような画面になるんです(良く見ると、FPCって書いてる事が分かるんですが)。
    いや、実際、LinuxでのUTF-8の世界に住んでいるとこーゆーのは滅多に起こらないんですが、Windowsで久々にこう言う「バカ現象」に遭遇しました(笑)。初め「バグ??のような感じ」とか言われて想像付かなかったんですけど(笑)。
    本来、Free Pascalの提供元はこう言う形で表示させたいんです。



    図2





    分かりますかね?

    本来だったら、こーゆー「文字コードの問題」なんかも学生に説明しておかなければならない、んです。相手はコンピュータ素人の学生だろ、っての。ボケ。
    十中八九、「プログラミングをやった事が無い」学生だったら図1の状態を見て、

    インストールに失敗した

    って思うはずです。「何で?何で?何で?」と頭の中に疑問符の嵐、でしょう。
    かつ、最悪な事に、現代ではPascal自体が大して人気のある言語じゃありません(ハッキリ言えば、例えばSchemeのコミュニティを探す方が遥に簡単です)。誰かに質問しようと思っても答えてくれる場所さえ無い、のです。

    ところが、質問者の話を聞く限り、通大の指定は、

    ダウンロードサイトだけ書いてある

    らしく、それ以外の事は何も書いてない模様です。

    そんなのアリか?(怒)

    こう言う「バグモドキ現象」なんて一回でもダウンロードして実行してみれば分かる筈なんですけど。加えて、通大側で図1の状態から図2の状態への持って行き方を学生に説明するのってそんなに大変な事か???
    あるいは、そんな現象がある、とも全く確かめてない?
    だとしたら通大数学コースコンピュータの教授陣は

    ボンクラ

    の集まりです。一体何やってんだ、と小一時間問い詰めたいですね。



以上により、通大数学コース・コンピュータの教授陣は大馬鹿野郎であることが証明されました。

Q.E.D.


もう一回繰り返しておきますが、対象学生は「プログラミング」なんてやった事ない輩が殆ど、なんですよ。何も説明せずにダウンロードサイトだけ教えておけば何とかなるだろ、なんて考えていても何とかなるわけねーだろが(怒)。バカモノどもが。
通大数学コースのコンピュータの教授陣に次のように言っておきたいですね。

べらぼーめ、豆腐の角に頭ぶつけて死んでしまえ

てやんでえ、こちとら江戸っ子よ。寿司喰いねえ(謎)。



Free Pascalのインストール/設定の方法



とまあ、悪態吐いたトコで本題入りましょうか。

註:悪態、とか書いてますけど、当たり前の事を指摘してるに過ぎませんけどね。

一応、苦肉の策(どー考えても苦肉の策)で通大がFree Pascalを公式指定している以上、そのインストール方法と設定の方法をここで解説しておきます。
繰り返しますが、こんなの一般人に解説させたら本当はダメなんですよ。通大自ら率先して学生に説明しなければならないのです。


  1. Free Pascal のダウンロード



    1. Free Pascal 公式ページにアクセスする。

    2. Downloadをクリックしてダウンロードページへ飛ぶ。

    3. BinariesセクションからCPU(中央演算処理装置)とOSのタイプを選ぶ。

      • Windows機の場合、大体のケースではintel/i386のWin32, Win64 and WinCEと書かれたところがリンク。

      • Apple Macintoshは現行機(intel Mac)の場合は同じくintel/i386からMac OS Xを選ぶ。

      • 数年前のApple Macintoshの場合は、powerpcからMac OS Xを選ぶ。


      この3つ以外はマニアックなCPUやOSなんで考えなくて良い。

    4. Select download mirrorからSource Forgeを選択する。

    5. 適切な実行ファイルをダウンロード/保存する。



    以下に、この手順(Windowsの場合)を纏めた解説ビデオを挙げておきます。上の説明で良く分からない人は実際動画を観てみて、同じ手順を再現してみて下さい。




  2. Free Pascal のインストール


    ダウンロードしたフォルダをダブルクリックしてインストーラを起動したら、後は基本的に[Next>]ボタン連打で構いません。
    Windowsの場合、インストールフォルダは

    C:\FPC

    とCドライブ直下になります(Macintoshは残念ながら知りません)。
    Windows版Free Pascal インストールの解説ビデオは以下にあります。




  3. NTEmacsのダウンロード


    さて、ここが一番悩みました。
    図2にもあるように、Free Pascal はコマンドプロンプト(DOS窓)を利用したIDE(Integrated Development Environment:統合開発環境)がデフォルトで付いてきます。
    が、図1のような文字コードによる文字化けもありますし(もちろん暫定的に解除は出来るんですが)、何にせよ使い辛い、と言うのが亀田の印象でした。
    実はFree Pascal には他にも専用のIDEを作ろう、と言うプロジェクトがあるにはあるんですが、開発中の模様ですし、またもや日本語文字コードの問題が生じるようです(少なくとも亀田が試してみた限り、あまり具合が良くありませんでした)。
    さて、一体どーしたもんだろ?Windowsからパソコンをはじめた軟弱世代の為に(笑)、昨今流行りのGUIの開発環境、例えばEclipseとかNetBeansも軒並み調べたんですが、前者はPascal用のプラグインは開発中止、後者は開発途中(pre-α版)だそうです。
    だから言ったろ、っての(苦笑)。今時Pascalなんて流行ってないんだってば(苦笑)。繰り返しますが、Schemeの開発環境探す方がずーっと簡単なんですって。通大数学コースのコンピュータ担当のおバカさん達はどう考えてるんだろね?この状況を。
    xyzzyサクラエディタも調べてみたんですが、残念ながらオートインデントが効かず。ハッキリ言っておきますが、オートインデントが無いようなエディタでプログラムなんて書いてられませんよ。よってこれらも却下、です。
    結局Windows用で残ったのはNTEmacsしかありませんでした(Mac OS X用にはCarbon Emacsと言うのがあります)。
    よって、ここからは、

    NTEmacsFree Pascalを使う

    のを方針とします。


    1. NTEmacsのページへアクセスする。

    2. DownloadをクリックしてSourceForgeのページへ飛ぶ。

    3. NTEmacs 22BASE Binaryのセクションからemacs_22.2_bin_20080327.exeをクリック/ダウンロード/保存する。


    取りあえずここまで行って下さい。
    Windows版NTEmacsのダウンロード解説ビデオは以下にあります。



    なお、Mac OS X 用のCarbon Emacsに関する情報は、これはネット上にはNTEmacsより多いんで、ご自分で検索してお調べ下さい。
    (Macはさすがに今現在所有してないので分からないのです)

  4. NTEmacsのインストール



    1. NTEmacsはダウンロードしたフォルダを解凍するだけですぐ使えるようになっています。
      問題は「解凍場所」です。Cドライブ直下に解凍して下さい。
      パスで書けば

      C:\

      です。

    2. C:\emacs\22.2\bin\runemacs.exeを右クリックして[ショートカットの作成]を選び、ショートカットを作成します。

    3. 作成したショートカットをデスクトップ上に移動します。


    良く分からない人は、以下の解説ビデオを観て、それに従って下さい。



    Mac OS X 用のCarbon Emacsに関する情報は、これはネット上にはNTEmacsより多いんで、ご自分で検索してお調べ下さい。

  5. Free Pascal + NTEmacs の環境設定



    1. [スタート]→[アクセサリ]→[コマンドプロンプト]と進んでコマンドプロンプト(DOS窓)を立ち上げる。

    2. 下のコードをコピーしてDOS窓に貼り付ける。

        mkdir C:\bin && mkdir C:\home\.emacs.d\elisp && echo "C:\FPC\2.2.4\bin\i386-win32\fpc.exe %1 %2 %3 %4 %5 %6 %7 %8" > C:\bin\fpc.bat


    3. DOS窓に貼り付けたらリターンキーを押してコマンドを実行。

    4. ユーザー環境変数の設定をします。

      にして、これら




      変数
      PATHC:\bin
      HOMEC:\home

      二つのユーザー環境変数を設定します。



    良く分からない人は次の解説ビデオを参考にして下さい。




  6. NTEmacs の設定



    WARNING!!!
    Windows XP ユーザーの人は最初にメイリオフォントを導入しましょう(必須!!!)。非常に美しいフォントなんで、プログラムを書くのが楽しくなります(見た目は大事です)。
    メイリオフォントの導入方法はこのページを参考にしてください。

    なお、Windows Vista以降ではデフォルトのフォントはメイリオになっています。



    1. デスクトップ上のNTEmacsのショートカットアイコンを右クリックしてプロパティを開く。

    2. 作業フォルダーを

      C:\home

      に変更して[適用]ボタンをクリック、そして[OK]ボタンをクリックする。

    3. NTEmacs をダブルクリックして起動する。

    4. 重要!!!
      NTEmacsではCtrlキーとxキーを同時に押すことを

      C-x

      と表現する。同様にCtrlキーとxキーを同時に押したあと、Ctrlキーとfキーを同時に押すことを

      C-x C-f

      と表現する。こう言うキーボードでの操作をキーストローク(あるいは慣用的にキーバインド)と呼ぶ。
      NTEmacsでは、C-x C-fの後ファイル名を入力すると、そのファイルが存在する場合はそのファイルを立ち上げ、無ければ新しくそのファイル名でのファイルを立ち上げる。
      ここでは、

      C-x C-f .emacs

      とし、新規ファイルとして.emacsを立ち上げる。

    5. ブラウザでこのページにアクセスし、そこに書かれたコード(冒頭からEnd of Fileまで)をコピーして、NTEmacsで開いた.emacsに貼り付ける。

    6. C-x C-s.emacsを保存する。なお、C-x C-sファイル保存のキーストロークである。

    7. 一旦NTEmacsを閉じる

    8. 再びNTEmacsを起動した時、白色画面ではなく、肌色っぽい(あるいは黄色っぽい)画面で起動したら全ての設定は成功である。


    お疲れ様でした。後はNTEmacsでプログラムを書いて、コンパイルして実行するだけ、です。

    良く分からなかった人は次のビデオを参考にしてください。




  7. Free Pascal と NTEmacs の使い方


    箇条書き程度にメモしておきます。

    • 最初にNTEmacsの使い方を学ぶ為、NTEmacsのプルダウンメニューから[Help]→[Tutorial]を選んで、簡単なNTEmacsの使い方を学びましょう。日本語で書かれているので読むのに特に問題は無い筈です。

    • C-x C-f ファイル名でファイルが開きます。

    • Pascalのプログラムを記述するファイル(ソースファイル、と呼びます)の拡張子は.pasです。NTEmacsはこの拡張子で判断してPascalモードを立ち上げます。従って、Pascalのソースファイル名の最後は必ず.pasにして下さい。
      例えば、hogeと言うプログラムを書きたかったら、ソースファイル作成は

      C-x C-f hoge.pas

      です。

    • Pascalモードとは、Pascalの文法規則に則ってキーワードを色付けしてくれたり、適切なインデントを行ってくれたりするプログラム開発補助機能です。

    • 他に、Delphiに特化されたdelphiモードと言うのも実はNTEmacsに内蔵されていますが、亀田の感触ではあまり役に立ちませんでした。少なくともISO Pascal範囲内のコードを書く以上、Pascalモードの方が機能が充実しています。
      (実はFree PascalでのEmacs推奨モードはdelphiモードです)

    • NTEmacsでプログラムを書く場合、リターンキーは滅多に使いません。代わりにC-jとします。これで改行と自動インデントを同時にやってくれます。

    • C-jで適切なインデントが施されない場合は、結果どっかで文法ミスしている、と言う事です。

    • コンパイラはC-c c(Ctrlキーとcキーを同時に押した後、またcを押す)で立ち上がります。

    • make -kはいらないんで消しましょう。

    • Free Pascalのコンパイルコマンドは

      fpc ファイル名

      です。これでファイル名から拡張子.pasを外しただけの同名の実行ファイル(オブジェクトコード)が生成されます(ホントは.exeファイルが生成されます)。
      例えば、

      fpc hoge.pas

      なら、hogeと言うオブジェクトコードが生成されます(ホントはhoge.exeが生成されます)。

    • NTEmacsからコマンドプロンプトを呼ぶには

      Esc-!

      つまり、Escキーを押した後!キーを押すか、

      M-x eshell

      つまり、Altキーとxキーを同時に押してからeshellと入力すれば良いです。そうすると、前者はコマンドプロンプトをNTEmacs最下部のミニバッファに呼び出し、後者はNTEmacsをコマンドプロンプトとして動作させます(※)。

    • どの道、コマンドプロンプトさえ呼び出してしまえば、あとはオブジェクトコード名をタイプしてリターンキーを叩けば書かれたプログラムが走ります。

    • 作成した全てのソースファイルとオブジェクトコードはC:\homeに保存されます。C:\homeは文字通り作業フォルダーです。

    • 他に便利なNTEmacsの機能としては、コメントを記述する際の

      M-;

      (Altキーを押しながら;キーを押す)機能があります。




    ※:正確にはDOS窓ではなく、Emacs Shellと呼ばれるまた別種の(Windows用語で言う)コマンドプロンプトを呼び出す。
    これはUNIX系のコマンドライン体系に則っていて、MS-DOS系のコマンド体系とは実は互換性は無い。
    しかしながら、作ったプログラムを呼び出す、と言う意味においては、作ったプログラム名は「コマンド」として認知され、DOS窓だろうとEmacs Shellだろうと同様に動く。また、動かなければならない。
    なお、コマンドプロンプト、はWindows用語だが、一般的にどう呼ぶのか、と言うとこれが実は用語が無い。端末、も用語として相応しくないし(と言うのも「端末」とは元来、ハードウェアを指し示す)、UNIX系では通称でシェル、と呼ぶ例が多いが、これも元来はWord、Excelのような「アプリケーションの名前」を指すので、一般用語としてはどうか、と思われる。
    (実は、「コマンド」も「プロンプト」も全く別の意味を指すので、Windowsでの正式名称「コマンドプロンプト」自体がかなりマズいネーミングなのだが、色々とこの辺を鑑みると、「DOS窓」と言う通称は、なかなか上手く各種の問題を避けて「モノ」を指し示した優れたネーミングである)
    敢えて言うならCLI(コマンドラインインターフェース)環境、としか呼びようが無い。DOS窓はWindowsのCLI環境、ShellはUNIXのCLI環境である。
    なお、Windows Vista以降にはPower Shellと名づけられた強力なCLI環境が存在する。

    大体の作業の流れは以下の解説ビデオを観てください。






Pascal の参考書


サイエンス社と言う出版社から大学用として数冊ISO Pascal準拠の教科書が出版されています。
Amazon辺りで検索すると二束三文で古本が取引されているんで、そう言う教科書を適当に選んで、自習用として入手してみて下さい。
文字通り二束三文で取引されているんでビックリします(こーゆー時だけ人気が無い言語はありがたい・笑)。


















Pascalよもやま話



  • Pascalは1970年にヨーロッパで開発されたプログラミング教育用言語である。

  • Pascalは殆ど史上初のレキシカルスコープを持つ構造化プログラミング言語である。

  • 正確に言うと、史上初のレキシカルスコープを持つ構造化プログラミング言語は、同じくヨーロッパで制定された理論的実験言語(と言うと語弊があるが)であるAlgolだが、言語仕様が巨大化し過ぎて、マトモな実装は誕生しなかった。

  • 言わば、Pascalは縮小版Algolである。

  • 従って、文法構造的にもAlgolの影響が見受けられる。

  • Pascalは古典的なLispやBASICと同様の、case-insensitiveな言語である。

  • case-insensitiveとは大文字、小文字を区別しない、と言う意味である。

  • 元々PascalプログラミングではBASICよろしく全て大文字で記述する。

  • 大文字しか使えなかった、と言う一つの理由は1970年当時のコンピュータのパフォーマンスに由来する。

  • 1970年当時では、大型コンピュータでもスクリーンへ表示する為の計算能力やメモリが貧弱で、また、プリンタの出来もよろしくなく、結果解像度が稼げなかったのが一つの理由である。

  • 解像度が稼げない環境だと、小文字は潰れてしまって読みづらい。

  • なお、小文字表示でも問題が無いディスプレイが普及するのが1975年前後である。

  • ちなみに、1973年登場のC言語はcase-sensitiveなプログラミング言語で、UNIXと言うOSでほぼ始めてcase-sensitiveな環境が整った。

  • 静的型付け言語では、現在ではC言語の圧勝だが、かつてはC言語とPascalが人気を二分していた。

  • C言語ユーザーは、教育目的の為に設計されたPascalは初心者にプログラミングを徹底的に叩き込む為、厳密な文法規則を採用しているのを「自由度が低い」として嫌った。

  • 有名どころではC言語開発者の一人、ブライアン・カーニハン博士のWhy Pascal is Not My Favorite Programming Languageと言う論文がある。

  • 一方、PascalユーザーはC言語を「汚い・デタラメ・読みづらい」と批判する傾向があった。

  • 実際、C言語コミュニティではThe International Obfuscated C Code Contest(国際分かりにくいCコードコンテスト)と言うバカみたいな催しがあり、つまり、C言語では「読みづらく書こう」とすればいくらでも酷く書ける、と言う特性が存在する事を意味する。また、熟練Cハッカーでさえ「分かり辛くかつ短く」書くのが偉い、と言うようなおかしな考え方があったりする。一方、Pascalではこう言う事は起こり辛い。

  • 通大の「コンピュータ」のテキストでは

    (Pascalは)プログラミングに対する深い洞察に基づいて設計されていますので、Pascalでプログラムを書くこと自体がプログラミング教育そのものである場合も少なくありません。
    ~中略~
    Pascalで書かれたプログラムは大変読みやすいため解説文書documentとしての価値も高く、研究成果の発表にも多用されています。


    とPascalベタ褒めである。

  • 対するCに付いては、

    Cのプログラムは少し読みにくいのが難点です。

    とアッサリとした記述でまとめてある。

  • 通大の「コンピュータ」のテキストの著者はPascalびいき、である(爆)。

  • Pascal vs. C はヨーロッパ文化 vs. アメリカ文化が見え隠れして面白い。

  • どっちにしても、現代的な動的型付け言語のユーザーに言わせれば目糞鼻糞の討論である(爆)。

  • いずれにせよ、90年代初頭までは大学初年度の情報工学の入門用言語として、Pascalは確固とした地位の一角を担っていて、通大の「コンピュータ」テキストはその時代に書かれたものである。

  • もう一角はSchemeが担っている。また、現代のアメリカではPascalは退場して、代わりにPythonが使われるケースが増えている(なお、日本でも早稲田大学ではPythonが使われている模様)。

  • 当時、SchemeかPascalか、の差を生んだ一番大きな理由は、高額な大型コンピュータを買える予算があったのかどうか、である。

  • Schemeは当時のレベルでは「贅沢言語」だったので、コンピュータのパフォーマンスが鍵を握っていた。一方、Pascalのコンパイラは簡素でコンピュータへの負担がSchemeに比べると少ない。

  • 初期のPascalはJavaのように中間コードにコンパイルするスタイルで、その中間コードは仮想マシン上で動き、適切な仮想マシンさえあれば、どんなプラットフォームでもコンパイル済みの中間コードは動くように考慮されていた。

  • ただし、当時のコンピュータではこの「仮想マシン」スタイルと言うのは負担が大きく、結局このスタイルはほどなく消えて、普通のネイティヴ・コード(機械語でのコード)にコンパイルされるスタイルへと変更されている。

  • この「仮想マシン上での実行」と言うスタイルはコンピュータのパフォーマンスが劇的に進歩した90年代後半まで殆ど用いられていない。端的に言うとJavaの登場まで「死んでいた」。

  • 従って、Javaからプログラミングをはじめた層が「Javaはどんなプラットフォームでも動くプログラムが書けるはじめての言語だ」と勘違いする結果を招いている。もう一回繰り返すが、元々このスタイルはJavaの専売特許ではない。かつてはPascalもそうであった。

  • 他にもPerlをはじめとするスクリプト系言語、と呼ばれるジャンル(Python、Ruby等)も実は内部的には中間コードへとコンパイルされている。

  • SUN(Javaの開発元)が言う"Write once, Run anywhere."と言うのはマーケティング戦略上のコピーに過ぎない(が、Javaユーザーはそれを知らないケースが多い)。

  • Pascalはコンピュータ科学的に考えても文法上、厳密な区分けが存在している。

  • 典型的な例としては値を返すfunctionと値を返さないprocedureが別個設定されている事が挙げられるだろう。こんなしつこい区分けをしてるのは知ってる限りPascalだけである。

  • いきなりC言語を学び出したプログラミング初心者が躓くのが、例えばvoid型の返り値を持つ関数だが、これは初心者にとっては全く意味不明である。

  • 実はこのC言語のvoid型の返り値を持つ関数とはPascalで言うprocedureの事である。Pascalで言うfunctionはこれに当てはまらない。

  • 従って、確かに「コンピュータ科学の基礎を学ぶ」と言う意味ではPascalは優れている。少なくとも、Pascal→C言語とカリキュラムを進める意味に於いては躓きが一番少ないコースだ。

  • 一方、実用的なプログラムを書く上では、一々functionprocedureを使い分ける、ってのは邪魔臭いかもしれない。返り値の型宣言で済ませた方が「書きやすそう」なのは事実である。

  • しかしこれも関数型言語のユーザーに言わせれば五十歩百歩である(爆)。

  • いずれにせよ、Pascalは良く、品行方正で厳格なお嬢様言語と呼ばれたりする。

  • Pascalは初期のApple Macintoshと言うパソコン上において、Apple指定のプログラム開発用言語であった。



    初代Macintosh





  • 従って、Object Pascalへの独自拡張、及びDelphiへと続く道は、元々、Macintosh上で先鞭が付けられている。

  • Delphiの先祖、Turbo PascalがMS-DOS機へ移植された時、その高速なコンパイルにかなりの人間がショックを受けたそうである。

  • Pascalで書かれた最も有名な商用アプリケーションとしては、後にファミコンに移植されてヒットし、また、ドラゴンクエストの元ネタの半分を占める世界最古のコンピューターRPGの一つ、Wizardryが挙げられる。




    Apple II 版 Wizardry (オリジナル)










    Macintosh版Wizardry









  • Wizardryの作者の一人でメインプログラマであるロバート・ウッドヘッドはPascalハッカーだったらしく、Wizardryのファミコンへの移植を打診された時に、

    Wizardryはパスカルでできてるからパスカルの動かないファミコンには絶対移植できない

    難色を示した逸話が残されている。
    (ちなみに、当時のファミコンではアセンブリ言語等の低級言語でプログラムを打つのが当たり前で、C言語等の高級言語がプログラミングに導入されたのはもっと後のスーパーファミコンになってから、しかも後期になってから、である)

  • しかし、実際に日本のスタッフがWizardryのファミコンへのアセンブリ言語での移植を成功させた時、その完成度の高さに舌を巻いた。




    ファミコン版 Wizardry (アセンブリ言語で移植されている)





  • 日本人は凄い。

  • いずれにせよ、Pascalの勉強を頑張ればRPGくらいなら作れる(かもしれない)。

  • 他にも、組版処理ソフトであるTeXは元々Pascalで書かれた作品である。

  • 動的型付け言語ユーザーにとってはPascalはB&D言語の極北とも言える言語である。

  • ここでB&DとはBondage and Discipline、つまり緊縛と調教である。

  • MITの伝統的コンピュータ科学の大学初年度向け入門書である計算機プログラムの構造と解釈では、序文でPascalを次のように評している。

    Pascalはピラミッド - 重い石を定位置へ運ぶ軍隊が作った堂々とした、息もつけぬ静的構造 - を作るためのものである。
    ~(中略)~
    Pascalの過度の宣言的データ構造は、関数の特殊化を惹き起こし、偶発的な協力を不可能または困難にする。



  • H君への手紙: 天才



    また、Wirthという人がいる。いうまでもなく、
    WirthはPascalとModula-2の設計者だ。Pascal
    は教育用の言語としては非常にすぐれたもので
    ある。また、Modula-2はモジュラー・プログラ
    ミングの考え方を一般のプログラマに流布する
    のに大いに役立った。しかし、Wirthはコンピュ
    ータ・サイエンスの天才とはいえない。なぜな
    ら、PascalやModula-2には色気が感じられない
    のである。つまり、真面目過ぎて面白くないの
    である。そのくせ、泥臭いというわけでもない。
    つまり、徹底的に実用的になろうとしているわ
    けでもない。まとめると、馬鹿ではないが、
    「ださい」わりには中身がないといえよう。


    萩谷昌己: 東京大学大学院情報理工情報科学科教授


  • お嬢様、で緊縛と調教なんで良からぬ事を想像しそうだが、ところがどっこい、緊縛されて調教されるのは貴方の方である

  • 従って、Pascalは現代風に言うとツンデレ言語である。

  • PascalはドスケベなM男向けである。

  • 緊縛されて調教されて泣き叫んで喜べ(笑)。

  • 俺には無理だ(謎)。




Emacs ビギナーに贈る、これからバリバリ使い隊!!人のための設定講座 その1。
Emacs(中略)設定講座 その2「elisp のインストールと設定編」。
Emacs設定講座 その3「scratch バッファと eval(評価)」。
Emacs設定講座「キーバインドよ、俺色に染まれ。ア!!」。
もう初心者なんて言わせない、Anything で始まる Emacs 道。
Anything の設定ことはじめ。

0 コメント: