Chuyển qua Bản vá thứ ba – đó là Ngày Ada Lovelace! Thông tin dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Di chuyển qua Patch Thứ Ba - đó là Ngày Ada Lovelace!

Thứ Ba thứ hai hàng tháng là ngày thường xuyên của Microsoft dành cho các bản cập nhật bảo mật, hầu hết mọi người vẫn được biết đến với biệt danh không chính thức là “Patch Tuesday”.

Nhưng thứ Ba thứ hai trong tháng Mười cũng là Ngày Ada Lovelace, kỷ niệm Ada, nữ bá tước Lovelace.

Ada là một nhà tiên phong thực sự không chỉ về máy tính mà còn về khoa học máy tính, và đã đặt tên của cô ấy cho ngôn ngữ lập trình Ada.

Ngôn ngữ Ada, hấp dẫn, xuất hiện từ một dự án của Bộ Quốc phòng Hoa Kỳ nhằm mục đích "phá vỡ" thế giới mã hóa của chính phủ, nơi mọi bộ phận đều ủng hộ một ngôn ngữ khác hoặc một phương ngữ ngôn ngữ khác, khiến nó trở nên khó khăn hơn, tốn kém hơn và ít đáng tin cậy hơn để họ làm việc cùng nhau.

Ada có nhiều tính năng cú pháp nhằm cải thiện khả năng đọc và tránh những lỗi phổ biến. Không giống như các nhận xét trong C, bắt đầu bằng /* và chạy cho đến lần tiếp theo */, có lẽ nhiều dòng sau đó, Ada chỉ đơn giản là bỏ qua bất cứ điều gì sau khi -- trên bất kỳ dòng nào, vì vậy nhận xét không thể vô tình chạy xa hơn dự định của bạn. Thay vì bao quanh tất cả các khối mã nhiều dòng trong dấu ngoặc vuông vắn ({...}, còn được biết là niềng răng), Ada có một dấu chấm cuối duy nhất cho mỗi loại khối nhiều dòng, ví dụ: end record, end loopend if. Ada Lovelace, chúng tôi nghi ngờ, sẽ hoan nghênh sự rõ ràng trong ngôn ngữ trùng tên của cô ấy, nhưng ngôn ngữ Ada chưa bao giờ thực sự bắt kịp và cú pháp ngoặc vuông của C đã phần lớn giành được thành công trong ngày, với Python có lẽ là ngôn ngữ duy nhất không phải là ngôn ngữ ngoặc vuông trong sử dụng rộng rãi. Dấu ngoặc vuông vắn là một khía cạnh quan trọng của C, C ++, C #, Go, Java, JavaScript, Perl, Rust và nhiều ngôn ngữ phổ biến khác.

Thời đại của Ada Lovelace

Bạn có thể ngạc nhiên khi thấy tên của Ada gắn liền với sự khởi đầu của khoa học máy tính mạnh mẽ như thế nào, rằng cô ấy sống vào nửa đầu thế kỷ XNUMX, rất lâu trước khi bất cứ thứ gì mà chúng ta hiện đang công nhận là máy tính, hay thậm chí là máy tính, tồn tại. .

(Ada chết vì ung thư tử cung năm 1852 khi mới 36 tuổi.)

Nhưng mặc dù máy tính theo nghĩa hiện đại của chúng không tồn tại vào những năm 1800, chúng rất gần đã làm.

Đây là cách nó gần như đã xảy ra.

Charles Babbage, vào đầu những năm 1800, nổi tiếng đã phát minh ra một thiết bị tính toán cơ học được gọi là Động cơ khác biệt mà theo lý thuyết, ít nhất có thể tự động giải các phương trình đa thức ở bậc sáu, ví dụ bằng cách tìm các giá trị cho X thỏa mãn:

aX6 + bX5 + cX4 + dX3 + eX2 + fX + g = 0

