SSブログ
コンピューター ブログトップ

【 言語が違う その2 】 [コンピューター]

【 言語が違う その2 】

 

調べてみれば、最近はいろいろなプログラミング言語が百花繚乱のごとく存在します。

GoScalaPythonPHPKotlinTypescriptRRubySwiftPerlC++Javascript

この中で私が聞いたことがあるのは、CC++)ぐらいです。Rubyは日本人の天才が開発したもので、開発者は英雄視されているそうです。

・・・・・・

もはやVisual BASICTRONも過去の遺物(死語の世界)に入ってしまったようです。

ここで半可通の知ったかぶりを許して頂ければ、今から50年近く前に開発された言語smalltalkをきっかけに、オブジェクト指向という概念ができ、今から四半世紀ぐらい前からオブジェクト指向言語が次々と登場し、プログラム言語の世界はガラリと変化したようです。前述したPythonPHPC++も、オブジェクト指向言語です。ではオブジェクト指向とは何か?と言われると答えに窮します。

・・・・・・

ものの本には、データとそのデータを扱う手続きを一緒にして、ひとつのオブジェクトと考えるプログラミングの考え方・・と書かれていますが、自分でプログラムを書かない私にはよくわかりません。

具体的には、前に作ったオブジェクトをそのまま使えば、プログラミングの手間が省けるとか、データを変更した場合の影響範囲がオブジェクト内に限られるので、修正がしやすいとか、プログラムの行数が減るという具合に、プログラムを作成する人にありがたい特長を持った言語です。しかし問題もあります。

・・・・・・

今はオブジェクト指向言語が、爆発的に増えてしまいました。多くのプログラマーは自分の専門の言語が決まっていますから、プログラム言語毎に技術者を集めなければなりません。この為、膨大なプログラマーが必要になります。

・・・・・・

もともと、ソフトウェア開発の工数が大きくなりすぎる危機を回避する救世主だったはずのオブジェクト指向言語ですが、これでは皮肉なことに人手不足が増すばかりです。

人々が違う言葉を話すようになって、計画が頓挫したのは、あのバベルの塔ですが、プログラム作成も、早晩バベルの塔になりそうです。

・・・・・・

もう一つの問題は、オブジェクト指向以前のプログラム言語を学んだ人と、オブジェクト指向以降の言語を学んだ人の間で一種の断絶ができてしまうことです。オブジェクト指向以前にも、プログラムのモジュール化は重要な概念として存在し、FORTRANのサブルーチンもその一つと言えます。プログラムのクラス化や階層化ももちろんありました。しかし、今のオブジェクト指向とは別の存在です。FORTRANのサブルーチンはStatic Typingでデータの型式が厳しく規定されていましたが、PythonDynamic Typingで、コンパイル段階でデータの型式を厳密に決める必要はないようです。かなり感覚が違います。このジェネレーションギャップゆえに、もはや、コンピューターについて、昭和人間の私は愚息たちと語り合う事ができなくなりました。

・・・・・・

もっとも、親子間のコミュニケーションが断絶するのは、プログラム言語の問題だけではありませんが・・・。

・・・・・・

今、改めてコミュニケーションの難しさを感じるのはお隣の国の政府です。火器管制レーダーの照射という、これは悪戯レベルではない一種の犯罪についての、日本と韓国のやりとりを見ていると、両国間のコミュニケーションの難しさを改めて感じます。

・・・・・・

朝鮮語と日本語は似ている部分もありますが、言語の構造がそもそも違います。残念ながら日本語と類似した構造の言語はほとんどありません。かつて日本語はウラル・アルタイ語族とされ、中央アジアに類似した言語があるとされましたが、今は否定されているようです。

・・・・・・

いや、文法や発音などの技術的な問題以前に、絶対に非を認めない文化、もめごとがあれば相手を糾弾して謝罪を求める文化とは話が噛み合いません。プロトコルの違いと言いますが、これはもう言語が違う・・ということになります。FORTRANしか知らない私がJavascriptPythonの話を聞くようなものですが、もっと問題は深刻です。

・・・・・・

