対談にあたり、筧捷彦先生編著の単行本を読ませていただいた。ACMという計算機学会が主催する国際大学対抗プログラミングコンテスト(ACM-ICPC)に関する本である。詳細は省略するが、実際にコンテストに出場した方のコラムも含めて実におもしろい。プログラミングといえば、コンピュータを動かすためのプログラムを組むことと理解されがちだが、もともとの言葉には“計画の立案や作成”も含まれる。であれば、プログラミングがぐっと身近に感じられる。さてその魅力とは。(本紙主幹・奥田喜久男)

201803131223_1.jpg
2017.11.21/大阪大学東京オフィスにて

新設された学科で出会った
恩師とコンパイラ

奥田 先生が書かれた『目指せ!プログラミング世界一-大学対抗プログラミングコンテストICPCへの挑戦』読ませていただきました。大変おもしろかったです。

 それはありがとうございます。

奥田 先生は1968年に東大の工学部計数工学科を卒業していらっしゃるんですが、先生とプログラミングの出会いはなんだったんでしょうか。

 まずはその学科についてお話しさせてください。“計数工学科”って一見“計数”という学問領域があるようにみえるんですが、実は計測と数理という二つの学科が一緒になっているんです。今でも存在している学科ですが、サイトをご覧いただくとユニークな学科名として由来が記述されています。

奥田 何年くらいに始まった学科なんですか。

 昭和でいうと27年とか28年になるかと思います。私はこの学科の数理工学コースをとったのですが、ここですばらしい恩師にお会いしたのです。お一人は近藤一夫先生、もうお一人は森口繁一先生です。

奥田 森口先生は僕のなかでも伝説の先生です。すばらしい先生に出会われたんですね。

 直接聞いたわけではないのですが、近藤先生はせっかく新しい学科なのだから、従来の工学での数学応用とは違うところに踏み出そうと、これまであまり扱われてこなかった幾何学、しかも高度な幾何学を工学にどう使うことができるのかやってみようとおっしゃっていたと。

奥田 いいですねえ。

 それで、近藤先生は助教授であった森口先生に統計とか新しい分野を勉強してほしいということで米国への留学をすすめられ、森口先生は統計で学位を取ってこられたんです。また、米国在住の間にコンピュータというものがさまざまなシーンで活用されていることや、それを使う先にオペレーションリサーチというものがあることを知って帰国されました。ですから教室としてもコンピュータを使うという状況があったんですね。

奥田 先生ご自身はコンピュータというものをごぞんじだったのですか。

 私はね、小学校6年の時にアマチュア無線の試験を受けていてラジオとかをやっていたんです。なので、当時のそういう雑誌『CQ』などを読んでいたのでMITというところで学生がコンピュータというものをつくっているという記事があるのを見た記憶があるくらいで、なんのことだか気にも止めてなかったんです。あ、当時はコンピュータじゃなくて「計算機」と出ていたのだったかな。

奥田 それがいつのまにか……。

 卒業研究の時に森口先生から、「筧くん、卒論何にするの」と聞かれ「まだ何も考えていなくて……」と答えたら、「コンパイラというのをつくりませんか」と。実習でコンパイラは知っていましたが、まさか自分がやるとは思っていませんでしたね。その卒論を仕上げて大学院に進んだ時はFortran(フォートラン)のコンパイラを動くようにしていました。その後、助手時代には学生たちが宿題として書いたプログラムを当時の大型コンピュータにかけて動かしたり、「Algol(アルゴル)N」という日本版のプログラミング言語をつくり出すお手伝いをしたりね。

奥田 本当に日本の草分けですね。

すぐにできないからおもしろい
プログラミングとコンパイラ

奥田 先生が取り組んでこられたコンパイラとかアルゴリズムは、どういうところがおもしろいんでしょう。

 プログラムをつくるというのは絶対におもしろいですよ。

奥田 どこにワクワクされるんでしょうか。

 ある意味私のようにズボラな人に向いているのかもしれません。

奥田 先生がズボラ……?

 数学で何か新しいものをみつけたとしましょう。「もしかしたら、こんなこともいえるかも」と。そうするとそれがいつでも大丈夫だと断言できるためには、自分で検証をしなくてはならない。誰かにどんな屁理屈をつけられてもこれでいいんだといえるように、いくつもの方法で証明をするわけです。そのための計算をするのは自分ですよね。