Chính phủ Vương quốc Anh quan tâm, bởi vì một thiết bị loại này có thể được sử dụng để tạo các bảng toán học chính xác, chẳng hạn như căn bậc hai, logarit và tỷ lệ lượng giác.

Và bất kỳ cỗ máy nào giỏi tính toán lượng giác cũng sẽ hữu ích cho việc tính toán những thứ như bảng điều khiển súng có thể tạo ra một cuộc cách mạng về độ chính xác của pháo binh trên đất liền và trên biển.

Nhưng Babbage có hai vấn đề.

Thứ nhất, anh ta không bao giờ có thể đạt đến độ chính xác kỹ thuật cần thiết để Động cơ Khác biệt hoạt động bình thường, bởi vì nó liên quan đến nhiều bánh răng lồng vào nhau khiến phản ứng dữ dội (những sai sót nhỏ nhưng tích lũy dẫn đến "sự cẩu thả" trong cơ chế) sẽ khóa nó lại.

Thứ hai, anh ấy dường như đã mất hứng thú với Công cụ chênh lệch khi nhận ra rằng nó đã đi vào ngõ cụt - theo thuật ngữ hiện đại, bạn có thể coi nó như một chiếc máy tính bỏ túi, nhưng không phải là một chiếc máy tính bảng hay một chiếc máy tính xách tay.

Vì vậy, Babbage đã đi trước với thiết kế của một thiết bị phức tạp hơn mà ông gọi là Công cụ phân tích, có thể giải ra các vấn đề khoa học tổng quát hơn nhiều so với một loại phương trình đa thức.

Có lẽ không có gì đáng ngạc nhiên, nếu đáng tiếc trong nhận thức muộn màng. chính phủ không quan tâm nhiều đến việc tài trợ cho dự án tiên tiến hơn của Babbage.

Cho rằng anh ta đã không quản lý để xây dựng cơ chế cần thiết cho một trình giải phương trình đơn giản hơn nhiều, thì cơ hội nào mà một chiếc máy tính đa năng, chạy bằng hơi nước, khổng lồ lại có thể mang lại bất kỳ kết quả hữu ích nào?

Vòng quanh hội nghị Châu Âu

Trong một bước ngoặt tò mò về hợp tác quốc tế, đa ngôn ngữ, Babbage đã đến Ý để thuyết trình về Công cụ phân tích của mình.

Trong khán giả là một kỹ sư quân sự tên là Đại úy Luigi Menabrea, người đã được truyền cảm hứng để hợp tác với Babbage để sản xuất một bài báo năm 1842 mô tả cỗ máy.

Mặc dù ông là người Ý, Menabrea đã xuất bản bài báo của mình bằng tiếng Pháp…

… Và chính Ada Lovelace sau đó đã dịch bài báo của Menabrea sang tiếng Anh.

Theo sự thúc giục của Babbage, Ada cũng đã thêm một loạt Ghi chú của Người dịch, hóa ra không chỉ dài hơn báo cáo ban đầu của Menabrea gấp đôi mà còn sâu sắc hơn, giải thích một số đặc điểm quan trọng của cái mà ngày nay chúng ta gọi là máy tính đa năng.

Walter Isaacson, trong cuốn sách đáng đọc xuất sắc của mình Những người đổi mới, được xuất bản vào năm 2014, mô tả cách Ada "Đã khám phá bốn khái niệm sẽ gây được tiếng vang lịch sử một thế kỷ sau khi máy tính cuối cùng ra đời":

  • Ada nhận ra rằng Công cụ phân tích, không giống như Công cụ khác biệt, thực sự là một thiết bị có mục đích chung, bởi vì nó không chỉ có thể được lập trình để làm một việc mà còn, và tương đối dễ dàng, được lập trình lại để thực hiện một số tác vụ hoàn toàn khác.

Nói theo cách riêng của Ada (đây là thời đại mà văn học khoa học vẫn còn liên hệ với văn học nhiều hơn có lẽ ngày nay):

