Pindah Patch Tuesday – ini Ada Lovelace Day! Kecerdasan Data PlatoBlockchain. Pencarian Vertikal. Ai.

Pindah Patch Selasa - ini Ada Lovelace Day!

Selasa kedua setiap bulan adalah hari reguler Microsoft untuk pembaruan keamanan, masih dikenal oleh hampir semua orang dengan julukan tidak resmi "Patch Tuesday".

Tapi Selasa kedua di bulan Oktober juga Hari Ada Lovelace, merayakan Ada, Pangeran Lovelace.

Ada adalah pelopor sejati tidak hanya komputasi, tetapi juga ilmu komputer, dan memberikan namanya ke bahasa pemrograman Ada.

Bahasa Ada, secara menarik, muncul dari proyek Departemen Pertahanan AS yang bertujuan untuk "memperdebatkan" dunia pengkodean pemerintah, di mana setiap departemen tampaknya menyukai bahasa yang berbeda, atau dialek bahasa yang berbeda, membuatnya lebih sulit, lebih mahal, dan kurang dapat diandalkan untuk membuat mereka bekerja sama.

Ada memiliki banyak fitur sintaksis yang ditujukan untuk meningkatkan keterbacaan dan menghindari kesalahan umum. Tidak seperti komentar di C, yang dimulai dengan /* dan jalankan sampai berikutnya */, mungkin banyak baris kemudian, Ada mengabaikan apa pun setelahnya -- pada satu baris, jadi komentar tidak dapat berjalan lebih jauh dari yang Anda inginkan. Alih-alih melampirkan semua blok kode multiline dalam tanda kurung berlekuk-lekuk ({...}, juga dikenal sebagai kawat gigi), Ada memiliki terminator unik untuk setiap jenis blok multi-baris, mis end record, end loop dan end if. Ada Lovelace, kami menduga, akan memuji kejelasan bahasa senama, tetapi Ada-bahasa tidak pernah benar-benar tertangkap, dan sintaks braket berlekuk-lekuk C sebagian besar memenangkan hari, dengan Python mungkin satu-satunya bahasa kurung non-lekuk di penggunaan secara luas. Tanda kurung berlekuk adalah aspek penting dari C, C++, C#, Go, Java, JavaScript, Perl, Rust dan banyak bahasa populer lainnya.

Era Ada Lovelace

Anda mungkin terkejut menemukan, mengingat betapa kuatnya nama Ada dikaitkan dengan permulaan ilmu komputer, bahwa dia hidup pada paruh pertama abad kesembilan belas, jauh sebelum apa pun yang saat ini kita kenal sebagai komputer, atau bahkan kalkulator, ada. .

(Ada meninggal karena kanker rahim pada tahun 1852 pada usia 36 tahun.)

Tetapi meskipun komputer dalam pengertian modern mereka tidak ada di tahun 1800-an, mereka sangat dekat lakukan.

Begini caranya hampir terjadi.

Charles Babbage, pada awal 1800-an, terkenal merancang alat penghitung mekanis yang disebut Perbedaan mesin yang dapat, paling tidak secara teori, secara otomatis memecahkan persamaan polinomial pada derajat keenam, misalnya dengan mencari nilai untuk X yang memenuhi:

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

Pemerintah Inggris tertarik, karena perangkat semacam ini dapat digunakan untuk membuat tabel matematika yang akurat, seperti akar kuadrat, logaritma, dan rasio trigonometri.

Dan mesin apa pun yang pandai menghitung trigonometri juga akan berguna untuk menghitung hal-hal seperti tabel meriam yang dapat merevolusi akurasi artileri di darat dan laut.

Tetapi Babbage memiliki dua masalah.

Pertama, dia tidak pernah bisa mencapai presisi rekayasa yang diperlukan untuk membuat Mesin Perbedaan bekerja dengan baik, karena melibatkan cukup banyak roda gigi yang saling terkait sehingga serangan balik (ketidakakuratan kecil tapi kumulatif yang mengarah ke "kecerobohan" dalam mekanisme) akan menguncinya.

Kedua, ia tampaknya telah kehilangan minat pada Difference Engine ketika ia menyadari bahwa itu adalah jalan buntu – dalam istilah modern, Anda dapat menganggapnya sebagai kalkulator saku, tetapi bukan sebagai komputer tablet atau laptop.

Jadi Babbage melompat ke depan dengan desain perangkat yang lebih kompleks yang ia juluki Mesin Analitik, yang dapat menyelesaikan masalah ilmiah yang jauh lebih umum daripada satu jenis persamaan polinomial.