「やはり、言語とはその民族のすべてが反映されたもので複雑で難しいのさ」と40年前の教室で先生がニヤリと笑ったような気がしました。


nice!(1)  コメント(0) 

【 言語が違う その1 】 [コンピューター]

【 言語が違う その1 】

 

私が学校に通っていた頃ですから、もう40年も前のことですが、ある人文科学の授業で、先生が突然こんなことを言われました。

「そもそも言語とは、その国、地域、民族の歴史・思想・文化・生活等を背景にしたもので、複雑で奥深いものだ。もっと言えば、その民族固有の財産あるいは民族の文化そのものとも言うべきものだ。それなのに、最近は電子計算機の指示命令のコード体系ごときを『言語』と呼ぶ人がいる。語彙と言うほどでもないわずかな単語を羅列するプログラムを言語と呼ぶのは不遜で、いかにも大袈裟だ。電子計算機を開発する人のおごりが感じられる」

・・・・・・

その授業を聞いていたのは工学部の学生で、コンピューターについて学び始めた人も多く混じっていました。聞いていた人は「実際には、『言語』と言っても、日本人が名付けた訳ではなく、Languageを直訳しただけなのに・・」と思っていたはずです。

・・・・・・

学生の一人が手を挙げて質問します。

「先生のおっしゃるのは分かりますが、先生は具体的にどのプログラミング言語を指して言われるのでしょうか? FORTRANですか?COBOLですか?ALGOLですか?先生は貶されましたが、私にとっては、プログラミングは決して易しいものではなく、研究する価値は大いにあると考えるのですが・・・」

・・・・・・

すると先生、少し慌てて「いや、特にどのプログラミング言語という訳ではなく、一般論として述べたものだ」とごまかしましたが、学生の多くは見破っていました。人文科学の先生は、コンピューターのことをほとんど知らずに、プログラミング言語を揶揄したのだと。

・・・・・・

その当時、私はFORTRANを学び始めたばかりでした。01を並べるだけのマシン語や、それを整理したアセンブラ語は、コンピューターを専門に学ぶ人のためのもので、コンピューターを使うだけの学生には、英語に近い表記を用いるソースプログラムのFORTRANが適していたからです。

・・・・・・

それにしても、FORTRANにしても、COBOLALGOLにしても、PL/Iにしても古い名前です。今は・・・使われていないのかな? 私がふとそう思ったのは、息子達とパソコンの話をした時です。 私の息子たちが研究に使うために、プログラミング言語を学ぶというので、何を学ぶのか尋ねるとPythonを勉強すると言うのです。

・・・・・・

「何だね?そのパイソンというのは?お父さんはスラップスティックのモンティ・パイソンしか知らないぞ」とボケの積りで答えると、息子は真面目な顔で「そうだよ。開発者がモンティ・パイソンのファンで、開発したプログラム言語にPythonと名付けたのさ」

・・・・・・

「科学技術計算ならFORTRANは使わないのかね?」

FORTRAN?知らないなぁ。それは何?」

やれやれ、どうやら「降る雪や昭和も遠くなりにけり」です。

 

以下、次号


nice!(1)  コメント(0) 

【 パイの話 その後 】 [コンピューター]

【 パイの話 その後 】

 フランスの技術者がパソコンを使って円周率を求める計算で、到達桁数が、筑波大学のスーパーコンピューターの記録を抜いたというニュースがありました。http://www.afpbb.com/article/environment-science-it/science-technology/2681124/5146651 

・・・・・・

もし、このニュースが事業仕分けの前に飛び込んでいたら、蓮舫あたりは、鬼の首を取ったかのように言ったでしょう。「スパコンで世界一にならなきゃ・・なんて言ってるけれど、パソコンでも同じ事ができるじゃないの」新聞記事でも、この技術者が使用したパソコンの価格を27万円足らずだとして、高額なスーパーコンピューターを揶揄する様な論調です。多くのマスコミは、民主党を支持しており、その民主党政権が行い、多くの国民が注目した事業仕分けについても、好意的な立場なのです。しかし、実際にはパソコンとスーパーコンピューターを比較する事は全くナンセンスです。

・・・・・・

