Như mouviciel và Emilio Garavaglia đã lưu ý, khái niệm này có trước khi tính toán. Tuy nhiên, ví dụ đầu tiên của vòng lặp phần mềm là vòng lặp Ada Lovelace được sử dụng để tính các số Bernoulli , như được mô tả trong Chú giải G về bản dịch Phác thảo của Công cụ phân tích được phát minh bởi Charles Babbage , bởi LF Menabrea . Khả năng lặp của Công cụ phân tích được Menabrea ghi nhận sớm:
Điều này được hiểu, chúng ta, khi bắt đầu một loạt các hoạt động mà chúng ta muốn thực hiện, đặt kim C trên bộ phận 2, kim B trên bộ phận 5 và kim A trên bộ phận 9. Chúng ta hãy cho phép búa của mặt số C để tấn công; nó sẽ tấn công hai lần, đồng thời kim B sẽ vượt qua hai bộ phận. Sau đó sẽ chỉ ra số 7, thành công số 5 trong cột của sự khác biệt đầu tiên. Nếu bây giờ chúng ta cho phép búa của mặt số B tấn công lần lượt, nó sẽ tấn công bảy lần, trong thời gian đó kim A sẽ tiến lên bảy sư đoàn; những cái này được thêm vào số chín đã được đánh dấu bởi nó sẽ cho số 16, là số vuông liên tiếp đến 9. Nếu bây giờ chúng tôi đề xuất các thao tác này, bắt đầu bằng kim C, luôn luôn được để lại trên phân chia 2,
Cơ chế lặp của Công cụ phân tích được kế thừa trực tiếp từ máy dệt cơ của Joseph Marie Jacquard (1801), như được ghi chú trong hồi ký của Menabrea:
Bây giờ nó sẽ được hỏi làm thế nào máy có thể tự nó, và không cần phải nhờ đến bàn tay của con người, giả định các bố trí liên tiếp phù hợp với các hoạt động. Giải pháp cho vấn đề này đã được lấy từ bộ máy của Jacquard, được sử dụng để sản xuất các sản phẩm thổ cẩm, theo cách sau: -
Hai loài sợi thường được phân biệt trong các chất liệu dệt; một là sợi dọc hoặc sợi dọc, sợi kia là sợi ngang hoặc sợi ngang, được truyền tải bởi dụng cụ gọi là tàu con thoi và băng qua sợi dọc hoặc sợi dọc. Khi một công cụ gấm được yêu cầu, đến lượt nó là cần thiết để ngăn chặn một số chủ đề nhất định vượt qua âm thanh giả, và điều này theo một kế tiếp được xác định bởi bản chất của thiết kế sẽ được sao chép. Trước đây, quá trình này kéo dài và khó khăn, và điều cần thiết là người thợ, bằng cách tham dự vào thiết kế mà anh ta sẽ sao chép, nên tự mình điều chỉnh các chuyển động mà các luồng cần thực hiện. Từ đó phát sinh mức giá cao của mô tả chất liệu này, đặc biệt là nếu các sợi có nhiều màu khác nhau được đưa vào vải. Để đơn giản hóa sản xuất này, Jacquard đã nghĩ ra kế hoạch kết nối từng nhóm chủ đề sẽ hành động cùng nhau, với một đòn bẩy riêng biệt thuộc về nhóm đó. Tất cả các đòn bẩy này chấm dứt trong các thanh, được kết hợp với nhau trong một bó, thường có dạng song song với một đế hình chữ nhật. Các thanh có dạng hình trụ, và được ngăn cách với nhau theo các khoảng nhỏ. Do đó, quá trình nâng cao các luồng được giải quyết bằng cách di chuyển các đòn bẩy khác nhau theo thứ tự cần thiết. Để thực hiện điều này, một tấm bảng hình chữ nhật được lấy, có kích thước lớn hơn một phần so với một phần của bó đòn bẩy. Nếu tờ này được áp dụng cho đế của bó và một chuyển động tiến lên sau đó được truyền đến bảng, cái sau này sẽ di chuyển cùng với tất cả các thanh của bó, và do đó, các chủ đề được kết nối với mỗi trong số họ. Nhưng nếu bảng, thay vì đơn giản, bị xuyên thủng bằng các lỗ tương ứng với các cực của đòn bẩy đáp ứng nó, thì, vì mỗi đòn bẩy sẽ đi qua bảng trong quá trình chuyển động của cái sau, tất cả chúng sẽ vẫn ở trong chúng nơi. Do đó, chúng tôi thấy rằng thật dễ dàng để xác định vị trí của các lỗ trên bảng, rằng, tại bất kỳ thời điểm nào, sẽ có một số đòn bẩy nhất định, và do đó là các lô chỉ, được nâng lên, trong khi phần còn lại vẫn ở nơi chúng là. Giả sử quy trình này được lặp lại liên tục theo một luật được chỉ định bởi mẫu sẽ được thực thi, chúng tôi nhận thấy rằng mẫu này có thể được sao chép trên công cụ. Đối với mục đích này, chúng tôi chỉ cần soạn một loạt các thẻ theo luật pháp yêu cầu, và sắp xếp chúng theo thứ tự phù hợp cái khác; sau đó, bằng cách làm cho chúng vượt qua một chùm đa giác được kết nối với nhau để biến một mặt mới cho mỗi cú đánh của tàu con thoi, mặt đó sẽ được đặt song song với chính nó chống lại bó đòn bẩy, hoạt động nâng cao chủ đề sẽ được thực hiện thường xuyên. Do đó, chúng ta thấy rằng các mô gấm có thể được sản xuất với độ chính xác và nhanh chóng trước đây rất khó thu được.
Máy dệt của Jacquard là một ứng dụng rất sớm của một vòng lặp trong bối cảnh đặt hàng máy để tạo ra đầu ra lặp lại :
Ý tưởng đằng sau máy dệt Jacquard là một hệ thống thẻ đục lỗ và móc. Các thẻ được làm rất dày và có các lỗ hình chữ nhật được đục lỗ trong đó. Các móc và kim được sử dụng trong dệt được hướng dẫn bởi các lỗ trên bìa cứng. Khi các móc tiếp xúc với thẻ, chúng được giữ cố định trừ khi nó gặp phải một trong các lỗ đục lỗ. Sau đó, móc đã có thể đi qua lỗ bằng kim chèn một sợi khác, do đó tạo thành mẫu mong muốn. Các mẫu phức tạp đã đạt được bằng cách sắp xếp nhiều thẻ lần lượt từng thẻ và / hoặc được sử dụng nhiều lần.
Máy dệt của Jacquard cũng được công nhận là một hình thức rất sớm của một chương trình được lưu trữ :
Nếu động lực đằng sau sự phát triển của máy tính toán được thảo luận cho đến nay đã phát sinh từ tính toán số, thì động lực dẫn đến hình thức 'chương trình lưu trữ' sớm nhất là đến từ một nguồn rất khác: ngành dệt may. Chúng tôi đã thấy trước đó rằng một trong những khía cạnh cơ bản của hệ thống tính toán là khái niệm biểu diễn thông tin và mặc dù chúng tôi chưa thực hiện một cách rõ ràng, việc áp dụng ý tưởng này có thể được nhận thấy trong tất cả các đồ tạo tác mà chúng tôi đã kiểm tra cho đến nay: trong sự phát triển của các biểu diễn bằng văn bản cho các giá trị số và các vĩ tuyến cơ học xuất hiện từ các giá trị này. Do đó, sự liên kết của các viên sỏi trên khung bàn tính, vị trí của các thang di chuyển trên quy tắc trượt và cấu hình của các bánh răng bị kẹt trên các thiết bị của Schickard, Pascal và Leibniz, là tất cả các ví dụ về các kỹ thuật biểu diễn tìm cách đơn giản hóa các quy trình phức tạp làm cơ sở cho các nhiệm vụ số học. Tuy nhiên, có các loại thông tin và các đại diện của chúng, ngoài số lượng mà các quy trình tính toán có thể được thực hiện. Công nghệ dệt được phát triển bởi Joseph-Marie Jacquard vào năm 1801 minh họa một ví dụ về loại này.
Charles Babbage cũng điều chỉnh quy trình lưu trữ của Jacquard vào Công cụ phân tích , sự hiện diện hay vắng mặt của lỗ đã truyền một lệnh tắt đơn giản cho máy:
Công cụ phân tích có nhiều tính năng cần thiết được tìm thấy trong máy tính kỹ thuật số hiện đại. Nó được lập trình bằng cách sử dụng thẻ đục lỗ, một ý tưởng mượn từ máy dệt Jacquard được sử dụng để dệt các mẫu phức tạp trong hàng dệt may. Công cụ có 'Cửa hàng' nơi có thể giữ số và kết quả trung gian và 'Mill' riêng biệt nơi xử lý số học được thực hiện. Nó có một tiết mục nội bộ của bốn chức năng số học và có thể thực hiện phép nhân và chia trực tiếp. Nó cũng có khả năng cho các chức năng mà chúng ta có các tên hiện đại: phân nhánh có điều kiện, lặp (lặp), lập trình vi mô, xử lý song song, lặp, chốt, bỏ phiếu và tạo xung, trong số những thứ khác, mặc dù Babbage không sử dụng các thuật ngữ này. Nó có nhiều kết quả đầu ra bao gồm bản in cứng, thẻ đục lỗ,
Các nhánh có điều kiện của Công cụ phân tích kết hợp với các vòng cơ học và quy trình lưu trữ lấy cảm hứng từ Jacquard rất giống với ví dụ của bạn, đặc biệt là nếu chúng tôi thêm máy in của Babbage vào hỗn hợp, cho các print "...";
bộ phận.
Rõ ràng là các vòng cơ học có trước máy dệt của Jacquard, thiết bị đầu tiên được biết đến hoạt động theo kiểu vòng lặp là cơ chế Antikythera (100 BCE), và nếu chúng ta nhìn xa hơn vào lịch sử (và mạo hiểm một cách khủng khiếp về chủ đề), thì đồng hồ có lẽ là cơ chế lâu đời nhất của con người trong đó sự hiểu biết về các vòng lặp là hiển nhiên, dĩ nhiên sau đó là mô hình lặp lại của quỹ đạo của mặt trời và các sao khác.
Tuy nhiên, tôi nghĩ rằng trong bối cảnh điện toán (và không tính toán hay bất cứ điều gì khác), thuật toán tính toán số Bernoulli của Công cụ phân tích và Ada có thể được ghi nhận để giới thiệu các vòng lặp, chia sẻ ít nhất một số tín dụng với máy dệt của Jacquard, đã điều chỉnh trực tiếp khái niệm từ nó