奥田 あ! ズボラの意味がわかってきました。

 ご推察の通りです。ズボラなゆえに自分がコツコツはやりたくない。コンピュータにやっておけよといったら、やってくれるほうがいいわけです。

奥田 なるほど、それなら便利ですね(笑)。

 ところがね、これがまたある意味数学と同じなんですが、「できた!」と思ってやるでしょ。でも思うようにいかないんです。

奥田 動かないということですか。

 動かないのではなくて、動くんだけどなんだか違うんです。で、「なんで」となる。数学でなら大先生が「それはダメですね」といってくれたりするところを、コンピュータが意図しない動作をする。思うようにいかないから、必死になって考えて「ああああ」とかいいながら気がつく。そこがね、たまらないといえばたまらないわけです(笑)。

奥田 おもしろくなるのはそこですか(笑)

 人間が必死になって理詰めで考えて、「大丈夫、これでいける」と思って仕上げたものが、そうはならないことのほうが多い。でも今度は大丈夫だろうと一生懸命知恵を絞るというやりとりが、実におもしろいんです。

奥田 本当に楽しそうですね。

 自分で考えたことを、これならコンピュータに伝えられそうと思う書き方を決めるのがプログラミング言語。でも自分で勝手に決めたことなのでコンピュータはわかってくれない。コンピュータにわかるようにコンピュータがもっている道具立てで書き直しをしないと伝わらないわけです。

奥田 そういっていただくとわかりやすいですね。

 私の場合、書き直しを自分でやるのは楽しくもうれしくもないから、そこで頭をひねって自分が書いたデータをコンピュータがもっている道具立てで書き直すしくみをまたつくる。これがコンパイラです。でも、それがまた思った通りならない。この重なって二重になった構造がとめどなく楽しいというか……(笑)。

奥田 難しいほうが楽しいということですか。

 そりゃそうですよ。すぐできちゃったらおもしろくもおかしくもないじゃないですか。苦労してトライしてやっとできたから「うふふ」となるわけです。

奥田 スポーツ選手にたとえると、走ることに長けている人、泳ぐことに長けている人というのがありますよね。とすると、プログラミングに長けている人というのは要素としてあるものなんでしょうか。先生の著書を読ませていただいた時に、「皆さん、なんだか似ているなあ」と感じたんですが。

 その本に登場される学生さんや先生方はテイストとして似た傾向はあるかもしれませんが、実際に解きたい問題が何なのか、深めたい対象物が何なのかがそれぞれ違うところから入ってらしたので、その部分については異なると思います。でも、プログラムのなかで仕上げていくのに必要な感覚というか、ものの整理の仕方というのは共通するものをもっていると思いますね。(つづく)
 

ふとした時に手に取る、
お気に入りの1冊

201803131242_1.jpg
『I SAW ESAU』
The Schoolchild's Pocket Book
EDITED BY IONA & PETER OPIE
ILLUSTRATED BY MAURICE SENDAK

 筧先生が収集されている「Nursery Rhyme」はイギリスの伝承童謡。本書は権威者として知られるオックスフォード大学Opie夫妻によるもの。『かいじゅうたちのいるところ』などで有名なアメリカの絵本作家Sendakのイラストがなんとも可愛らしい。
 
心に響く人生の匠たち

 「千人回峰」というタイトルは、比叡山の峰々を千日かけて駆け巡り、悟りを開く天台宗の荒行「千日回峰」から拝借したものです。千人の方々とお会いして、その哲学・行動の深淵に触れたいと願い、この連載を続けています。

 「人ありて我あり」は、私の座右の銘です。人は夢と希望がある限り、前に進むことができると考えています。中学生の頃から私を捕らえて放さないテーマ「人とはなんぞや」を掲げながら「千人回峰」に臨み、千通りの「人とはなんぞや」がみえたとき、「人ありて我あり」の「人」が私のなかでさらに昇華されるのではないか、と考えています。
 
奥田喜久男(週刊BCN 創刊編集長)
 
<1000分の第204回(上)>

※編注:文中に登場する企業名は敬称を省略しました。