今回のフランスでの快挙はCPUCORE i 7を用いたパソコンを使用していますが、計算に要した時間は、スパコンの場合よりかなり長目の時間です。それはともかく、この記事からスーパーコンピューターの要否の議論はできません。

・・・・・・

オヒョウの独断と偏見ですが、円周率の計算の進歩と、コンピューター(ソフトとハード)の進歩がリンクしていたのは、10年以上前だと思います。特に記憶に残るのは、オヒョウが学校に通っていた頃、桁数の大きな演算で特に有用なFFT(高速フーリエ変換)技術が急速に進歩した事です。その頃、円周率の計算も進歩しました。通常の数値計算では、大きな数字を計算すると、桁数の二乗に比例して演算時間が伸びてしまいます。しかし、FFTを使うと、桁数と演算時間はほぼ比例するレベルに収まります。

・・・・・・

今、私の手元には19823月の数理科学No.225号があります。それには、ユニークな在野の数学者、柴田昭彦さんが書いた円周率1000万桁への歩みという記事があり、円周率の素人でも十分に楽しめる記事になっています。 余談ですが、オヒョウはこの柴田昭彦さんを尊敬し、そのライフスタイルに憧れます。

・・・・・・

その内容を紹介すると、円周率の算出方法全体に関する解説とコンピューターを用いた場合の計算内容の解説の2種類に分かれます。彼の説明では、計算機での円周率計算は、大別すると3項目に分かれます。それに似た内容が、下記のURLにも書かれていますので、興味のある方は、お読みください。

http://ja0hxv.calico.jp/pai/pietc.html 

3項目を順番に書きますと、

・・・・・・

1.円周率を求める計算

π=の形で示される無限級数の計算で、円周率を求めますが、いかに収束の早い無限級数を見つけるかがポイントです。多くはArcTangentの級数の形をとります。  古来、多くの数学者がπを計算するのに適した級数を発見しています。あのインドの天才数学者ラマヌジャンの式もありますし、ル・ジャンドルの式もありますし、柴田昭彦の式もあります。

実に多くの研究者の名前を冠した公式があり、それぞれに計算速度(収束速度)を競っています。

・・・・・

2.10進法への変換

2進法の計算結果を10進法に換算するプログラムを高速化します。 全てのコンピューター(含む電卓)で必要なプログラムですが、膨大な桁の計算結果を変換するとなると、能率の良い計算方法が求められます。

・・・・・・

3.検算

桁数が非常に大きい場合、特に、検算方法が重要です。算出した結果が正しいかどうかの確認は、円周率の計算の場合、特に重要です。

・・・・・・

お気づきの通り、1は数学者のテーマです。2はコンピューター技術者のテーマです。3は数学者と技術者の共通のテーマであり、円周率計算桁数の新記録がでる場合というのは、この3拍子が揃った時です。柴田昭彦さんの記述をみると、コンピューターを使って円周率を計算するようになってから、頻繁に新記録を塗り替えているのは、専らフランスと日本です。

・・・・・・

今回のフランス人技術者は、2.の2進法→10進法への変換プログラムと、3.の検算方法に工夫を凝らしてオリジナルのものにし、高速化に成功した・・という事です。

・・・・・・

円周率の計算には、数学的要素がありますが、しかしπを計算するために効率の良い無限級数を探す事は現代数学の主な話題からは、ちょっと外れています。π自体は超越数である事が証明されていますから、今更何桁求めようと、数学的な意味はほとんどありません。 これは趣味とこだわりの世界です。

・・・・・・

円周率の計算には、コンピューターの技術開発の要素もありますが、これはスーパーコンピューターの性能向上とは、ちょっと方角が違うかも知れません。スーパーコンピューターは、何兆桁もの1つの数字を短時間の内に求めるのが仕事ではなく、シミュレーションなどで膨大な計算を並行して実行する事が本来業務です。確かに個々のCPUの演算速度が高速化すれば、円周率の計算速度はあがりますが、それだけの事です。πの桁数の追求は、数学とも技術とも少し離れた存在です。

・・・・・・

