無料で楽しむクラシック

パブリックドメイン・クラシックというサイトがはてなブックマークで大人気のようですが、無料で楽しめるクラシックはそれだけではありません。ということで音楽から楽譜まで、無料でクラシックを楽しめるサイトを集めてみました。

パブリックドメイン

パブリックドメイン・クラシック

はてなブックマークで大人気の冒頭で紹介したサイトです。シンプルな作りですが、作曲家ごとに音源がまとめられているので非常にわかりやすくなっています。パブリックドメインゆえ音源は古いのですが、歴史的に重要な演奏などもあり、初心者から年季の入ったファンまで楽しめるのではないかと思います。

クラシック音楽へのおさそい〜Blue Sky Label〜

こちらもパブリックドメインの音楽が聴けるサイトです。音源は作曲家、カテゴリ、演奏家ごとに整理されているので非常に便利です。こちらも歴史的に重要な演奏がてんこ盛りです。また管理者であるyungさんのエッセイや、訪問者のコメントなどもあり、クラシックを幅広く楽しめるサイトになっています。

インターネットラジオ

クラシック・ラジオ [クラシック音楽のインターネットラジオ局]

海外の放送局を網羅的に紹介したサイトです。放送局ごとに音質や番組の評価の他、管理者の方の感想があるので非常に便利かつ見やすいサイトになっています。iTunesなどの適当なアプリケーションをインストールしたうえで、右側のリンクをクリックすれば放送を聞くことができます。

海外ラジオの音楽番組をオンライン放送で聴こう(まとめサイト)
海外ネットラジオのクラシック音楽番組

こちらも海外のインターネットラジオ局の紹介サイト。地域ごとに分類されています。

オペラキャスト

インターネットでオペラを聴こう、というブログです。頻繁に更新されており、またオペラ関連の記事も多いのでオペラファンは必見です。

オペラ

オペラ対訳プロジェクト - トップページ

オペラを聴くときに問題となるのは、なんと言っても言葉の壁です。最近の公演では舞台脇に字幕が設置されることが多くなりましたが、インターネットで聞く際にはそんなものはありません(または訳が付いていないCDもあります)。そんなときにはこちらのサイト。このサイトでは有志の方々がWikiを活用して、オペラの台本を日本語に翻訳されています。

Opera Mania!

予備知識がなくてもオペラは楽しめますが、予習しておけばさらに楽しめること請け合い。こちらのサイトではオペラのあらすじやオペラ用語、オペラ作曲家がわかりやすく紹介されています。

楽譜

IMSLP/Petrucci Music Library: Free Public Domain Sheet Music

音楽の知識がなくてもクラシックを楽しむことはできます。しかし音楽の知識があれば楽しみ方が増えることは間違いないでしょう。そんな音楽の知識があるという人には上記のサイトをオススメします。こちらのサイト(国際楽譜ライブラリープロジェクト)ではパブリックドメインの楽譜が数多く(現時点で5万以上!)公開されています。クラシックを楽しむ際のお供にいかがでしょうか。

The Mutopia Project
VARIATIONS Prototype: Online Musical Scores

こちらもパブリックドメインの楽譜を公開しているサイトです。

Free Choral Music Sheet MIDI MP3 Files

こちらは少し変わって合唱曲の楽譜を公開しているサイトです。

五線譜

Free printable staff paper @ Blank Sheet Music .net

音楽にとって五線譜はなくてはならないもの。そんな五線譜もフリーで済ませちゃいましょう。こちらのサイトでは自分で五線譜を編集して印刷することができます。

Music Paper

こちらもフリーの五線譜。用途に応じた複数の五線譜が公開されています。

『気圧計の話』、あるいは問題の境界を確定すること

はてなブックマーク - [PDF] ある物理学生の回答 「気圧計を用いて,高い建物の高さを決定することができることを示しなさい」

しばらく前に話題になった「気圧計の話」ですが、すでに各所で指摘されているように、この話の大元はワシントン大学セントルイス校の物理学教授であるアレクサンダー・カランドラによる『気圧計の話』(The Barometer Story)です。

The Barometer Story by Alexander Calandra

id:machida77さんによれば、カランドラ教授はこの「気圧計の話」で、当時の「新しい数学」教育に対する批判を意図していたようです。

この時点で、この質問に対する型にはまった答えを実際に知らないかどうか学生に尋ねました。

彼は、知っていることを認めたが、主題の構造よりも、科学的手法を使った考え方や新しい数学によくある衒学的な方法を使って主題の深く内的な論理を探ることを教えようとする高校や大学の教官にうんざりさせられたと言いました。

彼はこれを念頭に、学問的な冗談として、スプートニク・ショックを受けたアメリカの教室に挑戦するため、スコラ哲学を蘇らせることを決めたのです。

(かなり雑な訳)

この部分こそ、タイトルの由来であり、大元の記事でCalandraが書きたかったことだろう。

