Wie Mouviciel und Emilio Garavaglia feststellten, geht das Konzept dem Rechnen voraus . Die erste Instanz einer Softwareschleife war jedoch die Schleife Ada Lovelace , mit der Bernoulli-Zahlen berechnet wurden , wie in Anmerkung G ihrer Übersetzung der von Charles Babbage erfundenen Skizze der analytischen Maschine von LF Menabrea beschrieben . Die Schleifenfähigkeit der Analytical Engine wird von Menabrea früh erkannt:
Lassen Sie uns zu Beginn der Reihe von Operationen, die wir ausführen möchten, die Nadel C auf die Abteilung 2, die Nadel B auf die Abteilung 5 und die Nadel A auf die Abteilung 9 setzen Hammer des Zifferblatts C zum Schlagen; es schlägt zweimal und gleichzeitig überquert die Nadel B zwei Teilungen. Letzterer gibt dann die Zahl 7 an, die der Zahl 5 in der Spalte der ersten Unterschiede folgt. Wenn wir nun zulassen, dass der Hammer des Zifferblatts B seinerseits schlägt, schlägt er siebenmal, wobei die Nadel A sieben Teilstriche vorrückt; diese addieren sich zu den neun, die bereits durch sie markiert sind, und ergeben die Zahl 16, die das auf 9 folgende Quadrat darstellt. Wenn wir diese Operationen nun wieder beginnen, beginnen wir mit der Nadel C, die immer auf der Division 2 verbleiben soll.
Der Schleifenmechanismus der Analytical Engine ist direkt von Joseph Marie Jacquards mechanischem Webstuhl (1801) geerbt , wie in den Memoiren von Menabrea vermerkt:
Es wird nun gefragt, wie die Maschine von sich aus und ohne Rückgriff auf die Hand des Menschen die für die Operationen geeigneten aufeinanderfolgenden Dispositionen annehmen kann. Die Lösung dieses Problems wurde aus der Jacquard-Vorrichtung, die zur Herstellung von brokatierten Stoffen verwendet wird, auf folgende Weise übernommen:
Bei gewebten Stoffen werden gewöhnlich zwei Arten von Fäden unterschieden; einer ist der Kettfaden oder Längsfaden, der andere der Schussfaden oder Querfaden, der von dem als Shuttle bezeichneten Instrument transportiert wird und der den Längsfaden oder die Kette kreuzt. Wenn ein brokatiertes Zeug benötigt wird, ist es wiederum erforderlich, zu verhindern, dass bestimmte Fäden den Schuss durchqueren, und dies in einer Reihenfolge, die durch die Art des zu reproduzierenden Designs bestimmt wird. Früher war dieser Prozess langwierig und schwierig, und es war erforderlich, dass der Arbeiter, indem er sich um den Entwurf kümmerte, den er kopieren sollte, selbst die Bewegungen regulierte, die die Fäden ausführen sollten. Daher entstand der hohe Preis dieser Stoffbeschreibung, insbesondere wenn Fäden verschiedener Farben in den Stoff eingingen. Um diese Herstellung zu vereinfachen, Jacquard entwarf den Plan, jede Gruppe von Fäden, die zusammenwirken sollten, mit einem bestimmten Hebel zu verbinden, der ausschließlich dieser Gruppe gehört. Alle diese Hebel enden in Stäben, die zu einem Bündel zusammengefasst sind und üblicherweise die Form eines Parallelepipeds mit einer rechteckigen Grundfläche haben. Die Stäbe sind zylindrisch und durch kleine Abstände voneinander getrennt. Der Vorgang des Anhebens der Fäden wird somit in den Vorgang des Bewegens dieser verschiedenen Hebelarme in der erforderlichen Reihenfolge aufgelöst. Zu diesem Zweck wird eine rechteckige Platte aus Pappe genommen, die etwas größer ist als ein Abschnitt des Hebelarmbündels. Wenn dieses Blatt auf die Basis des Bündels aufgebracht und dann eine Vorschubbewegung auf die Pappe übertragen wird, bewegt diese letztere alle Stangen des Bündels mit. und folglich die Fäden, die mit jedem von ihnen verbunden sind. Wenn jedoch die Pappe nicht glatt, sondern mit Löchern versehen wäre, die den Enden der Hebel entsprechen, die darauf treffen, dann blieben alle Hebel in ihrer Position, da jeder der Hebel während der Bewegung durch die Pappe geführt würde setzt. Wir sehen also, dass es leicht ist, die Position der Löcher in der Pappe zu bestimmen, dass zu jedem Zeitpunkt eine bestimmte Anzahl von Hebeln und folglich von Fadenpaketen angehoben werden muss, während der Rest dort verbleibt, wo sie sind wurden. Angenommen, dieser Vorgang wird nacheinander gemäß einem Gesetz wiederholt, das durch das auszuführende Muster angegeben wird, so nehmen wir an, dass dieses Muster auf dem Material reproduziert werden kann. Zu diesem Zweck müssen wir lediglich eine Reihe von Karten gemäß dem erforderlichen Gesetz zusammenstellen. und ordne sie in geeigneter Reihenfolge nacheinander an; dann, indem man sie über einen polygonalen Balken laufen läßt, der so verbunden ist, daß sie für jeden Hub des Shuttles eine neue Fläche drehen, die dann parallel zu sich selbst gegen das Bündel von Hebelarmen gedrückt wird, wird der Vorgang des Anhebens des Threads werden regelmäßig durchgeführt. So sehen wir, dass brokatierte Tissues mit einer Präzision und Schnelligkeit hergestellt werden können, die früher schwer zu bekommen waren.
Jacquard's Webstuhl ist eine sehr frühe Anwendung einer Schleife im Zusammenhang mit der Bestellung einer Maschine, um eine wiederholte Ausgabe zu erzeugen :
Die Idee hinter dem Jacquard-Webstuhl war ein System aus Lochkarten und Haken. Die Karten waren sehr dick und mit rechteckigen Löchern versehen. Die beim Weben verwendeten Haken und Nadeln wurden durch diese Löcher in der Pappe geführt. Wenn die Haken mit der Karte in Kontakt kamen, wurden sie stationär gehalten, sofern sie nicht auf eines der gestanzten Löcher stießen. Dann konnte der Haken mit einer Nadel, die einen anderen Faden einführte, durch das Loch gehen und so das gewünschte Muster bilden. Komplizierte Muster wurden erreicht, indem viele Karten hintereinander angeordnet und / oder wiederholt verwendet wurden.
Jacquards Webstuhl wird auch als eine sehr frühe Form eines gespeicherten Programms erkannt :
Wenn die bisher diskutierten Impulse für einen Großteil der Entwicklung von Rechenmaschinen aus numerischen Berechnungen stammten, war die Motivation, die zur frühesten Form von "gespeichertem Programm" führte, eine ganz andere: die Textilindustrie. Wir haben bereits früher gesehen, dass einer der grundlegenden Aspekte von Rechensystemen das Konzept der Darstellung von Informationen ist, und obwohl wir dies nicht explizit getan haben, kann die Anwendung dieser Idee in allen bisher untersuchten Artefakten festgestellt werden: bei der Entwicklung schriftlicher Darstellungen für numerische Werte und der daraus resultierenden mechanischen Parallelen. So die Ausrichtung von Kieselsteinen auf einem Abakusrahmen, das Nebeneinander von beweglichen Skalen auf einem Rechenschieber und die Konfiguration von Zahnrädern auf den Geräten von Schickard, Pascal und Leibniz, All dies sind Beispiele für Darstellungstechniken, die die komplexen Prozesse vereinfachen sollen, die arithmetischen Aufgaben zugrunde liegen. Es gibt jedoch andere Informationskategorien und Darstellungen davon als die Anzahl, an denen Rechenprozesse ausgeführt werden können. Die von Joseph-Marie Jacquard 1801 entwickelte Webtechnik veranschaulicht ein Beispiel für eine solche Kategorie.
Charles Babbage hat auch Jacquards Speicherverfahren in der Analytical Engine angepasst. Das Vorhandensein oder Fehlen eines Lochs hat der Maschine einen einfachen Ein- / Ausschaltbefehl übermittelt:
Die Analytical Engine verfügt über viele wesentliche Funktionen, die im modernen Digitalcomputer zu finden sind. Es war mit Lochkarten programmierbar, eine Idee, die dem Jacquard-Webstuhl entlehnt war, mit dem komplexe Muster in Textilien gewebt wurden. Die Engine hatte einen "Speicher", in dem Zahlen und Zwischenergebnisse gespeichert werden konnten, und eine separate "Mühle", in der die arithmetische Verarbeitung durchgeführt wurde. Es verfügte über ein internes Repertoire der vier Rechenfunktionen und konnte eine direkte Multiplikation und Division durchführen. Es war auch zu Funktionen fähig, für die wir moderne Namen haben: Bedingte Verzweigung, Schleifen (Iteration), Mikroprogrammierung, Parallelverarbeitung, Iteration, Latching, Polling und Pulsformung, obwohl Babbage diese Begriffe nirgends benutzte. Es hatte eine Vielzahl von Ausgaben, einschließlich Ausdruck, Lochkarten,
Die bedingten Verzweigungen der Analytical Engine in Kombination mit den von Jacquard inspirierten mechanischen Schleifen und der Aufbewahrungsprozedur ähneln (konzeptionell) beängstigend Ihrem Beispiel, insbesondere wenn wir den Babbage-Drucker für die print "...";
Teile in den Mix aufnehmen .
Offensichtlich sind mechanische Schleifen älter als Jacquard's Webstuhl. Das erste bekannte Gerät, das in Schleifenform arbeitet, ist der Antikythera-Mechanismus (100 v. Chr.). Wenn wir uns die Geschichte noch genauer ansehen (und uns fürchterlich vom Thema abwenden), sind Sonnenuhren wahrscheinlich die ältesten von Menschen hergestellten Mechanismen wo ein Verständnis von Schleifen offensichtlich ist, folgt dies natürlich dem sich wiederholenden Muster der Umlaufbahnen der Sonne und anderer Sternkörper.
Ich denke jedoch, dass im Zusammenhang mit dem Rechnen (und nicht dem Berechnen oder etwas anderem) der Berechnungsalgorithmus für die Bernoulli-Zahlen von Analytical Engine und Ada für die Einführung von Schleifen gutgeschrieben werden kann, wobei zumindest ein Teil des Kredits mit Jacquards Webstuhl geteilt wird, nachdem das Konzept direkt von übernommen wurde es.