パッチ火曜日に移りましょう – 今日はエイダ・ラブレスの日です! PlatoBlockchain データ インテリジェンス。垂直検索。あい。

パッチ チューズデーを超えて、今日はエイダ ラブレスの日です!

毎月第 XNUMX 火曜日は、Microsoft の定期的なセキュリティ更新日であり、「パッチ チューズデー」という非公式のニックネームで今でもほとんどの人に知られています。

しかし、XNUMX 月の第 XNUMX 火曜日も エイダラブレスデー、祝う エイダ、ラブレス伯爵夫人.

Ada はコンピューティングだけでなく、コンピューター サイエンスの真のパイオニアであり、プログラミング言語 Ada に彼女の名前を付けました。

興味深いことに、Ada 言語は、政府のコーディングの世界を「デバベル化」することを目的とした米国国防総省のプロジェクトから生まれました。そこでは、すべての部門が別の言語または別の言語の方言を支持しているように見えたため、より困難で、より高価で、それらを連携させるには信頼性が低くなります。

Ada には、可読性を向上させ、よくある間違いを回避することを目的とした多数の構文機能がありました。 で始まる C のコメントとは異なります。 /* そして次まで走る */、おそらく何行か後、Ada は単純にそれ以降を無視します。 -- そのため、コメントが意図した以上に誤って実行されることはありません。 すべての複数行コード ブロックを波括弧 ({...}、 としても知られている ブレース)、Ada には複数行ブロックの種類ごとに固有のターミネータがあります。 end record, end loop & end if. Ada Lovelace は、彼女の同名の言語の明快さを賞賛しただろうと思われますが、Ada-the-language が実際に普及することはなく、C の波括弧構文が大部分を占めており、Python はおそらく唯一の非波括弧言語です。幅広い使用。 波括弧は、C、C++、C#、Go、Java、JavaScript、Perl、Rust、および他の多くの一般的な言語の重要な側面です。

エイダ・ラブレスの時代

エイダの名前がコンピュータ サイエンスの始まりとどれほど強く結びついているかを考えると、エイダが生きていたのは XNUMX 世紀前半であり、現在コンピュータや計算機として認識されているものが存在するずっと前のことであることに驚くかもしれません。 .

(エイダは1852年に子宮ガンでわずか36歳で亡くなりました。)

しかし、現代的な意味でのコンピューターは 1800 年代には存在しませんでしたが、 ほぼ でした。

これがほとんどどのように起こったかです。

チャールズ・バベッジは、1800 年代初頭に、 差分エンジン これは、少なくとも理論的には、たとえば次を満たす X の値を見つけることによって、XNUMX 次の多項式方程式を自動的に解くことができます。

aX6 +bX5 +cX4 +dX3 +エックス2 + fX + g = 0

この種の装置は、平方根、対数、三角比などの正確な数学的表を作成するために使用できるため、英国政府は関心を持っていました。

また、三角関数の計算が得意なマシンは、陸と海での大砲の精度に革命をもたらす可能性のある砲術テーブルなどの計算にも便利です。

しかし、バベッジには XNUMX つの問題がありました。

第一に、ディファレンス エンジンを適切に機能させるために必要な工学的精度に完全に到達することができませんでした。これは、バックラッシュ (小さいながら累積的な不正確さがメカニズムの「ずさんさ」につながる) に十分な数の連結ギアが必要だったためです。

第二に、彼は差エンジンが行き止まりであることに気づいたとき、差エンジンへの興味を失ったようです。現代的に言えば、それはポケット電卓と考えることができますが、タブレット コンピューターやラップトップとは見なすことができません。

そこでバベッジは、彼が「 分析エンジン、一種の多項式よりもはるかに一般的な科学問題を解決できます。

残念なことに、後から考えると、おそらく当然のことです。 政府は、バベッジのより高度なプロジェクトへの資金提供にあまり関心がありませんでした。

はるかに単純な方程式ソルバーに必要なメカニズムを構築できなかったとすれば、巨大な蒸気駆動の汎用コンピューターが有用な結果をもたらす可能性はありますか?

ヨーロッパのカンファレンスサーキット

国際的で多言語の協力という奇妙なひねりを加えて、バベッジはイタリアに旅行し、彼の分析エンジンを宣伝する講演を行いました。

聴衆の中にルイジ・メナブレア大尉という名の軍事技術者がいて、バベッジと協力して機械について説明した 1842 年の論文を作成することに触発されました。

彼はイタリア人でしたが、メナブレアはフランス語で論文を発表しました…

…そして、メナブレアの論文を翻訳したのはエイダ・ラブレースでした 英語に.

Babbage の勧めで、Ada は一連の 翻訳者による注記これは、メナブレアの最初のレポートの XNUMX 倍以上の長さであることが判明しただけでなく、現在では汎用コンピューターと呼ばれるもののいくつかの重要な特徴を説明する、より興味深いものでした。

ウォルター・アイザックソンの非常に読みやすい本の中で イノベーター、2014 年に発行された、Ada の方法について説明します。 「XNUMX世紀後にコンピューターが誕生したとき、歴史的に共鳴するであろうXNUMXつの概念を探求した」:

  • Ada は、差分エンジンとは異なり、分析エンジンが真の汎用デバイスであることを認識していました。 あることを行うようにプログラムするだけでなく、比較的簡単に、まったく異なるタスクを実行するように再プログラムすることもできるからです。

エイダ自身の言葉によると (これは、科学文献がまだ、おそらく今日よりも文学と接触していた時代でした):

