2018年05月22日

●「マッカーシーは何をやった人物か」(EJ第4768号)

 「IA派」のダグラス・エンゲルバートと「AI派」のジョン
・マッカーシー──このうち、ジョン・マッカーシー氏とはどう
いう人物なのでしょうか。
 マッカーシー氏は、どういうきっかけで「人工知能/AI」を
提唱することになったかについて知る必要があります。
 ジョン・マッカーシー氏は、プリンストン大学で数学科博士課
程を受けていますが、先輩にあたるダートマス大学のジョン・ジ
ョージ・ケメニー数学科教授から、ダートマス大学の助教授とし
て招聘されたのです。1955年2月のことです。
 マッカーシー氏は、ダートマス大学に移ると、大学院時代の同
僚のマービン・ミンスキー氏とベル研究所のクロード・シャノン
氏と一緒に、「認知能力を持つ機械」について、共同で研究をは
じめたのです。それが1956年の「ダートマス会議」の開催に
つながることになります。
 このダートマス会議に関連して、マッカーシー氏は大きな仕事
を2つ成し遂げています。
─────────────────────────────
      1.TSSを提唱し、実現させている
      2.AI言語といわれるLISP開発
─────────────────────────────
 1は「TSSを提唱し、実現させている」ことです。
 1940年代後半にコンピュータが開発され、1950年代に
入るとその性能は飛躍的に向上していたのですが、何しろ当時の
コンピュータは高価であり、数も少ないので、研究者が満足に使
える状況になかったのです。ちなみに、当時積極的にコンピュー
タを使おうとしていたのは、マッカーシー氏のような大学院生が
多かったといえます。
 当時ダートマス大学では、1954年に開発されたIBM70
4を他の大学と共同で使っていたのですが、マシンを直接使うこ
とはできず、プログラムを打ち込んだパンチカードをコンピュー
タ管理者に渡して、その結果を受け取るというスタイルでしか利
用できなかったのです。この場合、もし一ヶ所でもパンチミスを
すると、半日は潰れてしまうのです。
 共同で利用するというのは、MIT(マサチューセッツ工科大
学)が8時間、IBM事業所が8時間、それからダートマス大学
を含む東海岸の大学が合同で8時間というように、使用できる時
間は限られていたのです。
 そこでマッカーシー氏が考えたのが対話型コンピューティング
「TSS/タイムシェアリング」の導入です。
─────────────────────────────
 ◎タイムシェアリングシステム/Time Sharing System
 1台のコンピュータ(のCPU)をユーザ単位に時分割で共有
(タイムシェア)し、複数のユーザで、同時にコンピュータを利
用するシステムである。         ──ウィキペディア
                  https://bit.ly/2JpuiYc
─────────────────────────────
 TSSのシステムを簡単にいうと、一台のホストコンピュータ
が多くの端末(ターミナル)に接続されており、端末ごとにホス
トに仕事の命令が出され、それに対してホストが処理をして返す
という人間とコンピュータの対話です。ホストは一台しかありま
せんが、その処理は高速であり、利用者はあたかもホストを自分
一人で使っているような気分になれるのです。
 ちなみにTSSの提唱者はマッカーシー氏だけでなく、複数い
ます。ASCIIコードの開発者として知られるボム・バーマー
氏や、英国のコンピュータ科学者クリストファー・ストレイチ氏
も、1959年にタイムシェアリングシステムの特許を取得して
います。それぞれが相談したわけではなく、同時にこのアイデア
を思いついたのです。
 2は「AI言語といわれるLISP開発」です。
 「LISP」は、ジョン・マッカーシー氏がマサチューセッツ
工科大学(MIT)に移ってから開発した言語です。AIに向い
たコンピュータ言語といわれています。その開発には、コンピュ
ータを長時間使う必要があります。しかし、上記のようにダート
マス大学では、IBM、MITとIBM704を共同使用してい
たのですが、IBMとMITは8時間使えるのに対し、ダートマ
ス大学の場合は、他の東海岸の大学と合わせて8時間であり、長
時間は使えなかったのです。そこで、MITに移った方が、コン
ピュータが長く使えると考えたマッカーシー氏は、MITに移り
MITの助教授に就任し、LISPを開発します。LISPは、
フォートランに次ぐ歴史の古い言語です。
 これについては、2005年9月14日のEJで取り上げてい
るので、そこから引用します。
─────────────────────────────
 マッカーシーは考えたのです。ダートマス大学にいたのでは、
8時間をさらに他の大学と分け合うことになり、いつ順番が回っ
てくるかわかったものではない――そのためにはMITの教員に
なるのが一番良いと考えたのです。
 それからもうひとつ、IBMの連中と仲良くなる必要があると
考えたのです。そういうわけで、たまたまIBMの技術者がダー
トマス大学を訪問したときに、マッカーシーは食事と酒をおごっ
て饗応したのです。まさに目的のためには手段を選ばずです。
 その効果はすぐにあらわれたのです。IBMからIBMポーキ
プシー事業所に招待されたからです。マッカーシーはそこでコン
ピュータのプログラミングを身につけてしまいます。
 1958年に彼はこのアイデアを実行に移し、MITの助教授