そして、ここで注目すべきは、「新しい数学」の手法は「衒学的な方法で主題の深く内的な論理を探ること」で、それは「主題の構造」を探ることより価値がないものだと示唆していることだ。

「気圧計の問題」の意図 - 火薬と鋼

この「新しい数学」は上記引用にもあるように、スプートニク・ショックにより生み出されたもので、教育の早い段階から抽象的な数学的構造を導入し、数学能力向上を目指したカリキュラムです。

新世代の技術者を養成するため、様々な教育計画が開始された。この中で今日もっとも記憶されている、また注目すべきものは、初等教育における算数教育を根本から改革し、集合論や十進法以外の位取りなど抽象的な数学的構造を早い年齢から導入してアメリカ人の数学能力向上を目指したものの教育現場に混乱を起こした「新しい数学(New Math)」というカリキュラムであろう。

スプートニク・ショック - Wikipedia

集合論や抽象的な数学的構造を基礎にしているという点では、この「新しい数学」は多分にブルバキの影響を受けたものですが、ブルバキの「数学原論」が肥大化、抽象化の末に頓挫したように、有用性を無視したその抽象性によりこのカリキュラムは現場に混乱をするだけに終わりました。


さて、この「気圧計の話」は、マレー・ゲルマンの著書『クォークジャガー』の中でも、「問題の定式化」という文脈で引用されています。

問題を定式化するには、その問題の真の境界を見つけることが必要である。

[…]

次ページに描かれた図の有名な問題について考えてみよう。「一筆で、できる限り少ない数の直線で、九つの点すべてを結べ。」多くの人は、まず外側の点を結んで四角く線を引かなければならないと考えるが、そのような制約は設問の中に含まれていない。四角形内で線を引こうとすると、五本の線が必要となる。もし四角形の外にまで線を延ばしてもよいと考えれば、図に示したように四本の線で結ぶことができる。もし、これが現実世界の問題であれば、それを定式化するにあたって肝心なことは、線を四角形内に限る理由があるかどうかを明確にすることだろう。これが、「問題の境界を確定する」ことの重要な一部である。

もし、設問が四角形の外まで線を延ばすことを認めるのであれば、それはたぶん、同様にほかの種類の自由も認めている。紙を折り曲げすべての点を一列に並べ、それらすべてを一本の線で結ぶ、というのはどうだろうか?

[…]

問題の境界を確定することは、問題を定式化する上でいちばん重要な点である。この点が、ワシントン大学セントルイス校の物理学教授アレクサンダー・カランドラ博士が書いた『気圧計の話』のなかで、もっとはっきりと指摘されている。

(以下、『気圧計の話』の引用)


クォークとジャガー―たゆみなく進化する複雑系』pp.328-329

「問題の境界を確定することは、問題を定式化する上でいちばん重要な点である」、これは物理学に限らず、あらゆる議論に言えることですね。


クォークとジャガー―たゆみなく進化する複雑系

クォークとジャガー―たゆみなく進化する複雑系

世界を近づけたメートル法

征服者はいつかは去る。だが、この偉業は永遠である。

ナポレオン・ボナパルトが『メートル法の起源』に贈った言葉

長さや重さ、時間といった概念はこの世界を理解するためになくてはならない存在です。これらの概念は私たちの生活とあまりにも深く結びついているので、それらがない世界など想像もつかないでしょう。長さ、重さ、時間の概念なしに、あらゆる商取引、科学の営みなど成立しようはありません。長さや重さ、時間を支配することはすなわち世界を支配することであり、歴史上、多くの為政者たちが権力の象徴として、様々な度量衡や暦法を制定してきました。

現在では統一された度量衡として、私たちはあたりまえのようにメートル法を用いていますが、それ以前は地域ごとに統一性に欠けた数多くの度量衡が用いられており、物や情報の交換の際に大きな障害となっていました。メートル法が制定された国、フランスにおいては次のような有様だったのです。

学者(サバン)たちは、至るところで重さや長さの単位がまちまちなことに辟易していた。18世紀の測定単位は、国ごとに違うだけでなく、国の中でもまちまちだった。おかげでコミュニケーションや商業は滞り、国を合理的に統治することができなかった。また、学者たちが自分の研究成果を比較し合うこともままならなかったのである。革命前夜にフランスを旅したあるイギリス人は、フランスの単位の不統一は責苦に等しい痛感した。彼が言うには、「フランスでは、測定単位がとてつもなく混乱しているおかげで、理解できないことばかりだ。州ごとに違うだけでなく、地域ごと、いや、ほとんど町ごとに違う単位を使っている……」。当時の推計によると、アンシャン・レジームのフランスには、約800種類の重さと長さの単位が使われていたが、同じ名称だが実際には異なっていた度量衡をきちんと区別すると、25万種類という驚異的な数にのぼったという。

万物の尺度を求めて―メートル法を定めた子午線大計測』p.15

