Apa itu Kode yang Memodifikasi Sendiri?

Self-modifying code adalah filosofi pemrograman di mana pengembang membuat program yang mampu mengubah pengkodeannya sendiri ketika dieksekusi. Sementara pengembang dapat memasukkan parameter untuk kode yang dimodifikasi sendiri, biasanya ia mengubah dan mengoptimalkan dirinya sendiri tanpa interaksi. Ada beberapa fenomena komputer yang menyebabkan pengkodean berubah secara tidak sengaja, tetapi hanya kode modifikasi diri yang disengaja yang benar-benar dianggap sebagai modifikasi diri. Ini paling sering digunakan oleh pengembang untuk meningkatkan pengkodean mereka, karena menjalankan pengkodean berkali-kali dapat sangat meningkatkan desain aslinya.

Aspek yang paling menentukan dari kode modifikasi diri adalah kemampuannya untuk mengubah dirinya sendiri menjadi lebih baik. Ini hanya dapat dilakukan ketika pengkodean bersiap untuk dieksekusi dan ketika sedang bersiap untuk dijalankan. Kode yang mengeksekusi harus mengambil stok perangkat lunak komputer saat ini, keadaan dan faktor lainnya, jadi ini biasanya membantu kode mengenali kesalahan pemrosesan untuk memperbaiki pemrosesannya sendiri.

Pengembang terkadang menetapkan parameter untuk kode yang dimodifikasi sendiri, seperti mengoreksi dirinya sendiri sebagian besar untuk kinerja, tetapi kode biasanya akan memperbaiki dirinya sendiri tanpa interaksi atau perintah. Selain meningkatkan pemrosesan, kode juga akan menghapus kode yang tidak diperlukan yang hanya menyeret program dan akan mengurangi panjang jalur. Pada saat yang sama, pengembang dapat menentukan area yang tidak dapat diubah, karena mengubah beberapa bagian kode dapat menyebabkan seluruh program terganggu atau berhenti bekerja.

Sebuah fenomena kadang-kadang terjadi pada perangkat lunak di mana pengkodean berubah tanpa pengembang menulis instruksi apa pun untuk melakukannya. Ini biasanya terjadi dengan pembusukan perangkat lunak atau masalah buffer dan, ketika pengkodean sedang diubah, itu tidak dianggap sebagai kode yang memodifikasi sendiri. Ada dua alasan untuk ini, salah satunya adalah bahwa perubahan tersebut tidak dilakukan secara sengaja oleh pengembang. Alasan kedua adalah bahwa pemrograman yang dimodifikasi sendiri dimaksudkan untuk meningkatkan pengkodean, sementara buffer dan masalah pembusukan menurunkan pengkodean.

Ada banyak manfaat memiliki kode yang dapat dimodifikasi sendiri, karena kode tersebut akan terus bekerja untuk meningkatkan dirinya sendiri berdasarkan keadaan komputer saat ini dan faktor internal lainnya. Ini paling ketat digunakan oleh pengembang sebelum kode dijual atau didistribusikan. Dengan membiarkan kode berjalan terus-menerus, ini memungkinkan pemrograman untuk memperbaiki dirinya sendiri dan setiap kesalahan atau masalah yang disebabkan oleh pengembang selama pembuatan pengkodean. Penggunaan lain untuk ini adalah di komputer dengan memori terbatas, karena kode ini akan merespon kekurangan memori dengan mengurangi ukurannya sendiri.