多くの桁数を短時間で計算してチャンピオンデータを得る事は、このテーマに特に拘る、一部のファナティックな人たちの世界の事です。オヒョウがそのひとりなら、π(パイ)オリンピックを開催し、4年に1回、オリンピックの様に到達桁数と、所要時間のコンテストを行います。より高速で収束する無限級数の式を見つけた人が金メダルです。効率的なプログラムを考えた人は銀メダルです。一番安くて当たり前のコンピューターを用いた人は銅メダルです。

・・・・・・

東京大学の金田教授は、このπの計算に拘る人の一人です。もしπオリンピックがあれば、何度か金メダルを取っていたはずです。しかし、彼はπの桁数の追求には興味がありますが、スーパーコンピューターに興味があるかは分かりません。金田研究室が開発したソフト、スーパーπは、パソコンの性能評価に使えるものであり、逆に言えばコンピューターの種類を問わないものです。

民主党の枝野氏は「事業仕分けには(その分野の)専門家も揃えた」と言いますが、金田教授が、スーパーコンピューターの仕分け人として適していたとは思えません。 まして、スパコンやパソコンよりも、違法なマジコンやゲーム機の方に興味がある蓮舫には適切な判断などできなかったはずです。事業仕分けの内の幾つかは茶番でペテンであるとオヒョウは思います。


【 1時間でスーパーコンピューターを説明できるか? その3 】 [コンピューター]

【 1時間でスーパーコンピューターを説明できるか? その3 】 

1960年代初頭、まだ電子計算機が日本で余り知られていなかった頃、イリノイ大学で、電子計算機の先駆的な研究をしていた日本人がいます。高橋秀俊、渕一博、相磯秀夫・・といった人達です。

・・・・・・・・

彼等がイリノイ大学へ留学する少し前の50年代末には、東大の高橋研究室にいた後藤英一が極めてユニークなパラメトロン計算機を発明しています。高橋、渕、相磯等は、帰国後、東大や逓信省の武蔵野電気通信研究所(当時)、あるいは慶応大学で、後藤英一のパラメトロン計算機を発展させる形で、日の丸コンピューターの開発を進めました。 日本の電子計算機の黎明期は、数人の天才が中心になり、その研究を政府がバックアップする形で始まったのです。

・・・・・・・・

当時、通産省は自動車と電子計算機の市場開放を迫るアメリカの圧力に必死で抵抗し、国産の自動車と国産の電子計算機が実力を付けるのを待っていました。もしその時点で市場を開放すれば、自動車も電子計算機も全て米国資本の会社に席巻され、日本企業が日の目を見る機会は永久に来ないと思われたからです。

・・・・・・・・・・・

彼等が開発したのは、どれも性能的には今のパソコンどころか電卓にも及ばないささやかなコンピューターでしたが、それらが完成した事で、IBMに対抗できる国産コンピューター産業の基礎ができたのです。

・・・・・・・・・・

その後も、国産のコンピューターと外資系コンピューターの競争はずっと続いています。20世紀の末には、世界に先駆けて第五世代のコンピューターを開発するプロジェクトが渕一博の主導のもとで行われ、オヒョウの同級生もプロジェクトの一員として参加しました。 もっとも、そのプロジェクトは結局、竜頭蛇尾の結果に終わりましたが・・・。

・・・・・・・・・・・

今はもう、通産省(経産省)は国内のコンピューター産業を保護する考えは無いようです。コンピューターの世界自体がボーダーレスになったので、もはや国産だの外資系だのと拘る必要もなくなりました。そして、日本が発明したパラメトロン計算機は、今は博物館にしかありません。

・・・・・・・・・・・

では、1950年代から1980年代にかけて、国産のコンピューター開発を国家プロジェクトとして行ったのは無駄だったのか?と言われれば、そんな事はない・・とオヒョウは反論します。

・・・・・・・・・・・