差分エンジンは実際には (すでに部分的に説明したように) 追加することしかできません。 そして、単純な減算、乗算、および除算を除いて、他のプロセスは、賢明な数学的配置と技術によって、それらを一連の加算に減らすことができる範囲でのみ実行できます。 実際、差の方法は足し算の方法です。 そして、それは他のどの数学的原理よりも簡単に足し算によって達成できる多くの結果をその手段内に含んでいるので、そのような機械の力を与えるために、足し算機を構築するための基礎として非常に適切に選択されました.可能な限り広い範囲。 反対に、分析エンジンは、足し算、引き算、掛け算、割り算を同じように行うことができます。 これらの XNUMX つの操作は、他の XNUMX つの操作を使用せずに直接実行されます。 この XNUMX つの事実はすべてを意味します。 また、たとえば、差分エンジンは表にすることしかできず、展開することはできませんが、分析エンジンは表にすることも展開することもできることを指摘する必要はほとんどありません。

  • Ada は、分析エンジンが数値のエンコードと計算に限定されないことに気付きました。 デジタルであり、数値計算を実行する能力に基づいていますが、これらのデジタル操作は理論的には論理的な命題を表すことができると彼女は説明しました if ... then ... else ... end if ステートメント)、音符など。

エイダが言ったように:

[解析エンジン] は、数以外の他のものに作用する可能性があり、相互の基本的な関係が操作の抽象的な科学の関係によって表現され、操作表記法とメカニズムの動作への適応も受けやすいことがわかったオブジェクトである可能性があります。そのエンジン。 たとえば、ハーモニーの科学と作曲の科学におけるピッチのある音の基本的な関係が、そのような表現と適応の影響を受けやすいと仮定すると、エンジンは、あらゆる程度の複雑さまたは範囲の精巧で科学的な音楽作品を構成する可能性があります。 分析エンジンは演算の科学を体現したものであり、それらの演算の対象として抽象数を特異的に参照して構築されています。

  • Ada は、現在プログラムと呼ばれているものの一部を再利用するという概念を思いつきました。 この意味で、彼女は再帰サブルーチン(計算を一連の同様のサブ計算に分割し、それらを呼び出すことによって解を単純化する関数)を含むサブルーチンの概念を発明したと言えます。
  • Ada は最初に、「機械は思考できるか?」という質問に有効に対処しました。 これは以前から私たちを悩ませてきた問題です。

フランケンシュタインつながり

エイダの父親(会ったことはありませんが)は、悪名高い詩人バイロン卿でした。バイロン卿は、スイスで雨の休暇を過ごし、文芸仲間のパーシーとメアリー シェリーと一緒にホラー ストーリーを書いた記憶があります。

バイロンとパーシー シェリーがこの友好的な執筆コンペティションに参加したことは、今日では完全に忘れ去られていますが、メアリー シェリーの影響力のある小説は、 フランケンシュタイン; または、現代のプロメテウス (1818年発行)は人気があり、今日まで尊敬されています.

フランケンシュタインの物語は、今日私たちが人工知能と呼んでいるものをめぐる道徳的ジレンマを探求したことで有名です。 (フランケンシュタインは実験を行った科学者であり、プロジェクトから生まれた AI ではないことを忘れないでください。)

しかし、Ada は、分析エンジンについて、または実際にはコンピューター全般について、父親の友人のディストピア的な懸念を共有していないようでした。

彼女は彼女の最後のセクションで意見を述べた 翻訳者による注記、 それ:

分析エンジンには、何かを生み出す気配はありません。 実行するように命令する方法を知っていることは何でも実行できます。 分析に従うことができます。 しかし、分析的な関係や真実を予測する力はありません。 その領域は、私たちがすでに知っているものを利用できるようにすることを支援することです。 これは、主に、そしてもちろん主に、その実行能力を通じて実行されると計算されています。 しかし、別の方法で科学自体に間接的かつ相互的な影響を与える可能性があります。 というのは、真実と分析の公式を配布し、組み合わせることで、エンジンの機械的組み合わせに最も簡単かつ迅速に対応できるようになるため、その科学における多くの主題の関係と性質は、必然的に新しい光に投げ込まれます.と、より深く調べています。 これは、そのような発明の明らかに間接的で、いくぶん推測的な結果です。

それから 100 年余り後、アラン チューリングが自身の論文で人工知能の問題を再検討したことは有名です。 コンピューティング機械とインテリジェンス、そして彼を紹介しました 今では有名なチューリングテスト、彼はこれをダビングしました ラブレス夫人の異議.

何をするか?

次回、次のようなコードを書いていることに気がついたら…

   -- ファンキーなこと: アッカーマン関数。 -- 計算可能ですが、プリミティブ再帰ではありません! -- (昔ながらの for -- ループで書くことはできませんが、非常に長い時間がかかっても、確実に終了することはできます。) local ack = function(m,n) if m == 0 の場合 n+1 を返す end n == 0 の場合 end ack(m-1,1) を返す end return ack(m-1,ack(m,n-1)) end

…この種の再帰的なサブルーチンはすべて、コンピューターがどのように見えるべきか、そしておそらくどのようになるかを知っていたが、そのようなデバイスよりも 100 年前に生きていた (そして悲しいことに非常に若くして亡くなった) 誰かの科学的な想像力から始まったことを思い出してください。彼女が実際にハッキングするために存在しました。

実際のコンピューターをハッキングすることは XNUMX つのことですが、架空のコンピューターを意図的にハッキングすることは、最近では想像することしかできません。

エイダ・ラブレースの日おめでとう!


タイムスタンプ:

より多くの 裸のセキュリティ