25万種類! あまりにも当たり前にメートル法の恩恵を授かっている現在の私たちからすれば、かつて同じ国の中で25万種類もの度量衡が存在していたという事実には目を疑うほかありません。理性に重きを置く啓蒙主義の時代に入り、このように混乱した度量衡を統一しようという気運が高まります。このような試みもフランス革命がなければ幻想で終わっていたかもしれません。革命初期の1790年、国民公会は全国共通の度量衡を制定する権限を科学アカデミーに与えたのです。

これに取り組んだ学者(サバン)たちは勇敢にも、自分たちが置かれている歴史的な状況にとらわれずにより大きな視野から考えて、この度量衡という標準を、永続性のある基礎の上に作ることを決めた。一連の測定単位は、「恣意的なものを一切含まず、地球上に存在するいかなる人々にも特別な利益をもたらすことがないように」選ぶことを誓った。そして彼らはこの新しい測定単位を、地球そのものの大きさに基づいて決めることにしたのである。

万物の尺度を求めて―メートル法を定めた子午線大計測』p.35

委員会はこのほかにも「北緯45度の地点で、半周期が1秒になる振り子の紐の長さ」を1メートルとして採用する案を検討しましたが、重力加速度が場所によって違い、また長さの定義に時間を使わなければならないということで却下されました。以上の決定を受けて、新しい長さの単位「メートル」は、地球の北極点から赤道までの経線の距離の1/10,000,000とされ、ダンケルクからパリを通り、バルセロナに至るまでの子午線を基準に1メートル求められることとなりました。この子午線の長さを測るという重要な使命が二人の学者に下されました。一人はジャン=バティスト・ジョゼフ・ドゥランブル。彼は一歳の頃に天然痘に罹り、あやうく視力を失うところだったといいます。天文学に触れたのは30代半ばで、科学者としては遅咲きといえるかもしれません。彼はパリを出発し、北へ向かいます。使命を担うもう一人の学者はピエール=フランソワ・アンドレ・メシェン。メシェンはドゥランブルとは違い、少年時代から大好きな天文学に親しみ、若くしてフランスを代表する天文学者の一人となります。彼はパリを出発し、南へと向かいます。彼らはともにジョセフ=ジェローム・ルフランセ・ド・ラランドという有名な天文学者の弟子でした。

ラランドを知らない者はいなかった。彼はフランスでは、科学の紹介者として第一級の人物であり、あらゆる偏見を敵とみなした。無神論者であると公言してはばからず、蜘蛛恐怖症はばかげていると示すために蜘蛛を食べた。ドゥランブルに出会う少し前には、彗星が衝突して地球が破壊される確率を計算して、パリを恐怖に陥れた。彼は醜い小男で、虚栄心が恐ろしく強かった。自分はソクラテスと同じぐらい醜男だと、よく自慢していた。世界最高の天文学者でなかったとしても—彼自身はそう思っているように見えることが多かったが—、世界で最も有名な天文学者であることは疑いなかった。

万物の尺度を求めて―メートル法を定めた子午線大計測』p.33

彼らは1792年6月にパリを出発します。当初、この測量は1年間を予定していました。しかしこの大計測は困難を極め、実に7年近い期間を要することになります。パリではルイ16世が処刑され、ロベスピエール率いるジャコバン派による恐怖政治が敷かれていました。折しもフランスは彼らの出発とほぼ時を同じくして周辺諸国との革命戦争に突入し、奇妙な測量機器を携えた彼らはスパイと間違われて逮捕され、時にはギロチンの露と消えそうになったこともありました。しかし、彼らが直面した困難はこのような外的なものだけではありませんでした。測定にはつきものの誤差が彼らの前に立ちはだかったのです。

メシェンはバルセロナとモンジュイで測定したデータが互いに矛盾していることに気づき、その几帳面な性格から矛盾を隠すために意図的な隠蔽を行ってしまいます。彼はこのことに非常に苦しみ、発狂の寸前まで追い込まれ、最後にはこれを訂正しようと新たな測定を行っていた最中に亡くなってしまいます。ドゥランブルがこの隠蔽に気づいたのはメートル法が施行された後で、彼はこの事実をメシェンの日誌に告白し、以後これを封印します。

メートル法制定という同じ使命を負って測量を行ったメシェンとドゥランブルですが、彼らの「測定」に対する態度は大きく違っていました。メシェンは上述のように、いわば臆病なまでの完璧主義のためにデータの隠蔽を行ってしまいます。これに対しドゥランブルは、後に検証が可能なように誤差を含むあらゆるデータ、計算の記録を残しています。メートル法制定のために行われたこの一連の大計測は、現代の科学者に多くの教訓を与えてくれます。


メートル法制定のために尽力した学者はメシェンとドゥランブルだけではありません。ナポレオンをして「誇り高き金字塔」とまで言わしめた数学者、ジョゼフ=ルイ・ラグランジュもそのうちの一人です。メートル法が10進数を元に組み立てられたのは彼のおかげといえるでしょう。