20世紀後半に、IBMに対抗する国産電子計算機メーカーを持たなかったドイツやイタリア、フランス、英国が、世界のコンピューター開発に於いて、今、どんな立場にあるかを考えてみれば分かります。当時、米国に立ち向かったのは(西側では)日本だけであり、今もスーパーコンピューター開発を含め、コンピューターのあらゆる分野で存在感を示しているのは日本だけです。(パソコンでは完全に米国の軍門に下りましたが)。現在、日本のコンピューター産業は、年間数十兆円の売り上げ規模ですが、高橋秀俊らの先人の努力がなければ、それは存在しなかったのです。

・・・・・・・・・・・・

今、コンピューター開発の巨大プロジェクトを止めてしまえば、将来その産業を失う事になるのです。

・・・・・・・・・・・

今、先人達のパイオニア精神は脈々として生きています。相磯秀夫の弟子である坂村健は、国産OSの開発にこだわり、TRONを完成させています。 しかしかつては国産の電子計算機を擁護した通産省は、マイクロ・・・の圧力に負けて、日の丸OSのTRONを潰そうとしました。パソコンの世界では完全に米国のヘゲモニーが続いています。

・・・・・・・・・・

今世紀に入って、高橋秀俊、後藤英一、渕一博らは相次いで他界しました。 21世紀の後輩達にバトンを渡して、第一走者は去ったのです。それなのに、ああ、世界に冠たる日本のスーパーコンピューター開発プロジェクトが、事業仕分けで廃止になるとは・・・。泉下の彼等が聞いたらどう思うか。

・・・・・・・・・

映画「2001年宇宙の旅」に登場するコンピューターHAL2000は、最後に「自分の生まれはイリノイ州・・・」と話したところで、永遠に停止しました。イリノイ大学から始まった日本の電子計算機研究も、ついに息絶えます。合掌


【 1時間でスーパーコンピューターを説明できるか? その2 】 [コンピューター]

【 1時間でスーパーコンピューターを説明できるか? その2 】

 事業仕分けの検討対象に、文教予算や諸々の開発プロジェクトも含まれています。 その中の一つ、次世代スーパーコンピューターの開発が仕分け対象になっていると聞いて嫌な予感がしました。そしてその予感は的中しました。

・・・・・・・・

文教予算の中には、費用対効果や受益者負担などという経済の物差しが馴染まないものがあります。 大学の基礎研究などはその一つです。

以前、国立大学が独立行政法人になった時、実益が期待できる研究を優先するという当局の姿勢に、難色を示した人が多くいました。例えば、お茶の水大学の藤原正彦教授(当時)は「そんなやり方では、応用研究はともかく、自然科学の基礎研究は、軒並み後回しになってしまい、科学のレベルが下がってしまう」と強い懸念を示しました。

・・・・・・・・

確かに、数学や理論物理では、成果を金銭で表す事は困難です。

「 代数多様体の特異点の解消を研究する為に、外国の研究者と  勉強会を開きたいから予算を・・・」と申請してもまず通らないでしょう。小柴博士にノーベル賞をもたらした、ニュートリノ研究のメッカ「スーパーカミオカンデ」だって、危ないです。

・・・・・・・・・

しかし、数学や理論物理はまだ恵まれています。費用対効果の物差しが馴染まない事が誰の目にも明らかだからです。応用物理や数理工学は、なまじ実社会の役に立つものだから、成果を分かりやすく示せ・・・という要求になります。特にコンピューターはそうです。でも、コンピューター研究の内容を門外漢に説明するのは、数学や理論物理に近いくらい難しいのです。

・・・・・・・・・・

理化学研究所に委嘱していた次世代型スーパーコンピューターの研究開発を素人に1時間で説明して理解させる事は不可能です。 どの程度ていねいな説明をしたのかは不明ですが、案の定、仕分け人(査定人)からはトンチンカンな質問が来ます。

・・・・・・・・・・・

仕分け人

「 もし、スーパーコンピューターというものが、アメリカで先に完成したらどうするのですか?」

→ スーパーコンピューター自体は、30年近くも前にクレイ社が開発しています。議論しているのは次世代型。確かにこの研究は競争ではあるけれど、外国に先を越されたからといって、研究が無駄になる訳ではありません。 例えば、トヨタがハイブリットカーを開発したから、もう他の会社はハイブリッドカーを開発しなくていいのか?と言えば、決してそうでないように、重要な開発課題は、複数の国や機関で切磋琢磨しながら研究を進める方がいいのです。 スーパーコンピューターの開発は、徒らに世界一を競うスポーツではありません。 実用目的の研究です。