Trong thực tế, Công cụ khác biệt có thể (như đã được giải thích một phần) không làm gì khác ngoài việc thêm vào; và bất kỳ quy trình nào khác, không ngoại trừ các quy trình trừ, nhân và chia đơn giản, chỉ có thể được thực hiện bởi nó chỉ ở mức độ mà nó có thể, bằng cách sắp xếp toán học hợp lý và các công thức, để giảm chúng thành một loạt các phép cộng. Phương pháp của sự khác biệt, trên thực tế, là một phương pháp bổ sung; và vì nó bao gồm một số lượng lớn hơn các kết quả có thể đạt được bằng cách cộng đơn giản, hơn bất kỳ nguyên tắc toán học nào khác, nó đã được lựa chọn rất thích hợp làm cơ sở để tạo ra một Máy cộng, để cung cấp cho sức mạnh của một máy như vậy phạm vi rộng nhất có thể. Ngược lại, Công cụ phân tích có thể cộng, trừ, nhân hoặc chia với cơ sở ngang nhau; và thực hiện từng hoạt động trong số bốn hoạt động này một cách trực tiếp mà không cần sự hỗ trợ của bất kỳ hoạt động nào trong ba hoạt động còn lại. Một thực tế này ngụ ý tất cả mọi thứ; và chẳng cần thiết phải chỉ ra rằng trong khi Công cụ khác biệt chỉ có thể lập bảng và không có khả năng phát triển, thì Công cụ phân tích có thể lập bảng hoặc phát triển.

  • Ada nhận ra rằng Công cụ phân tích không chỉ giới hạn trong việc mã hóa và tính toán với các con số. Mặc dù kỹ thuật số và dựa trên khả năng thực hiện các phép tính số, nhưng các phép toán số này, theo cô giải thích, về lý thuyết có thể đại diện cho các mệnh đề logic (như ngày nay chúng ta vẫn coi là điều hiển nhiên trong if ... then ... else ... end if câu lệnh), nốt nhạc, v.v.

Như Ada đã nói:

[Công cụ phân tích] có thể hoạt động dựa trên những thứ khác ngoài số, là các đối tượng được tìm thấy mà các mối quan hệ cơ bản lẫn nhau có thể được thể hiện bằng các quan hệ của khoa học trừu tượng về hoạt động và cũng dễ bị thích ứng với hoạt động của ký hiệu hoạt động và cơ chế của động cơ. Chẳng hạn, giả sử rằng các mối quan hệ cơ bản của các âm cao độ trong khoa học hòa âm và sáng tác âm nhạc dễ bị biểu hiện và chuyển thể như vậy, thì động cơ có thể tạo ra các bản nhạc phức tạp và khoa học ở bất kỳ mức độ hoặc mức độ phức tạp nào. he Analytical Engine là một hiện thân của khoa học về các phép toán, được xây dựng với tham chiếu đặc biệt đến số trừu tượng như là chủ đề của các phép toán đó.

  • Ada đã đưa ra khái niệm sử dụng lại các phần của cái mà ngày nay chúng ta gọi là chương trình. Theo nghĩa này, có thể nói bà là người đã phát minh ra khái niệm chương trình con, bao gồm các chương trình con đệ quy (các hàm đơn giản hóa lời giải bằng cách chia một phép tính thành một loạt các phép tính con tương tự, rồi gọi chúng).
  • Ada lần đầu tiên giải quyết một cách hữu ích câu hỏi "Máy móc có thể suy nghĩ không?" Đây là một vấn đề đã khiến chúng tôi lo lắng kể từ đó.

Kết nối Frankenstein

Cha của Ada (mặc dù cô chưa bao giờ gặp ông) là nhà thơ khét tiếng Lord Byron, người đã trải qua một kỳ nghỉ mưa ở Thụy Sĩ một cách đáng nhớ để viết những câu chuyện kinh dị với những người bạn văn học Percy và Mary Shelley của mình.