革命期におけるラグランジュのもっとも重要な業績は、度量衡におけるメートル法の完成に指導的役割を果たしたことであろう。10の代わりに12という数が数構成の底数として選択されなかったのは、彼の皮肉と常識によるものである。12の≪ごりやく≫は明らかであって、今日でも狂信者の群れと異ならない熱心な主張者は、人を感動させるような論文をものして、宣伝している。10進記数法の上にさらに12進法をかさねるのは、五角形の穴に六角形の釘を打ち込むのと変わらない。12進法の不合理を、どんな変屈者にもわからせるため、ラグランジュは、それよりよいものとして11進法を推奨した。どんな素数を底数にしても、すべての分数が同分母の形で表されるという利点がある。それに反して、12進法の短所は数多くあり、短除法を理解しているのものには、だれにでも明らかである。そこで、委員会は10進法の採用を可決した。

数学をつくった人びと〈1〉 (ハヤカワ文庫NF―数理を愉しむシリーズ)』p.329

ラグランジュラヴォアジエがギロチン台に送られたときにはその愚行に激怒し、過激化する革命家たちにこう言ったとされています。「もし本当に偉大な人間精神をみたいと思うなら、ニュートンが白光を分析したり、宇宙のヴェールをはいでいる書斎にはいってみたらよい。」


革命政府は旧来の因習から人を解放し、合理性を追求するため、メートル法の制定以外にも、通貨を10進化し、暦を10進化し、角度を10進化し、時間を10進化します。これらのうち成功を収めたのは、メートル法と通貨の10進化で、その他はフランス革命暦グラード十進化時間として、歴史の資料室に眠っています。


今日では圧倒的成功を収めていると言っていいメートル法ですが、1801年にフランス全土で義務化されてからもその受容には長い時間が必要とされました。たとえばフランスはメートル法を生んだ国ですが、メートル法を拒否した最初の国でもあります。1812年、ナポレオンがメートル法を廃止し、古い度量衡を復活させたのです。その後フランスではようやく1837年にメートル法が復活し、1840年には義務化されます。1867年には、度量衡の不統一に悩まされていた各国の学者がパリ万国博覧会を機に集まり、メートル法により世界の単位を統一する決議を行いました。1875年にはメートル条約が締結され、19世紀末から20世紀を通して徐々に加盟国を増やしていきます。

日本は1885年にメートル条約に加盟し、1893年から施行された度量衡法においてメートル法が採用されますが、この法では尺貫法も同時に認めており、この後しばらく二元的な単位体系が運用されることとなります。1921年にはメートル法に一本化するために改正法が公布されましたが、国粋主義者の反対にあい、その後のナショナリズムの台頭とともにその施行は無期延期となります。1951年には計量法が公布されてようやく度量衡はメートル法に一本化されることとなり、1966年から全面的に実施されることとなりました。1885年の条約加盟から実に80年という年月を要しています。


4月11日は、メートル法を基本とする改正・度量衡法が公布されたメートル記念日です。メートル法制定という大事業のために尽力した学者(サバン)たちに思いを馳せてみてはどうでしょう。


万物の尺度を求めて―メートル法を定めた子午線大計測

万物の尺度を求めて―メートル法を定めた子午線大計測

数学をつくった人びと〈1〉 (ハヤカワ文庫NF―数理を愉しむシリーズ)

数学をつくった人びと〈1〉 (ハヤカワ文庫NF―数理を愉しむシリーズ)

厳密化の代償

(以下の記事は2006年2月9日に書いたものです)

しばらく前に「dxとdyの解析学―オイラーに学ぶ」という本を読んだので、今回はそれに関した話題です。

解析学微積分学)を学ぶときに誰もが感じるであろう「dx、dy とは結局何なのか」という疑問が歴史的な観点から説明されていて、大学初年度でεやらδやらの微積分の講義を、首をひねりながら聞いていた人にはお薦めです(もちろん私もその一人ですが)。

