Saya ingin membahas gagasan yang telah diberikan banyak poster, bahwa bahasa seperti itu akan "tidak berguna". Mungkin tidak ada gunanya bagi manusia untuk menulis, secara manual, dengan maksud menyelesaikan beberapa tugas tertentu. Namun, meskipun merupakan use-case mayoritas untuk bahasa pemrograman, itu tentu saja bukan satu-satunya use case. Beberapa penggunaan kasus muncul di mana bahasa seperti itu berguna, dan kita bisa melihat ke bidang-bidang tersebut untuk contoh-contoh bahasa tersebut.
Pertama kiasan Cort Amon untuk genetika adalah tempat di: transformasi program pertanyaan (menggantikan )
untuk 5
) dapat dilihat sebagai mutasi . Jenis manipulasi ini biasa terjadi dalam bidang perhitungan evolusi ; khususnya algoritma genetika melakukan transformasi pada string , sementara pemrograman genetika mengubah program . Dalam kedua kasus tersebut, kami biasanya ingin menetapkan makna untuk setiap kemungkinan, karena itu akan menghasilkan ruang pencarian paling kompak.
Algoritma genetika bergantung pada semacam fungsi evaluasi untuk string; jika kita menggunakan penerjemah bahasa pemrograman sebagai fungsi evaluasi kita, maka kita memiliki skenario di mana bahasa pemrograman yang memberi makna pada semua string yang mungkin berguna. Dalam pemrograman genetika, diasumsikan bahwa fungsi evaluasi kami adalah juru bahasa pemrograman, tetapi kami dapat memilih berbagai representasi untuk program kami; misalnya, banyak sistem beroperasi pada pohon sintaksis abstrak. Jika kita memilih string sebagai representasi kita, maka kita memulihkan skenario yang sama dengan algoritma genetika.
Situasi lain di mana kita mungkin ingin setiap string menjadi program yang valid adalah ketika menghitung program. Ini terkait dengan penambangan yang disebutkan oleh CodesInChaos, tetapi kami mungkin lebih suka beroperasi pada string daripada bilangan alami karena beberapa alasan:
- Jika ada beberapa struktur dalam bahasa, mis. kita dapat menetapkan arti pada sub-string, ini mungkin hilang ketika menerjemahkan ke bilangan alami. Dalam hal ini kami mungkin lebih suka menggunakan string, untuk alasan tentang dan mengubah sub-string secara lokal, daripada mewakili seluruh program sebagai angka. Ini analog dengan bagaimana kita lebih suka menggunakan operasi bitwise pada int daripada ekspresi aritmatika, ketika masing-masing bit memiliki makna individual. Ini pada dasarnya adalah generalisasi dari skenario evolusi.
- Kami mungkin ingin membuat program sesuai permintaan; misalnya, kita mungkin mulai menjalankan program yang sama sekali tidak ditentukan, dan hanya menghasilkan (mis. secara acak) instruksi individual (mis. karakter) ketika / jika penunjuk instruksi mencapainya. Ini umum dalam teori informasi algoritmik, di mana program tersebut adalah pita mesin Turing, dan tujuannya adalah untuk mengkarakterisasi perilaku program yang dihasilkan secara acak. Sebagai contoh, kita dapat merumuskan Solomonoff sebelum string arbitrer sebagai probabilitas bahwa mesin Turing universal dengan pita acak akan menghasilkan string itu.
Dalam hal bahasa contoh, banyak sistem perhitungan evolusioner didasarkan pada bahasa stack seperti keluarga Push . Ini cenderung memungkinkan aliran token yang sewenang-wenang (yang dapat kami wakili sebagai karakter individu). Terkadang (seperti contoh Brainfuck dari BrainSlugs83) ada batasan untuk menyeimbangkan tanda kurung; namun, kita dapat mengaitkannya dengan program-program pembatas-sendiri , di mana string seperti [
mungkin bukan program yang valid , tetapi ini adalah awalan program yang valid . Jika kita membayangkan kompiler / interpreter membaca kode sumber dari stdin, maka itu tidak akan menolak string seperti [
, itu hanya akan menunggu lebih banyak input sebelum melanjutkan.
Bahasa seperti Binary Combinatory Logic dan Binary Lambda Calculus muncul secara langsung karena teori informasi algoritmik, misalnya. dari http://tromp.github.io/cl/cl.html
Desain komputer universal minimalis ini dimotivasi oleh keinginan saya untuk menghasilkan definisi konkret tentang Kompleksitas Kolmogorov, yang mempelajari keacakan objek-objek individual.
You are a bimbo.