Những nỗ lực của Byron và Percy Shelley trong cuộc thi viết thân thiện này đã hoàn toàn bị lãng quên ngày nay, nhưng cuốn tiểu thuyết nổi tiếng của Mary Shelley Frankenstein; hoặc, Prometheus hiện đại (xuất bản năm 1818) phổ biến và được coi trọng cho đến ngày nay.

Câu chuyện Frankenstein nổi tiếng khám phá những tình huống khó xử về đạo đức xung quanh thứ mà ngày nay chúng ta có thể gọi là trí thông minh nhân tạo. (Frankenstein, đừng quên, là nhà khoa học đã tiến hành thí nghiệm, không phải AI xuất hiện từ dự án.)

Ada, tuy nhiên, dường như không chia sẻ mối quan tâm khó hiểu của người bạn của cha cô về Công cụ phân tích, hoặc thực sự về máy tính nói chung.

Cô ấy đưa ra ý kiến, trong phần cuối cùng của cô ấy Ghi chú của Người dịch, cái đó:

Công cụ phân tích không có giả thiết nào bắt nguồn từ bất kỳ thứ gì. Nó có thể làm bất cứ điều gì chúng ta biết cách ra lệnh cho nó thực hiện. Nó có thể theo sau phân tích; nhưng nó không có sức mạnh dự đoán bất kỳ mối quan hệ phân tích hoặc sự thật nào. Tỉnh bang là hỗ trợ chúng tôi cung cấp những gì chúng tôi đã quen thuộc. Điều này được tính toán để thực hiện chủ yếu và chủ yếu, tất nhiên, thông qua các bộ phận điều hành của nó; nhưng nó có khả năng gây ảnh hưởng gián tiếp và tương hỗ lên bản thân khoa học theo một cách khác. Bởi vì, khi phân phối và kết hợp các chân lý và công thức phân tích, để chúng có thể trở nên dễ dàng và nhanh chóng phù hợp nhất với sự kết hợp cơ học của động cơ, các mối quan hệ và bản chất của nhiều môn học trong khoa học đó nhất thiết phải được đưa ra ánh sáng mới, và được điều tra sâu sắc hơn. Đây là một hệ quả hoàn toàn gián tiếp và có phần suy đoán của một phát minh như vậy.

Chỉ hơn 100 năm sau, khi Alan Turing nổi tiếng xem xét lại vấn đề trí tuệ nhân tạo trong bài báo của chính mình Máy tính và trí thông minh, và giới thiệu Bài kiểm tra Turing nổi tiếng hiện nay, anh ấy đặt tên cho cái này Sự phản đối của Lady Lovelace.

Phải làm gì?

Lần tới khi bạn thấy mình viết mã chẳng hạn như…

   - Một điều thú vị: chức năng Ackermann. - Tính toán được, nhưng không phải là đệ quy nguyên thủy! - (Bạn không thể viết nó bằng các vòng for - cũ đơn giản, nhưng bạn có thể chắc chắn rằng nó sẽ hoàn thành, - ngay cả khi nó mất một khoảng thời gian.) Local ack = function (m, n) if m == 0 thì trả về n + 1 end nếu n == 0 thì trả về ack (m-1,1) end return ack (m-1, ack (m, n-1)) end

… Hãy nhớ rằng các chương trình con đệ quy kiểu này đều bắt đầu trong trí tưởng tượng khoa học của một người biết máy tính trông như thế nào và nó có thể trông như thế nào, nhưng vẫn sống (và thật đáng buồn là chết rất trẻ) 100 năm trước khi có bất kỳ thiết bị nào như vậy tồn tại để cô ấy hack vào là có thật.

Hack trên các máy tính thực tế là một chuyện, nhưng hack có mục đích trên các máy tính tưởng tượng, ngày nay, là điều mà chúng ta chỉ có thể tưởng tượng.

Chúc mừng ngày Ada Lovelace!


Dấu thời gian:

Thêm từ An ninh trần trụi