今日、高校や大学で学ぶ解析学コーシー以来、数々の数学者の手を経て厳密化されたもので、そのような解析学では dx や dy は単独では意味を持たず、dy/dx ( =f'(x) ) が導関数として定義されているにすぎません。積分記号の中に現れる f(x)dx も分離不可能な記号なのです。にもかかわらず、実際の計算では dy/dx を分数として扱ったり、dx や dy を無限小量として面積や体積を求めています。なぜこのように理論と応用との間に大きな溝ができてしまったのか、「dx と dy の解析学」では関数の概念が突出して一般化されたため、それに適合するように解析学も厳密化せざるを得なくなったためとしています。

たとえばオイラーは関数を次のように定義しています「ある変化量の関数というのは、その変化量といくつかの数、すなわち定量を用いて何らかの仕方で組み立てられた解析的表示のことをいう」。つまりオイラーのいう関数とは a+3x といった既知の変化量から新たな変化量を構成する手続きのことなのです。

しかし時代とともに関数の概念も一般化され、ディリクレの時代に至って「変数 x の個々の数値に対応して、それぞれ変数xの数値を確定すべきある一つの基準が与えられたと仮定するとき、y を x の関数といい、y=f(x) などと書く」と定義されます。つまりこの定義によれば関数はもはや上述の a+3x のように何らかの式を用いて表示される必要はないのです。そのため、変化量という概念が変数に取って代わり、微分計算においては後述する微分ではなく微分係数が全面に押し出されます。

オイラーの時代では dx、dy とはそれぞれ x と y の微分と呼ばれる無限小量であり、dy/dx は微分商と呼ばれる有限確定値なのです。微分計算というものは本来、ある変化量 p に対してその微分 dp を求める方法で、また定積分とは無限小量 f(x)dx を全領域にわたって足しあわることに他なりません。

  1. da=0
  2. d(ap)=adp
  3. d(p+q+r+s+\dots)=dp+dq+dr+ds+\dots
  4. d(pq)=pdq+qdp
  5. d\frac{p}{q}=\frac{dp}{q}-\frac{pdq}{q^2}

微分の公式(a は定量、p、q、r、s は変化量)

今日の微分計算においては微分そのものではなく、微分係数を求めることがその主役となっていますが、微分係数というのは本来、微分商として認識されていたのです。オイラーの時代(あるいはそれ以前の)の数学者たちには微積分学の基本定理も「有限変化量の微分を作り、その微分を寄せ集めるともとの有限変化量にもどる」、「微分を寄せ集めて有限変化量を作り、そのまた微分を作るともとの微分にもどる」という半ば自明なこととして認識されていましたが、解析学の厳密化に担って導関数と定積分の概念が剥離したために、両者の関係を記述する基本定理が近代解析においてはじめて「基本定理」になり得たのです。

ニュートンライプニッツ、あるいはベルヌーイ一族、オイラーダランベールらが活躍した解析学(無限小解析)の黎明期においては、「無限小量」という概念に基づき、重要な発見が次々になされました。無限小量という、いわば「いいかげん」な概念に対するバークリー僧正による批判もありましたが、直感的であるが故に理解が容易で、なおかつ強力な無限小解析は、様々な問題に応用され大きな成功を収めます。無限小解析の基礎に関しては、ダランベールの言うように「前進せよ、されば信念は訪れん」といった状態だったのです。

厳密性を重んじる近代的な数学では、定義あるいは公理を出発点として理論を構築していきます。かつては無限小解析と呼ばれた解析学も、コーシー、ディリクレ、ワイエルシュトラス、リーマン、デデキント等多くの数学者たちの努力により、ライプニッツ以来用いられてきた無限小量という曖昧な概念の放逐に成功しました。しかしながらそのような厳密化には「理解の容易さ」という大きな代償がつきます。

発見に続く理論の厳密化の過程で、発見が定義とされ理論そのものの透明性は増す一方でその本性が見えにくくなってしまうのです。現在ではその存在が見えにくくなった本性をつかむためには、一度過去の大先達たちに目を向けてみるのもいいのではないでしょうか。


dxとdyの解析学―オイラーに学ぶ

dxとdyの解析学―オイラーに学ぶ

発見の必然性

(以下の記事は2005年10月2日に書いたものです)

天才はいつの時代でも世間に認められないのが相場のようで、科学史をひもとけば、自分の業績が認められないまま失意のうちに死んでいった英雄たちが数多くいることがわかります。地動説のために当時の権威と闘ったコペルニクスガリレオなどはもっとも有名な例でしょう。数学史に目を向けても、フランス学士院に提出した論文が二度にわたって紛失され、受理された論文も理解されないまま、それが遠因となって決闘で死んでいったガロア、当時の数学界の重鎮、クロネッカー集合論についての研究を執拗に非難されて精神を病み、サナトリウムで生涯を終えたカントールなど、枚挙にいとまがありません。優れた数学者であり、クラインの壺で有名なフェリックス・クラインは『クライン:19世紀の数学』の中で、新しい思想を貫き通すには相当の苦労を要すると述べています。

新しい思想を見つけ出す幸運な人にとっては、それがいかにして既知のものから生まれ、どのような形態をとるかということはきわめて明瞭だから、世間に公表する場合に、疑惑や疑念に対する防御が不十分なのであろう。発見者にはそのような疑念が起こらず、自分自身がそれを克服する必要がないからである。しかし、目の前に完成した形が突然現れ、存在の権利を主張される第三者にとっては、彼ら自身が創造力をもっていたとしても、発見者の道に追随することは難しい。その道は発見者の個性にふさわしいのであって、彼らの個性には合わない。


クライン:19世紀の数学』 p. 154

このような世間からの批判をかわすために、自らの業績を発表するとき慎重な態度を取る研究者も少なからずいます。そのような研究者の典型例はなんといってもガウスでしょう。前にも述べたように、ガウスは学位論文で代数学の基本定理を証明するにあたり、複素数の概念を巧妙に隠していましたし、非ユークリッド幾何学の発見についても、「ボイオチア人(愚者)の叫喚」を避けるために、文通相手に対して絶対に秘密にしておくようにと何度も要請しています。他に有名な例を挙げると、マクスウェルは電磁気理論の体系化にあたり、磁場の変化による誘導電流の発生を今日のような純粋に現象論的な形式で表現せず、媒質の回転部分の間に、摩擦の緩和のために小さな球がはめ込まれてる力学モデルで説明しています。マクスウェルがこの論文を発表した19世紀後半は、物理現象は力学モデルで説明されるべきものだという意見が支配的な時代であったからです(このような意見を持った物理学者の代表として、ケルヴィン卿ことウィリアム・トムソンがいます)。

ところで、このような天才たちの革新的な面が強調される一方で、自ら創造したものからの結論を引き出すことができずに、時代に取り残されていく天才たちも少なくありません。クラインはそのような例としてローレンツを引き合いに出します。マクスウェルの理論からは光は電磁波であることが演繹的に導けますが、電磁波が波である以上、空間には光を伝える何らかの媒質(エーテル)が存在するはずだと当時の物理学者の多くはそう考えました。ところが有名なマイケルソン・モーリーの実験エーテルの存在が否定され、電磁気学古典力学との整合性を保つために、ローレンツは物体には運動方向に縮むという仮説(ローレンツ収縮)を提唱します。ここまでくると、相対論まであと一歩というところなのですが、ローレンツ自身は古典力学にこだわるあまり、空間や時間といった物理学における基本的な概念が変更されなければならないということに気づかず、相対論の論文を黙殺していた時期もありました。そして相対論を完成させた当の本人、アインシュタインも、自身の光量子仮説の帰結である量子力学を認めることができず、ボーアらと学問的に対立することになります。

数学の教科書をめくってみると、微積分学などはニュートンライプニッツがいなかったら成立していなかったような気がしてきますが、ニュートン自身が言うように、彼に先立つ先人たちの業績があったからこそニュートン(とライプニッツ)の微積分学があるのです。求積法としての積分法は遙かアルキメデスの昔から知られていましたし、曲線の接線の傾きを求めるという意味での微分法はフェルマーによってほぼ完成されています。微積分学の基本定理もニュートンの師であるアイザック・バローにより幾何学的な方法で証明されています。ニュートンライプニッツはそれらの最後の仕上げを行ったのです。そしておそらく、ニュートンライプニッツ微積分学を完成させなかったとしても、数十年以内には他の誰かが完成させていたことでしょう。

歴史が、そしてローレンツアインシュタインの例が示すように、いくら天才といっても彼らの業績はその時代と切り離して考えることは不可能です。革新的なアイディアは、それに先立つ様々な人の業績があって初めて成り立つもので、時が至れば必然的に世に出てくるものではないでしょうか。ガウスが自らの業績を発表しなくても、アーベルヤコービが楕円関数を発見したように、あるいはボヤイロバチェフスキーが非ユークリッド幾何学を発見したように。


クライン:19世紀の数学

クライン:19世紀の数学

The Story of Mel

(以下の記事は2006年3月5日に書いたものです)

ハッカー界に伝わる英雄叙事詩The Story of Mel」の翻訳です。有名な割に Web 上で読める日本語訳がなかったので訳してみました。誤訳や間違いはコメント欄で指摘してくれれば幸いです。

    • -

プログラミングの硬派な面について捧げられた最近の投稿で、
次のような率直で大胆な宣言がされた:

本物のプログラマは FORTRAN で書く

恐らくいまならそうだろう
ライトビールと電卓と”ユーザフレンドリ”なソフトウェアが支配する
この堕落した時代では
しかし古き良き時代、
”ソフトウェア”という言葉が滑稽に聞こえ
本物のコンピュータがドラムと真空管でできていた時代、
本物のプログラママシン語で書いた。
FORTRAN でない、RATFOR でもない、
アセンブリ言語ですらない
マシン語で。
生の、何の飾りもない、
謎めいた16進数で
直接。


すべての新しい世代のプログラマ
この栄光ある過去を知らずに育たぬよう
私には世代を乗り越え、最善を尽くして
本物のプログラマがどのようにしてコードを書いたかを
語るべき義務がある。
彼をメルと呼ぼう、
それが彼の名だったからだ。


メルと初めてあったとき、私はロイヤルマクビーコンピュータという
今はもうなき、あるタイプライタ会社の子会社に就職したときだった。
当時 LGP-30 という
小さくて安い(当時の基準で)、
ドラムメモリのコンピュータを作っていて、
大幅に改良されたRPC-4000 という、
新たな機種の製造を開始したばかりだった
大きくてより優れた、速いドラムメモリのコンピュータだ。
コアメモリは高すぎて、
いずれにせよここでは使われなかった。
(君たちがこの会社やコンピュータを知らないのはこのためだろう)


私はこの新しくてすばらしいコンピュータのための
FORTAN コンパイラを書くために雇われていて
この驚異の世界へのガイド役がメルだった。
メルはコンパイラを是認しようとしなかった。


「プログラムが自分自身を書き換えられないのならば」*1
彼は尋ねた、「そんなもののいったい何がいいんだ?」


メルは社内でもっとも有名なプログラムを16進数で書いた。
それは LGP-30 上で動き、コンピュータショーで
将来の顧客を相手にブラックジャックをやるプログラムだった。
その効果はいつも劇的だった。
どのショーでも LGP-30 のブースはいっぱいで、
IBM のセールスマンはそこら辺でおしゃべりをしながら立っていた。
このプログラムが本当のところコンピュータの売り上げに貢献したかどうかは
問題にはならなかった。


メルの仕事はこのプログラムを RPC-4000 向けに書き直すことだった。
(移植?なんて意味だい?)
この新しいコンピュータは 1+1 アドレッシング方式を採用していた、
マシン命令ごとに、オペコードと必要なオペランドのアドレスに加えて
回転するドラム上で次の命令がどこに位置しているかを示す
2番目のアドレスが含まれていた。


現代的な言葉で言えば
すべての命令の後ろに GO TO がくっついているといえよう。
これを Pascal のパイプに入れて燻らせればよい。


メルは RPC-4000 を愛していた
自分のコードを最適化できたからだ。
ドラム上にうまく命令を配置して
ひとつのジョブが終わったと同時に、
次の命令がちょうど読み取りヘッドの真下に来ているという具合だ。
このような仕事を行う”最適化アセンブラ”というものがあったが
メルはこれを使うのを拒否した。


「君は最適化アセンブラがどこに何を配置するかわからないだろ」
彼は説明した、「そんなものを使うと別々の定数を使うことになる」


私は彼の言わんとすることを理解するまで長い時間がかかった。
メルはすべてのオペコードの数値を知っており、
自分自身でメモリ番地を割り当てていた
彼が書いた命令はすべて数値定数として扱うことができた。
彼は前に加算命令として使用した命令をもってきて、
それが正しい数値をもっていれば
それを使って乗算したりした。
彼のコードを他人が修正するのは困難だった。


私はメルが手で最適化したコードと
最適化アセンブラにマッサージさせた同じコードを比較してみたが、
いつもメルのコードの方が速かった。
トップダウン”法と呼ばれるプログラム開発手法が
発明される以前のことだったし、
たとえそれが発明されていたとしてもメルは使わなかっただろう。
彼はプログラムの一番内側のループを最初に書いて
それを最適なメモリアドレスに配置した。
最適化アセンブラはそんなふうにやるほど賢くなかった。


メルは決して遅延ループを書かなかった
強情なフレキソライタが、
正しく文字を出力するためにそれを要求していてもだ。
彼は遅延ループが必要とされるとき
読み取りヘッドのすぐ後ろに次の命令を配置した。
ドラムが次の命令を見つけるために
もう一回転しなければならないようにしたわけだ。
彼はこの一連の処理について忘れがたい用語を作り出した。
”最適”という言葉は
”一意的”という言葉と同様に絶対的な意味を持つにもかかわらず
相対的な意味を持つ動詞として使われるのが一般化してしまった。
”まったく最適ではない”、”より最適ではない”、
”あまり最適ではない”というように。
メルはもっとも遅延する配置を
”もっとも最悪”と呼んだ。


彼がブラックジャックプログラムを完成させて
走らせた後に
(「初期化部分も最適化したよ」と彼は誇らしげに言った)
営業部から仕様変更を受け取った。
そのプログラムは
”カード”をまぜて”親”から配るために
エレガントな(最適化された)
乱数ジェネレータを使っていたが、
それを公平すぎると思ったセールスマンがいた
なんせ顧客でさえときどき負けたのだから。
彼らはコンソールのスイッチをオンにすると
オッズを変化させて顧客が勝つように、
プログラムを修正するようメルに求めた。


メルは渋った。
彼はこれを明らかな不正と思ったし、
実際そうだった、
加えてこのことが彼自身のプログラマとしての誠実さを侵害するとして
プログラムの修正を拒んだ。
営業主任がメルと話し、
上司が彼と話し、
上司にせかされた同僚が彼を説得しようとした。
ついにメルは降参し、
コードを書いた
しかし彼は条件を逆にして、
スイッチをオンにすると、
プログラムはいかさまをして、いつも勝つようにした。
メルはこのことに喜び、
自分の潜在意識はコントロールできないほど倫理的であると主張し、
断固として修正を拒否した。


メルがもっと $青い牧草$ を求めて会社を去った後、
上司は私に例のコードを調査して
条件の部分を見つけたらそれを修正するように頼んだ。
メルのコードを追いかけるのは本当に冒険だった。


私はプログラミングが芸術のひとつの形態だと感じることがよくある、
それは同様の神秘的な芸術に熟練した人たちでなければ
その本当の価値を理解できない芸術だ。
このような性質をもつ芸術であるがために
美しい宝石や輝かしい大成功が
時として永遠に、
人々の視界や賞賛から隠されたままなのだ。
しかし君たちはコードを読むことによって
それを書いた人間について多くのことを知ることができる。
たとえそれが16進数で書かれたものであっても。
メルは世に知られていない天才だと私は思う。


私が最も衝撃を受けたのは
条件判定を持たないたわいないループを見つけたときだった。
条件判定なし、一切なしだ!
常識的に考えてそれは閉じていなければならず、
そうでなければプログラムは果てしなく永遠に回り続けることになる。
ところがプログラムは正しくそのループを通って、
安全に外に出てしまう。
私はこれを理解するのに2週間を要した。


RPC-4000 は真に現代的な
インデックスレジスタ*2と呼ばれる仕組みを備えていた。
それを使うとプログラマ
インデックス付き命令を内部に含むループを書くことができた。
ループを回るたびに、
インデックスレジスタ内の数値が
命令中のアドレスに加算されるので、
連続した次のデータを参照できるのだ
ループを回るたびにインデックスレジスタの数値を
増やすだけでいい。
しかしメルは決してインデックスレジスタを使わなかった


代わりに彼は命令をマシンレジスタに入れ、
そのアドレスに1を加えて
またレジスタに戻した。
こうして彼は変更された命令を
レジスタから正しく実行できた。
ループはこの演算の実行時間を
考慮して書かれていた
この命令が終わると同時に、
次の命令が読み取りヘッドの下に来るように
それ行け。
しかしループには条件判定がないのだ。


私が重要な手がかりをつかんだのは
命令語の中のオペコードとアドレスとの間にある
インデックスレジスタのビットが
オンになっているのに気づいたときだった
メルはインデックスレジスタを決して使わなかったので、
そのビットは常に0であるはずなのに。
光明が差し込んできたとき私はほとんど目がくらみそうになった。


彼はメモリの先頭近くに
使用しているデータを配置していた
それは命令によって番地付けできる最大の場所なので
最後のデータが処理された後、
命令アドレスのインクリメントによって
桁あふれした。
そのキャリーによってオペコードに1が加えられて
オペコードは命令セットの中で次の命令を表すものに変身した。
ジャンプ命令だ。
次のプログラム命令はアドレス位置0にあるので、
プログラムは楽しそうに動き続ける。


あれ以来私はメルと連絡を取っていないので、
過ぎ去りし日々のプログラミング技術を流し去った
変化の洪水の中で
彼が屈してしまったかどうか知らない。
私は彼がそうしていないと思いたい
とにかく、
私はあまりにも大きな感銘を受けたので
例の条件の部分を探すのをあきらめ、
上司に見つけることができなかったと報告した。
上司は驚いた様子もなかった。


私が会社を去るとき
ブラックジャックのプログラムはいまだに
スイッチを入れるといかさまをやっていて、
私はそうあるべきだったのだと思った。
本物のプログラマのコードをハックする気には
到底なれなかったのだ。

これは自由詩であろうがなかろうが、ハッカー界における偉大な英雄叙事詩である。ハッキングの美意識と心理について捉えた描写は、このテーマについて論じられたすべての学術書よりも優れている。(これと正反対の見方については「本物のプログラマ」参照)


[1992 追伸 - (この詩の)作者が言うには「ネットへ投稿したオリジナルは自由詩ではなく、また似ても似つかないものだった。直接的な散文形式で、行の長さがそろっていない段落からなっていた。ネット上をバウンドするにつれて、今のよく知られている自由詩の形式に修正されていったんだろう。違う言葉で言えば、ネット上でハックされたといえよう。それはある意味妥当なことだと思う」。作者はオリジナルより今の自由詩の方が好きだと付け加えた…]

[1999 更新: メルのラストネームは今では判明している。LGP-30 のマニュアルに「ロイヤルマクビーのメル・ケイが ACT 1 システムの大部分のプログラミングを行った」と言及されている。]

[2001: ロイヤルマクビーの LGP-30 にまつわるもう一つの有名な話が明らかになった。気象学者のエドワード・ローレンツが「バタフライ効果」と計算機カオスを発見した1961年に LGP-30 を用いて気象シミュレーションを行っていたことが判明。どういうわけか、これは私用に供していたようだ。]

[2002: LGP-30 のプログラミングマニュアルのコピーが http://ed-thelen.org/comp-hist/lgp-30-man.html にある。]

    • -

*1:主記憶上の命令をデータと見なして書き換える(あるいはデータを命令と見なして実行する)ことができるのがノイマン型コンピュータの大きな特徴だが、様々な理由(デバッグが難しくなる、メモリ管理が大変等々)から今日ではそのようなプログラミングは滅多に行われない。自己書き換えをサポートしている高級言語は少なく、LISP がその代表格。自己言及は計算機科学や数学基礎論において本質的な概念である。

*2:アドレス修飾のために使うレジスタ。メインメモリのアドレスのオフセット(C 言語で言うところの配列の添字(a[i] の i)にあたる)を格納する。インデックスレジスタが発明されてから(発明当初は B レジスタと呼ばれた)自己書き換えプログラミングは廃れていった。