以下のようmouvicielとエミリオGaravagliaは指摘し、コンセプトは、コンピューティング以前から。しかし、最初のインスタンスのソフトウェア・ループは、ループしたエイダ・ラブレスを計算するために使用されるベルヌーイ番号に記載されているように、メモGの彼女の翻訳の解析エンジンのスケッチは、チャールズ・バベッジによって発明により、LF Menabrea。アナリティカルエンジンのループ機能は、メナブレアによって早くから注目されています。
これを理解して、実行したい一連の操作の開始時に、針Cを部門2に、針Bを部門5に、針Aを部門9に配置します。打つダイヤルCのハンマー; それは2回打たれ、同時に針Bは2つの部門を通過します。後者は、最初の違いの列の番号5に続く番号7を示します。ここで、ダイヤルBのハンマーがその順番で打つことを許可すると、7回打つことになり、その間に針Aは7師団を前進させます。すでにマークされている9に追加された数字は、16になります。これは、9に続く正方形の数字です。針Cから始まるこれらの操作を再開すると、常に部門2に残ります。
メナブレアの回想録に記されているように、分析エンジンのループメカニズムは、ジョセフマリージャカードの 機械織機(1801)から直接継承されます。
ここで、機械がそれ自体でどのように動作するのかを問い合わせ、人間の手に頼ることなく、操作に適した連続した処理を想定します。この問題の解決策は、次の方法で、ブロケード製品の製造に使用されるジャカードの装置から取られました。
2種類の糸は、通常、織り物で区別されます。1つは縦糸または縦糸、もう1つは横糸または横糸で、シャトルと呼ばれる器具によって運ばれ、縦糸または縦糸と交差します。ブロケードのものが必要な場合、特定のスレッドが横糸を横切るのを防ぐ必要があります。これは、再現されるデザインの性質によって決定される連続に従って決まります。以前は、このプロセスは長くて困難でした。そして、職人は、自分がコピーしようとしているデザインに注意を払うことによって、糸がとるべき動きを自分で調整する必要がありました。そのため、特にさまざまな色の糸が布地に入った場合、この記述の高い価格が生じました。この製造を簡素化するために、ジャカードは、一緒に行動するスレッドの各グループを、そのグループ専用の別個のレバーで接続する計画を考案しました。これらのレバーはすべて、通常は長方形のベースと平行六面体の形をした1つの束にまとめられたロッドで終端します。ロッドは円筒形で、小さな間隔で互いに分離されています。したがって、スレッドを上げるプロセスは、これらのさまざまなレバーアームを必要な順序で動かすプロセスに解決されます。これを実現するために、長方形のペーストボードのシートが取られ、レバーアームの束のセクションよりもサイズがいくぶん大きくなります。このシートをバンドルのベースに適用し、次に前進運動をペーストボードに伝えると、このボードはバンドルのすべてのロッドとともに移動します。その結果、それぞれに接続されているスレッド。しかし、もしペーストボードがプレーンである代わりに、それと出会うレバーの先端に対応する穴が開けられた場合、各レバーは後者の動作中にペーストボードを通過するので、それらはすべてその中に残ります場所。したがって、ペーストボードの穴の位置を決定するのが簡単であることがわかります。任意の瞬間に、一定数のレバーがあり、その結果、糸の小包が上昇し、残りはそれらの場所にとどまりますだった。このプロセスが実行されるパターンによって示された法則に従って連続的に繰り返されると仮定すると、我々はこのパターンがスタッフ上で再現される可能性があると認識する。このためには、必要な法律に従って一連のカードを作成するだけです。そして、それらを適切な順序で次々に配置します。次に、シャトルのストロークごとに新しいフェースを回転させるように接続されたポリゴンビームを通過させることにより、フェースがレバーアームの束に対してそれ自体に対して平行に推進され、スレッドは定期的に実行されます。したがって、ブロケード組織は、以前は入手が困難だった精度と迅速さで製造できることがわかります。
ジャカード織機は、マシンに繰り返し出力を生成するように命令するというコンテキストでのループの非常に初期の適用です。
ジャカード織機の背後にあるアイデアは、パンチカードとフックのシステムでした。カードは非常に厚く作られ、長方形の穴が開けられていました。製織に使用されるフックと針は、厚紙のこれらの穴によってガイドされていました。フックがカードに接触すると、パンチ穴の1つに出会わない限り、フックは固定されたままでした。次に、フックが針に別の糸を挿入して穴を通過することができたため、所望のパターンが形成されました。複雑なパターンは、多くのカードを次々に配置したり、繰り返し使用したりすることで実現しました。
ジャカード織機は、保存プログラムの非常に初期の形態としても認識されています。
これまでに説明した計算機の開発の大部分の背後にある推進力が数値計算から生じた場合、「保存プログラム」の最も初期の形態に至った動機は、非常に異なるソース、つまり繊維産業に由来することでした。計算システムの基本的な側面の1つは、情報を表す概念であることが以前にわかりました。明示的には行いませんでしたが、このアイデアの適用は、これまで検討したすべての成果物で識別できます。数値の記述表現と、これらから生まれた機械的類似物の開発において。したがって、そろばんフレーム上の小石の整列、スライドルール上の移動スケールの並置、およびSchickard、Pascal、Leibnizのデバイス上のコギングされたギアの構成、算術タスクの基礎となる複雑なプロセスを簡素化しようとする表現手法の例です。ただし、計算プロセスを実行できる数以外に、情報のカテゴリとその表現があります。1801年にJoseph-Marie Jacquardによって開発された製織技術は、そのようなカテゴリーの一例を示しています。
チャールズバベッジは、ジャカードの保管手順を分析エンジンにも適合させました。
分析エンジンには、最新のデジタルコンピューターに見られる多くの重要な機能があります。パンチカードを使用してプログラムできました。これは、テキスタイルに複雑なパターンを織り込むために使用されたジャカード織機から借用したアイデアです。エンジンには、数値と中間結果を保持できる「ストア」と、演算処理が実行される別の「ミル」がありました。4つの算術関数の内部レパートリーがあり、直接の乗算と除算を実行できました。また、条件付き分岐、ループ(反復)、マイクロプログラミング、並列処理、反復、ラッチ、ポーリング、パルス整形など、現代の名前を持つ機能も使用できましたが、バベッジはこれらの用語を使用していませんでした。ハードコピー印刷、パンチカード、
分析エンジンの条件分岐とジャカードに触発された機械的ループおよび保存手順は、特に部品についてBabbageのプリンターをミックスに追加する場合、(概念的に)あなたの例に非常に似ていますprint "...";
。
明らかに機械ループは、ジャカードの織機の前にあり、ループ方式で動作する最初の既知のデバイスはAntikytheraメカニズム(100 BCE)であり、歴史をさらに調べると(そして恐ろしく話題から外れたベンチャー)、サンダイアルはおそらく最も古い人造のメカニズムですループの理解が明らかな場所では、もちろん太陽と他の恒星の軌道の繰り返しパターンに従っています。
ただし、コンピューティングのコンテキストでは(計算などではなく)、Analytical EngineとAdaのベルヌーイ数計算アルゴリズムはループを導入し、少なくとも一部のクレジットをジャカードの織機と共有し、それ。