になるのです。そして、同年中にLISP言語を開発し、「記号
表現の機能関数と機械によるその計算T」という論文を発表しま
す。                https://bit.ly/2IytPD5
─────────────────────────────
          ──[次世代テクノロジー論U/012]

≪画像および関連情報≫
 ●人工知能で大活躍!今熱い「LISP」の成り立ちとこれから
  ───────────────────────────
   LISPという言語をご存知でしょうか。
   「カッコ。とにかくカッコ」「独自路線」「古い」「とに
  かくカッコ」などの印象が一般的でしょうか。あまりメジャ
  ーな言語ではないというのが、正直な位置づけでしょう。本
  エントリでは近年の人工知能の発達に伴ってLISPが見直
  されていることから、LISPのこれまでの歴史を振り返り
  今後の動向を占ってみることにしましょう。
   LISPは、1958年に開発された、現在広く使われて
  いるプログラミング言語の中で最も古いものの1つです。開
  発者のジョン・マッカシーは、実は「人工知能」という言葉
  の提唱者でもあります。このような出自から、LISPは人
  工知能プログラムに多く使われました。人工知能ブームにも
  乗ったこともあり、急速に普及していくことになります。
   しかし長く使われる言語の常として、多くの方言が生み出
  されてしまいました。方言が多いというのは、ある面では困
  った状況です。多数の言語仕様と処理系が生み出されるため
  汎用性が失われ、中長期的に見ると効率が悪くなるのです。
  このような状況の中、LISPにも標準化が必要になりまし
  た。標準化の効果はJavaの成功を見ると分かりやすいと
  思います。Javaは、言語仕様から処理系、果てはライブ
  ラリまで標準化することで、一度書いたプログラムがどこで
  でも動作する、という究極の汎用化を、実現しようとしまし
  た。そしてある程度これは実現され、現在では世界で最も広
  く使われているプログラム言語の1つとなりました。
                  https://bit.ly/2IukVub
  ───────────────────────────

TSS/タイムシェアリングシステム.jpg
TSS/タイムシェアリングシステム
posted by 平野 浩 at 00:00| Comment(4) | 次世代テクノロージ論U | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
> 標準化の効果はJavaの成功を見ると分かりやすいと思います。Javaは、言語仕様から処理系、果てはライブラリまで標準化することで、一度書いたプログラムがどこででも動作する、という究極の汎用化を、実現しようとしました。

これは違います。
JavaもLispも共に「標準化」されていません。
一般に、標準化と言うのは「言語仕様を規格として公式に決める」事で、別々のメーカーやコンパイラ/インタプリタ作成者が作った処理系でどれも同じ動作をする事を保証させる事です。
Lispの「標準化」とはこれを意味していて、各種主要方言の実装で「共通の動作をさせよう」と言う仕様決定の事を意味しています。

Posted by cametan at 2018年05月22日 01:05
Lispの「標準化」の為の仕様は、通例ANSI(米国国家規格協会)Common Lispを指す、と思われますが、ANSIと言う名前を見てわかる通り、これは「アメリカ国内での」ローカル規格だ、と言い換える事が出来ます。ISO(国際標準化機構)で制定されてるCなんかとはレベルが違うんで、現代的な感覚だとこれを「標準化」と言って良いのかどうか、と言うとちょっと難しい気がしますね。
実はLispにはISOで制定されたISLISPと言う規格がある事はあるんですが、今度はこのインタプリタ/コンパイラを探すのがちょっと厄介です。事実上「仕様は存在するけど実装が存在しない」と言うのがLispの「標準」の現実の姿なのです。
結果的に、ANSI Common Lispはそれなりに「良く使われています」が、あくまでデファクトスタンダードのレベルは超えていません。


Posted by cametan at 2018年05月22日 01:06
一方、Javaにはこのテの「言語仕様」と言うのが"公式には"存在していないのです。Javaは現時点Oracleが権利を保有していますが、「誰でもJavaの"公式仕様に則って"Javaコンパイラを作れる」わけではないのです。

注: JavaはコミュニティでJava言語仕様

https://www.jcp.org/en/jsr/detail?id=901

を公開していますが、これは先程の、例えばISO(国際標準化機構)等での"公式な"言語仕様ではない、って辺りがまた話をややこしくしています。
当然ANSIなんかも丸っきり関わってないんで、捉え方としては「インフォーマルな仕様書」ってレベルになっています。
やはり事実上、「Oracle単独コントロールによる言語」なのです。

Posted by cametan at 2018年05月22日 01:07
> Javaは、言語仕様から処理系、果てはライブラリまで標準化することで、一度書いたプログラムがどこででも動作する、という究極の汎用化を、実現しようとしました。

つまり、これは「標準化」とは全く関係がありません。「標準化」の説明には適してないのです。
Javaの「一度書いたプログラムがどこでも動作する」と言うのは、単純にJavaの場合、「仮想マシン」と言うのがOS毎にインストールされるような方式になってるから、に他なりません。
要するにWindowsにはWindows用のJava仮想マシン、MacにはMac用のJava仮想マシン、LinuxにはLinux用の仮想マシンをインストールして「OSの違いを仮想マシンレベルで吸収する」と言うシステムを用いているのです。
これは技術的な問題であって、「言語の標準化」とはまるで関係ない、と言う事です。
Posted by cametan at 2018年05月22日 01:09
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

RDF Site Summary