Mungkin tidak mengejutkan, jika sayangnya di belakang. pemerintah tidak terlalu tertarik untuk mendanai proyek Babbage yang lebih maju.

Mengingat bahwa dia belum berhasil membangun mekanisme yang diperlukan untuk pemecah persamaan yang jauh lebih sederhana, peluang apa yang dimiliki komputer serba guna raksasa bertenaga uap untuk memberikan hasil yang berguna?

Sirkuit konferensi Eropa

Dalam sentuhan kerjasama internasional multibahasa yang aneh, Babbage pergi ke Italia untuk memberikan kuliah yang mempromosikan Analytical Engine-nya.

Di antara penonton ada seorang insinyur militer bernama Kapten Luigi Menabrea, yang terinspirasi untuk bekerja sama dengan Babbage untuk menghasilkan kertas tahun 1842 yang menggambarkan mesin itu.

Meskipun dia orang Italia, Menabrea menerbitkan makalahnya dalam bahasa Prancis…

…dan Ada Lovelace-lah yang kemudian menerjemahkan makalah Menabrea ke bahasa Inggris.

Atas desakan Babbage, Ada juga menambahkan serangkaian Catatan oleh Penerjemah, yang ternyata tidak hanya dua kali lebih panjang dari laporan asli Menabrea, tetapi juga lebih mendalam, menjelaskan beberapa karakteristik penting dari apa yang sekarang kita sebut komputer serba guna.

Walter Isaacson, dalam bukunya yang sangat bagus untuk dibaca Para Inovator, diterbitkan pada tahun 2014, menjelaskan bagaimana Ada "menjelajahi empat konsep yang akan memiliki resonansi historis seabad kemudian ketika komputer akhirnya lahir":

  • Ada menyadari bahwa Analytical Engine, tidak seperti Difference Engine, benar-benar merupakan perangkat serba guna, karena itu tidak hanya dapat diprogram untuk melakukan satu hal, tetapi juga, dan relatif mudah, diprogram ulang untuk melakukan beberapa tugas yang sama sekali berbeda.

Dalam kata-kata Ada sendiri (ini adalah zaman di mana sastra ilmiah masih lebih banyak berhubungan dengan sastra daripada mungkin sekarang):

Mesin Perbedaan pada kenyataannya (seperti yang telah dijelaskan sebagian) tidak melakukan apa-apa selain menambahkan; dan setiap proses lain, tidak terkecuali pengurangan, perkalian dan pembagian sederhana, dapat dilakukan olehnya hanya sejauh dimungkinkan, dengan pengaturan dan kecerdasan matematis yang bijaksana, untuk mereduksinya menjadi serangkaian penambahan. Metode perbedaan sebenarnya adalah metode penambahan; dan karena itu termasuk dalam artinya sejumlah besar hasil yang dapat dicapai dengan penambahan sederhana, daripada prinsip matematika lainnya, itu sangat tepat dipilih sebagai dasar untuk membangun Mesin Penambah, sehingga memberikan kekuatan mesin semacam itu jangkauan seluas mungkin. Mesin Analitik, sebaliknya, dapat menambah, mengurangi, mengalikan atau membagi dengan fasilitas yang sama; dan melakukan masing-masing dari empat operasi ini secara langsung, tanpa bantuan salah satu dari tiga lainnya. Fakta yang satu ini menyiratkan segalanya; dan hampir tidak perlu untuk menunjukkan, misalnya, bahwa sementara Mesin Diferensial hanya dapat ditabulasi, dan tidak mampu berkembang, Mesin Analitis dapat mentabulasi atau berkembang.

  • Ada menyadari bahwa Analytical Engine tidak terbatas pada encoding dan komputasi dengan angka. Meskipun digital, dan berdasarkan pada kemampuan untuk melakukan perhitungan numerik, operasi digital ini, jelasnya, secara teori dapat mewakili proposisi logis (seperti yang kita terima hari ini di if ... then ... else ... end if pernyataan), not balok, dan sebagainya.

Seperti yang dikatakan Ada:

[Mesin Analitis] mungkin bertindak atas hal-hal lain selain angka, adalah objek yang ditemukan yang hubungan fundamental timbal baliknya dapat diungkapkan oleh orang-orang dari ilmu abstrak operasi, dan yang juga harus rentan terhadap adaptasi tindakan notasi operasi dan mekanisme mesin. Misalkan, misalnya, bahwa hubungan mendasar dari suara bernada dalam ilmu harmoni dan komposisi musik rentan terhadap ekspresi dan adaptasi seperti itu, mesin itu mungkin membuat karya musik yang rumit dan ilmiah dengan tingkat kerumitan atau tingkat apa pun. Mesin Analitik adalah perwujudan dari ilmu operasi, dibangun dengan referensi khusus ke nomor abstrak sebagai subjek operasi tersebut.

  • Ada datang dengan konsep penggunaan kembali bagian dari apa yang sekarang kita sebut program. Dalam pengertian ini, dia dapat dikatakan telah menemukan konsep subrutin, termasuk subrutin rekursif (fungsi yang menyederhanakan solusi dengan memecah perhitungan menjadi serangkaian subkalkulasi serupa, dan kemudian memanggil dirinya sendiri).
  • Ada pertama-tama dengan berguna menjawab pertanyaan "Dapatkah mesin berpikir?" Ini adalah masalah yang membuat kami khawatir sejak saat itu.

Koneksi Frankenstein

Ayah Ada (meskipun dia tidak pernah bertemu dengannya) adalah penyair terkenal Lord Byron, yang menghabiskan liburan hujan di Swiss menulis cerita horor dengan sahabat sastranya Percy dan Mary Shelley.

Upaya Byron dan Percy Shelley dalam kompetisi menulis persahabatan ini sepenuhnya dilupakan hari ini, tetapi novel mani Mary Shelley Frankenstein; atau, Prometheus Modern (diterbitkan pada tahun 1818) populer dan dihormati hingga hari ini.

Kisah Frankenstein terkenal mengeksplorasi dilema moral seputar apa yang sekarang kita sebut sebagai kecerdasan buatan. (Frankenstein, jangan lupa, adalah ilmuwan yang melakukan eksperimen, bukan AI yang muncul dari proyek tersebut.)

Ada, bagaimanapun, tampaknya tidak berbagi kekhawatiran dystopian teman ayahnya tentang Analytical Engine, atau memang tentang komputer pada umumnya.

Dia menawarkan pendapatnya, di bagian terakhirnya Catatan oleh Penerjemah, itu:

Mesin Analitik tidak memiliki pretensi apa pun untuk memulai sesuatu. Itu bisa melakukan apa pun yang kita tahu bagaimana memesannya untuk tampil. Itu bisa mengikuti analisis; tetapi ia tidak memiliki kekuatan untuk mengantisipasi hubungan analitis atau kebenaran apa pun. Provinsinya adalah untuk membantu kami menyediakan apa yang sudah kami kenal. Ini diperhitungkan untuk mempengaruhi terutama dan terutama tentu saja, melalui fakultas eksekutifnya; tetapi kemungkinan akan memberikan pengaruh tidak langsung dan timbal balik pada sains itu sendiri dengan cara lain. Karena, dalam mendistribusikan dan menggabungkan kebenaran dan formula analisis, sehingga mereka dapat dengan mudah dan cepat menerima kombinasi mekanis mesin, hubungan dan sifat banyak subjek dalam sains itu perlu dilemparkan ke dalam cahaya baru, dan diteliti lebih dalam. Ini adalah konsekuensi yang jelas tidak langsung, dan agak spekulatif, dari penemuan semacam itu.

Lebih dari 100 tahun kemudian, ketika Alan Turing secara terkenal meninjau kembali masalah kecerdasan buatan dalam makalahnya sendiri Mesin Komputer dan Kecerdasan, dan memperkenalkan nya Tes Turing yang sekarang terkenal, dia menjuluki ini Keberatan Lady Lovelace.

Apa yang harus dilakukan?

Lain kali Anda menemukan diri Anda menulis kode seperti…

   -- Hal yang funky: fungsi Ackermann. -- Dapat dihitung, tetapi bukan rekursif primitif! -- (Anda tidak dapat menulisnya dengan perulangan for -- lama, namun Anda dapat yakin itu akan selesai, -- bahkan jika itu membutuhkan waktu yang lama.) local ack = function(m,n) if m == 0 lalu kembalikan n+1 akhir jika n == 0 lalu kembalikan ack(m-1,1) akhir kembalikan ack(m-1,ack(m,n-1)) akhir

…ingat bahwa subrutin rekursif semacam ini semuanya dimulai dalam imajinasi ilmiah seseorang yang tahu seperti apa seharusnya komputer itu, dan seperti apa bentuknya, tetapi masih hidup (dan sayangnya mati sangat muda) 100 tahun sebelum perangkat semacam itu pernah ada ada baginya untuk diretas secara nyata.

Meretas komputer sebenarnya adalah satu hal, tetapi meretas dengan sengaja pada komputer imajiner, akhir-akhir ini, adalah sesuatu yang hanya bisa kita bayangkan.

Selamat Hari Ada Lovelace!


Stempel Waktu:

Lebih dari Keamanan Telanjang