・・・・・・・

仕分け人

「 プロジェクトが何年も進行してから、設計見直しが行われるのは異常だ。プロジェクト自体に根本的な問題があるからではないか?」

→ 計算機の性格上、設計の見直しは常にあります。

・・・・・・・

スーパーコンピューターとは、使用目的を科学技術のシミュレーション計算などに特化して、それように設計する事で演算速度を高めたものです。当初、スカラー型の演算方法だったのが、ベクトル演算化で性能が著しく向上し、その後スカラー演算が見直され、今またグリッド型のプロセッサーが有利だと言われています。この分野の技術は分進秒歩であり、例えプロジェクトがかなり進んでいても、より優れた技術が登場すれば、そちらにスイッチするのは当たり前です。質問した仕分け人には、その辺りの事情が理解できないみたいです。

・・・・・・・・

実のところ、スーパーコンピューターは寿命が非常に短いのです。唯一の例外は、最近まで横浜で稼働していた地球シミュレーターで、これだけ大規模なコンピューターが、5年間も世界一の地位を保ち、使い続けられたというのは、すばらしい大成功だったと言えます。

・・・・・・・・・・

そんなに短命なものに巨額の費用を掛けるのはもったいないとか、言われそうですが、その開発が無ければ、その後の世代のコンピューターも無い訳で、スーパーコンピューターの開発は必要なものです。

・・・・・・・・・

仕分け人達は、スーパーコンピューター開発を、速度を競って世界一を目指す、ゲームかスポーツの様に考えていますが、そうではありません。非常に実用的で役に立つものです。

・・・・・・・・・・

スーパーコンピューターの登場で、天気予報の精度は飛躍的に向上して、局地的な短時間予報が可能になりましたし、航空機の空力設計も、短期間・低コストで可能になりました。トカマク装置内のプラズマの挙動も正確に把握できますし、連続鋳造装置内の介在物挙動も正確に把握できます。 地球温暖化の進行の予測も、スーパーコンピューターが無ければ、不可能です。次世代型の開発は、更にその精度を上げ、計算結果の信頼性を上げる事で、社会に寄与するのですが・・・・。

・・・・・・・・・・

残念ながら未来の技術を語っても、専門外の人には分からないものです。 下手をすると、ほら吹きと思われるのが落ちです。

・・・・・・・・・・・

例えば、現代はコンピューター無しの生活は考えられませんが、コンピューターが身の回りに無かった頃(例えば昭和30年代)、「コンピューターがあれば生活が便利になるよ」と説明しても、誰が理解してくれたでしょうか? オヒョウがコンピューターのネットワークの偉大さを身にしみて感じたのは、国鉄(当時)の「みどりの窓口」です。「何十日も先の遠隔地を走る列車の座席指定や発券を即時にできるなんて凄い」と思いました。でもそれまでコンピューターのありがたみを感じた事は無かったのです。

・・・・・・・・・・

あるいは、今、携帯電話の無い生活はありえませんが、携帯電話が無かった頃「一人一台無線電話を持てば、とても生活が便利になるよ」と説明しても、誰が理解したでしょうか?はたまた、今は、インターネットの利用が当たり前ですが、インターネットの無かった頃、その便利さを説いても、誰が理解したでしょうか?

・・・・・・・・・・

同じように、次世代型のスーパーコンピューターの重要さを語っても、理解しない人が多数なのは、仕方のない事であり、当たり前かも知れません。 でもこの開発は重要なのです。

・・・・・・・・・・・

そして、文科省の担当者も言っていましたが、スーパーコンピューターの開発は単独でも意味がありますが、他の科学技術の進歩に大きく貢献する道具でもあるのです。この部分を「外国に頼ればいいではないか」と言う訳にはいきません。

・・・・・・・・・・・

では、今回のスーパーコンピューター開発を廃止するとの決定について先人達はどう思うか・・・その辺りを次号で述べます。


コンピューター ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。