Seperti yang dicatat oleh mouviciel dan Emilio Garavaglia , konsep tersebut mendahului komputasi. Namun, contoh pertama dari loop perangkat lunak adalah loop Ada Lovelace yang digunakan untuk menghitung angka Bernoulli , seperti yang dijelaskan dalam Catatan G dari terjemahan Sketsa Mesin Analitik yang Diciptakan oleh Charles Babbage , oleh LF Menabrea . Kemampuan Analytical Engine untuk mengulang dicatat sejak awal oleh Menabrea:
Ini dipahami, mari kita, pada awal rangkaian operasi yang ingin kita jalankan, letakkan jarum C di divisi 2, jarum B di divisi 5, dan jarum A di divisi 9. Mari kita biarkan palu dari dial C untuk menyerang; itu akan menyerang dua kali, dan pada saat yang sama jarum B akan melewati dua divisi. Yang terakhir kemudian akan menunjukkan angka 7, yang berhasil angka 5 di kolom perbedaan pertama. Jika kita sekarang mengizinkan palu dari pelat B untuk menyerang pada gilirannya, itu akan memukul tujuh kali, di mana jarum A akan maju tujuh divisi; ini ditambahkan ke sembilan yang sudah ditandai dengan itu akan memberikan angka 16, yang merupakan angka kuadrat berturut-turut menjadi 9. Jika kita sekarang memulai kembali operasi ini, dimulai dengan jarum C, yang selalu ditinggalkan di divisi 2,
Mekanisme perulangan Mesin Analitis ini secara langsung diwarisi dari alat tenun mekanis Joseph Marie Jacquard (1801), sebagaimana dicatat dalam memoar oleh Menabrea:
Sekarang akan ditanyakan bagaimana mesin itu dapat dengan sendirinya, dan tanpa bantuan orang lain, mengasumsikan disposisi berturut-turut sesuai dengan operasi. Solusi dari masalah ini telah diambil dari peralatan Jacquard, yang digunakan untuk pembuatan barang-barang brokat, dengan cara berikut: -
Dua spesies benang biasanya dibedakan dalam bahan tenun; satu adalah benang lungsin atau longitudinal, yang lainnya benang pakan atau melintang, yang disampaikan oleh instrumen yang disebut pesawat ulang-alik, dan yang melintasi benang longitudinal atau lungsin. Ketika barang-barang brokat diperlukan, pada gilirannya perlu untuk mencegah benang-benang tertentu melintasi benang, dan ini sesuai dengan suksesi yang ditentukan oleh sifat desain yang akan direproduksi. Sebelumnya proses ini panjang dan sulit, dan itu adalah syarat bahwa pekerja, dengan memperhatikan desain yang akan dia salin, seandainya dia sendiri yang mengatur gerakan yang harus diambil oleh benang. Dari situlah muncul harga tinggi dari deskripsi barang-barang ini, terutama jika benang-benang berbagai warna dimasukkan ke dalam kain. Untuk menyederhanakan pembuatan ini, Jacquard menyusun rencana untuk menghubungkan setiap kelompok utas yang akan bertindak bersama, dengan tuas berbeda yang dimiliki secara eksklusif pada kelompok itu. Semua tuas ini berakhir dalam batang, yang disatukan bersama dalam satu bundel, biasanya memiliki bentuk paralelopip dengan basis persegi panjang. Batangnya berbentuk silinder, dan dipisahkan satu sama lain dengan interval kecil. Proses mengangkat benang dengan demikian diselesaikan ke dalam memindahkan berbagai tuas-senjata ini dalam urutan yang disyaratkan. Untuk menghasilkan efek ini, lembar pasteboard persegi panjang diambil, ukurannya agak lebih besar dari pada bagian bundel tuas-lengan. Jika lembar ini diterapkan ke dasar bundel, dan gerakan maju kemudian dikomunikasikan ke papan tulis, yang terakhir ini akan bergerak dengan itu semua batang bundel, dan akibatnya utas yang terhubung dengan masing-masing. Tetapi jika papan tulis, bukannya polos, ditusuk dengan lubang yang sesuai dengan ujung tuas yang bertemu, maka, karena masing-masing tuas akan melewati papan tulis selama gerakan yang terakhir, mereka semua akan tetap di mereka tempat Dengan demikian kita melihat bahwa mudah untuk menentukan posisi lubang-lubang di papan tulis, bahwa, pada suatu waktu tertentu, akan ada sejumlah pengungkit, dan akibatnya dari petak-petak benang, diangkat, sedangkan sisanya tetap berada di tempat mereka. adalah. Andaikata proses ini diulangi berturut-turut sesuai dengan hukum yang ditunjukkan oleh pola yang akan dieksekusi, kami melihat bahwa pola ini dapat direproduksi pada barang-barang tersebut. Untuk tujuan ini, kita hanya perlu membuat serangkaian kartu sesuai dengan hukum yang disyaratkan, dan mengaturnya dalam urutan yang sesuai satu demi satu; kemudian, dengan menyebabkan mereka melewati balok poligon yang begitu terhubung sehingga mengubah wajah baru untuk setiap langkah pesawat ulang-alik, yang wajah kemudian harus didorong sejajar dengan dirinya sendiri terhadap bundel lengan tuas, operasi mengangkat utas akan dilakukan secara teratur. Jadi kita melihat bahwa jaringan brokat dapat dibuat dengan presisi dan kecepatan yang sebelumnya sulit diperoleh.
Alat tenun Jacquard adalah aplikasi awal dari loop dalam konteks memesan mesin untuk menghasilkan output berulang :
Gagasan di balik alat tenun Jacquard adalah sistem kartu punch dan kait. Kartu-kartu itu dibuat sangat tebal dan berlubang-lubang persegi. Kait dan jarum yang digunakan dalam menenun dipandu oleh lubang-lubang ini di karton. Ketika kait bersentuhan dengan kartu, mereka ditahan diam kecuali jika menemukan salah satu lubang berlubang. Kemudian kait itu mampu melewati lubang dengan jarum memasukkan benang lain, sehingga membentuk pola yang diinginkan. Pola rumit dicapai dengan mengatur banyak kartu satu demi satu dan / atau digunakan berulang kali.
Alat tenun Jacquard juga diakui sebagai bentuk paling awal dari program tersimpan :
Jika dorongan di balik banyak pengembangan mesin hitung yang dibahas sejauh ini telah muncul dari perhitungan numerik, motivasi yang mengarah pada bentuk paling awal dari `program tersimpan 'berasal dari sumber yang sangat berbeda: industri tekstil. Kita telah melihat sebelumnya bahwa salah satu aspek mendasar dari sistem komputasi adalah konsep mewakili informasi dan, meskipun kami belum melakukannya secara eksplisit, penerapan ide ini dapat dilihat di semua artefak yang telah kami periksa sampai sekarang: dalam pengembangan representasi tertulis untuk nilai numerik dan persamaan mekanik yang muncul dari ini. Dengan demikian, penjajaran kerikil pada bingkai sempoa, penjajaran skala bergerak pada slide-rule, dan konfigurasi gigi bergerigi pada perangkat Schickard, Pascal dan Leibniz, adalah semua contoh teknik representasional yang berusaha menyederhanakan proses kompleks yang mendasari tugas aritmatika. Namun, ada kategori informasi, dan representasi daripadanya, selain dari jumlah di mana proses komputasi dapat dilakukan. Teknologi tenun yang dikembangkan oleh Joseph-Marie Jacquard pada tahun 1801 menggambarkan salah satu contoh kategori tersebut.
Charles Babbage juga mengadaptasi prosedur penyimpanan Jacquard ke dalam Analytical Engine , ada atau tidaknya lubang mengkomunikasikan perintah on-off sederhana ke mesin:
The Analytical Engine memiliki banyak fitur penting yang ditemukan di komputer digital modern. Itu dapat diprogram menggunakan kartu berlubang, sebuah ide yang dipinjam dari alat tenun Jacquard yang digunakan untuk menenun pola kompleks dalam tekstil. Mesin memiliki 'Toko' di mana angka dan hasil antara dapat disimpan, dan 'Penggilingan' terpisah di mana pemrosesan aritmatika dilakukan. Itu memiliki repertoar internal dari empat fungsi aritmatika dan dapat melakukan perkalian dan pembagian langsung. Itu juga mampu fungsi yang kami memiliki nama-nama modern: percabangan bersyarat, pengulangan (iterasi), pemrograman mikro, pemrosesan paralel, pengulangan, penguncian, pemungutan suara, dan pembentukan pulsa, antara lain, meskipun Babbage tidak menggunakan istilah-istilah ini. Itu memiliki berbagai output termasuk cetakan hardcopy, kartu berlubang,
Cabang bersyarat dari Analytical Engine yang dikombinasikan dengan loop mekanik yang diilhami Jacquard dan prosedur penyimpanannya sangat mirip (secara konseptual) dengan contoh Anda, terutama jika kita menambahkan printer Babbage ke dalam campuran, untuk print "...";
bagian - bagiannya.
Jelas loop mekanis ada sebelum alat tenun Jacquard, perangkat pertama yang diketahui bekerja secara melingkar adalah mekanisme Antikythera (100 SM), dan jika kita melihat lebih jauh ke dalam sejarah (dan menjelajah jauh dari topik), jam matahari mungkin merupakan mekanisme tertua buatan manusia di mana pemahaman tentang loop terbukti, mengikuti tentu saja pola berulang dari orbit matahari dan benda-benda bintang lainnya.
Namun saya berpikir bahwa dalam konteks komputasi (dan tidak menghitung atau apa pun), Analytical Engine dan algoritma perhitungan angka Bernoulli dapat dikreditkan untuk memperkenalkan loop, berbagi setidaknya beberapa kredit dengan alat tenun Jacquard, setelah secara langsung mengadaptasi konsep dari saya t.