パスワードを忘れた? アカウント作成
21556777 story
プログラミング

訃報: Pascal言語設計者ニクラウス・ヴィルト氏 62

ストーリー by headless
訃報 部門より
コンピューターの先駆者で、プログラミング言語 Pascal などを設計・開発したニクラウス・ヴィルト氏が 1 月 1 日に死去した。89 歳だった。家族によると安らかに息を引き取ったという (チューリヒ工科大学のニュース記事The Register の記事)。

ヴィルト氏は 1934 年 2 月 15 日、スイス・ヴィンタートゥールに生まれる。子供時代からテクノロジーへの熱意を示していたヴィルト氏はチューリヒ工科大学を卒業後、1960 年にカナダのラヴァル大学で修士号を取得。カリフォルニア大学バークレー校でコンピューターとプログラミング言語、コンパイラーに出会い、ハリー・ハスキー氏の元でプログラミング言語 Algol 60 の一般化の研究により博士号を取得する。

スタンフォード大学とチューリヒ大学でのアシスタントプロフェッサーを務めたのち、1968 年にチューリヒ工科大学へコンピューターサイエンスの教授として帰り、1999 年まで教鞭をとってスイスにおけるコンピューターサイエンス確立に重要な役割を果たした。

ヴィルト氏はチューリヒ工科大学での 31年間に Pascal のほか、Euler やPL360、Algol W、Modula、Modula-2、Oberon、Lolaといったプログラミング言語を開発し、1984 年にはチューリング賞を受賞。ハードウェアの進化を上回る速さでソフトウェアの低速化が進むというヴィルトの法則や、小惑星 21655 Niklauswirth にもその名を遺す。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2024年01月08日 14時07分 (#4590389)

    C言語でランタイムエラーになるものの多くがPascalではコンパイル時のチェックで引っかかるので助かる
    C言語でデバッガに頼らなければならないデバッグ作業がPascalでは関数の実行経路のトレースバックのチェックで済むことが多いので助かる(言語仕様で規定されているのではないが、Pascal系というかWirth系の言語のコンパイラ作成のお約束になっている機能がいろいろあって助かる)
    Modula-2やOberonもいろいろと勉強になった

    • by Anonymous Coward on 2024年01月08日 14時22分 (#4590394)

      PascalはLL(1)文法なので、文法エラーの指摘がわかりやすいのも助かりましたね。
      初期のCコンパイラの無茶苦茶大量のエラーを解読するのは難しかった。というか、あきらめて最初のエラーだけ取って再コンパイルしまくったり。
      プログラマーとして無能なほどコンパイル回数が多いと誰かが言ってたなあ。

      親コメント
    • by Anonymous Coward

      > C言語でランタイムエラーになるものの多くがPascalではコンパイル時のチェックで引っかかるので助かる

      この部分の意味が判らないのですが、
      Pascal のコンパイラはコードの静的解析を行っていて、静的解析で実行時エラー(ランタイムエラー)が検出できる、ってことですか?

      コードの静的解析がまともに使える様になったのは2010年以降で、1980年代のコンパイラがそこまでの静的解析を実装できていたとは俄かに信じられないのですが
      一体何が「助かる」だったんでしょう?

      • by Anonymous Coward

        当時のC言語は宣言されてない関数も呼べたりして引数の数や型が合わなかったら普通に暴走してたり(今でもできるかも)returnを書き忘れても何の警告も無かったりしたので、そういうのをちゃんと弾いてくれる、程度の意味でしょう。
        程度は低くても静的解析と言えなくもない。

        • by Anonymous Coward

          > 当時のC言語は宣言されてない関数も呼べたりして引数の数や型が合わなかったら普通に暴走

          当時のC言語はプロトタイプ宣言がなく、一方でPascalはプロトタイプ宣言(に準ずるもの)があった、と言う事ですか?

          > 程度は低くても静的解析と言えなくもない。

          プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。

          • by Anonymous Coward

            #4590507 とは別人ですが

            > 当時のC言語はプロトタイプ宣言がなく、一方でPascalはプロトタイプ宣言(に準ずるもの)があった、と言う事ですか?

            そうです。

          • by Anonymous Coward

            >プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。
            プロトタイプ宣言に限りません、C言語だと警告もなく素通しして暴走するけれどPascalだとエラーチェックしてくれるケースがたくさんありました。
            「Pascalは型に厳しい」みたいな話を聞いたこと無いですか?
            今の水準ですと全く厳しくないどころかむしろゆるゆるの部類ですが、CLU経由で各種OOPLに、間接的に関数型言語にも続く「型で静的なチェックを行う」流れを作ったのは間違いなくPascalです。

          • by Anonymous Coward

            >プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。
            プロトタイプ宣言が必須の言語仕様しか知らないとそう感じるだけでは?

            • by Anonymous Coward on 2024年01月09日 11時26分 (#4590721)

              >>プロトタイプ宣言のことでしたら、それは静的解析とは全く別次元の話です。
              > プロトタイプ宣言が必須の言語仕様しか知らないとそう感じるだけでは?

              そうですかね?1995年に書かれた、静的解析ツールに関する論文(結構有名なやつ)でさえ
              - 静的解析ツールのアイデア自体は1970年代からある
              - C言語のプロトタイプ宣言程度の技術は静的解析とは言えない
              と書いてありますよ。

              具体的にはこのpdfの2.1節の後半です。
              https://web.archive.org/web/20110927010304/http://www.ida.liu.se/~TDDC... [archive.org]

              親コメント
  • by Anonymous Coward on 2024年01月08日 14時08分 (#4590390)

    きみがPASCALだと思っているのはTurbo PASCALだ!
    # AWKの話題のときに、みんなGNU AWKの話しかしてなかったからわかる。

    • by Anonymous Coward on 2024年01月08日 14時32分 (#4590399)

      以降の開発ツールに大きな影響を与えたという意味でTurbo PascalとDelphiの存在感はでかい。
      あと昔のMacもPascalが標準の開発言語だったから、そこでPascalに触れた人もいるだろうな。

      親コメント
      • by Anonymous Coward

        Delphiには大変お世話になりました プログラマーだったころ これで数年仕事やってた

    • by Anonymous Coward on 2024年01月08日 14時41分 (#4590400)

      Pascalに触れたのは大学の講義だけで教科書も培風館のやつだったから純正Pascalだ!

      親コメント
      • by Anonymous Coward

        教科書が「データ構造とアルゴリズム」だけど、実機はTurbo Pascalだったような…それで結局「はじめてのPascal」を買わなければならなくなったような…もうはるか昔のことですが。

        • by Anonymous Coward

          処理系は確かSun Pascalでした。なにが違ったかは忘れてしまいましたが、すくなくともTurbo Pascal的なものではなかったはずですね。

    • by AtsushiYamagata (718) on 2024年01月08日 15時34分 (#4590412) 日記

      統合環境、特に描画機能が好きでした。

      親コメント
    • by Anonymous Coward on 2024年01月08日 21時40分 (#4590580)

      UCSD Pascalの方がずっと以前から存在する正統派だよね
      雑誌広告で名前しか知らないけど

      親コメント
    • by Anonymous Coward on 2024年01月09日 11時20分 (#4590719)

      最初に触ったのはUCSD Pascalだったかな。その頃はまだUCSD P systemではなかった。

      親コメント
    • by Anonymous Coward

      FDベースからHDDへの移行期CP/MでSorcimPASCAL。コンパイル時はFDDがガチャンガチャンww。

    • by Anonymous Coward

      不思議なほどコンパイルが速かったですね。
      学生時代の情報処理の講義で使ったのがPC-9801のTurbo Pascalでした。
      処理系がアセンブラで書かれていたのでしょうかね。

    • by Anonymous Coward

      Turbo PASCAL って一時期フリーでダウンロードできてたけど、今はどうなんだろう。
      手元では DOSBox で動かしてみたなぁ。コンパイルの速さは変わらず。

      Pascal と言えば、氏の例の本の第1版では処理系の完全なソースが載ってたとか。
      これの貢献って大きかったのではないかな。当時、日本語の本を探したけど無かった思い出。

    • by Anonymous Coward

      云十年昔にMS-DOSのKT-BBSがPASCAL言語で記述されていて、
      私自身はZ80マシン語からの2番目の取得言語だったからある意味異色存在だったなぁ~

      (最近の人にKT-BBSって言っても理解できないよなぁ‥‥)

      • by Anonymous Coward

        PASCAL言語で記述されたBBSってば、WWIVを思い出すよね。

        W-TERMとかも有った気がする。

        ご冥福をお祈りする。

  • by poly (42427) on 2024年01月08日 14時46分 (#4590401) 日記
    「インターフェース」誌の書評日記で、邦訳書(と云うか出版元)がけなされてたな…。
    # 「読書するプログラマ」には、このくだりも再録されたんだろうか?
    • by Anonymous Coward

      > (と云うか出版元)がけなされてたな…

      「例の本郷」と呼ばれてた会社ですね。
      本自体は名著なのになあ…

  • by Anonymous Coward on 2024年01月08日 16時09分 (#4590428)

    はじめてあれを読んだ時はよくできたジョーク文書だと感心するだけだったが、その後授業でPascalやらされたときに確信した。
    Pascalはクソ。滅ぶべき。慈悲はない。

    なにがクソって、Pascalとかいう聳えたつウンコの根幹を成してる型システム。これ。
    たとえばintをtypedefしてint32という型として宣言したとする、その結果intとint32が各々別の型であると認識されるまでは良い。そこまでは。
    しかし配列をも型とみなしていて、int[32]とint[64]が別種の型と認識されるのは話にならない。
    現代的な文字列型などもないので、すなわちすべての文字列は長さによって別々の型として認識されるということ。
    templateもgenericsもない世界では致命的欠陥。なぜあの言語デザインで総称型を入れようと考えなかったのか?

    細かいこと言やstaticがないとか、LL型ゆえにラベル/定数/型/変数宣言の順で書いて最後に関数の順番で書いてかなきゃないとか、演算子の強さがたったの4レベルしか定義されておらず、その結果(Cと比較してもまったく話にならないほど)評価順序に未定義動作が多いとか、他言語だったら袋叩きにされる要素が他にも色々あるけど、あの型システムのクソさの前ではすべてが霞む。
    一刻も速く滅ぶべき。

    てかなんでN. Wirth死んだ途端に「良い言語だった」とかいってる知能障害がわいてきてんだ?
    あんなもん思い出補正でどうにかなるレベルじゃねーぞ。
    当時、C/C++やる前にまずいっぺんPascal学ばせるという狂ったカリキュラム組まれたら、誰だってLinusよろしくC言語信仰はじめるわって確信できるレベル。
    素のCどころか、K&R Cですら後光がさして見えてくる。

    • by Anonymous Coward on 2024年01月08日 17時07分 (#4590446)

      プロトタイプ宣言の導入されたANSI-C前後以降のCならともかく、
      K&R Cと比べたらPascalの方が優れてる点はいくらでもあったと思うけどな。

      だいたい1970年に仕様が制定された言語に対し、templateとかgenericsとか
      いったい何を考えているのか…

      親コメント
    • by Anonymous Coward on 2024年01月08日 17時13分 (#4590448)

      Pascalが開発された時点では、プラットフォームは非常に多種だったが、標準的なI/Oやモジュール化は一切なかった。
      当初のPascalにはモジュールはなく、I/Oも極めて貧相だった。配列長にはconstで定義した定数を使えるので、必要なら再コンパイルした。メモリも少なくプログラマが完全に把握する必要があった。
      あんたが知らないだけでそのへんが強化された処理系はいろいろある。Cと違い標準的なものが存在しなかっただけ。

      親コメント
      • by Anonymous Coward on 2024年01月08日 17時21分 (#4590451)

        不定長の配列を手続きに渡すには、引数としてアドレスと長さの2ワードが必要になる。これを嫌い、1引数1ワードの単純な実装を指向したという事情もある。
        まず制約の強い設計にし、知見が得られてから緩めるというのは正しい方針だ。制約を強めることは事実不可能で、MSが強力にコントロールしているC#ですらnull非許容型の導入まで20年もかかったし、他の有力言語はできていない。

        親コメント
        • by Anonymous Coward

          言いたいことは概ね同意するけど、null非許容型は制約を強める方向の変更ではないのか?

          おまけ: null参照の考案は10億ドル単位の過ち? [developers.srad.jp]

          • by Anonymous Coward

            Microsoftですら制約を強める方向の変更を導入するには20年も掛かるほど困難だったと言いたいんでしょ。そんなに読解が困難な文章か? 確かに言われてみたら不可能じゃなかったのかよとツッコミたくなるが

      • by Anonymous Coward

        まあ二度と使わないと決めたもののその後を知らないのは自然ではある

      • by Anonymous Coward

        標準的なI/Oが無いとか言いつつプログラムの最初に
            program foo (input, output);
        とか書かせるとか、writeが標準手続きだったりと今となっては
        あまりよくないところがあるのは事実。

        そのあたりをPascalとして機能を増やして直すよりもModula-2として
        新たにちゃんとしたのはある意味正しいやりかただったとは思う。
        これだってまだ70年代の言語なのでここ30年ぐらいで当たり前に
        入っている機能があるわけではないけどね。

        ちなみにStandard Pascalは80年代にはISOやらANSIで規定されているし
        90年の改訂版はJISにもなっている。まあTurbo

    • by Anonymous Coward on 2024年01月08日 17時25分 (#4590456)

      極めて初期の段階で使わされた歴史の証人の方だったりします?
      オープン配列やマジック関数、汎用の文字列型(今でもPascal文字列と呼ばれている最大255文字のあれ)等々はTurboは勿論他の処理系でも早くから導入され一部はISO Extended Pascalのような規格化もされております。
      ただ、他の方が書かれてますように処理系によって微妙に違って統一されてないのがネック。

      親コメント
    • by Anonymous Coward on 2024年01月08日 17時47分 (#4590466)

      当時の貧弱な PC の能力で、構造化言語も確立されてなく、ましてオブジェクト指向など
      影も形も無い時代に良くやったほうだと思う。

      ラベル/定数/型/変数宣言の順で書いて最後に関数の順番で書いてかな

      これはもしかしたら Turbo PASCAL のせいかな。あれはコンパイルを 1 パスでやるために色々と制約を
      つけてた。各種宣言の順番もそう。

      そのせいで未だに main() を最後に持ってくる習慣が抜けない。

      親コメント
      • by Anonymous Coward

        VBAもそんな感じですね。
        ライブラリヘッダやサンプルコードはその方が読みやすいと思います。
        DRYの原則に従って書いていけばその形になっていくし。

    • by Anonymous Coward on 2024年01月09日 8時28分 (#4590669)

      Pascalはクソと感じる事を否定する気はないし、実際に問題は多い。

      でも本当に「本物のプログラマはPascalを使わない」を理解している人が
      これを示した上でPascalにtemplateもgenericsが無いと文句を言う筈がない。
      単にPascalを批判する事に権威を与える為に適当に引っ張ってきてるだけ。
      おそらくはPascalを批判している有名な文書ぐらいの認識なんだろ。

      親コメント
    • by Anonymous Coward

      道具は選びましょう。
      道具のひとつとして、いいことがあったという話ですよ。
      学部の課題レポートで数時間使ってみるにはよかったという意味じゃないかなあ?
      人生で二度と使わない言語で課題をやるならCよりPascalはかんたんでいいかもしれないよ。

    • by Anonymous Coward

      随分長文だけど、何か元ネタのテンプレがあるのかな

      Wirth本人はPascalに満足してないからModulaやOberon作ったろうけど、Pascalほど流行らなかったね

    • by Anonymous Coward

      クソ言語仕様な根幹のおかげでワンパスみたいな恩恵をもたらし
      LLも文系中心に支持を得られた。
      頭ん中の整頓方法次第で受け入れ方も違うからね。

      • by Anonymous Coward

        言語仕様?
        実装仕様?

    • by Anonymous Coward

      その昔、大学ではFortranとPascalを勉強したような。
      Fortranの方が便利というか、Pascalは面倒くさいという印象だったかな。

    • by Anonymous Coward

      80年代初頭Pascalで他言語インタープリターを書くのが流行りだったな。

typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...