Dalam perkembangan mengejutkan yang mencabar definisi pengaturcaraan, International Obfuscated C Code Contest 1994 telah menganugerahkan hadiah Penyalahgunaan Peraturan Terburuk kepada apa yang mungkin menjadi program swahsalin terkecil di dunia - fail kosong.
Szymon Rusinkiewicz, seorang pengaturcara dari Amerika Syarikat, telah menghantar penyertaan yang tidak konvensional ini yang kemudiannya mencetuskan perdebatan tentang sifat program C yang sah dan batasan pengaburan kod.
Paradoks Kod Kosong
Penyertaan Rusinkiewicz, yang dinamakan smr.c , pada asasnya adalah fail kosong. Walaupun ini mungkin kelihatan seperti penyertaan jenaka pada pandangan pertama, ia menimbulkan persoalan menarik tentang sifat bahasa pengaturcaraan dan tingkah laku pengompil.
Para hakim menyatakan bahawa walaupun smr.c bukan program C yang sah secara teknikal, ia juga tidak tidak sah. Sesetengah pengompil C akan mengompil fail kosong menjadi program yang tidak melakukan apa-apa, menjadikannya program yang sah, walaupun minimal.
Tingkah Laku Pengompil dan Piawaian
Penyertaan luar biasa ini telah mencetuskan perbincangan dalam kalangan pengaturcara tentang piawaian bahasa C dan tingkah laku pengompil. Menurut piawaian C89, unit terjemahan sepatutnya mengandungi sekurang-kurangnya satu pengisytiharan luaran. Walau bagaimanapun, piawaian tidak secara khusus memerlukan fungsi main() , berbeza dengan apa yang mungkin diandaikan oleh ramai pengaturcara.
Sesetengah pengompil, seperti GCC (GNU Compiler Collection), menolak fail kosong dengan mesej ISO C melarang unit terjemahan kosong. Perbezaan dalam tingkah laku pengompil ini menambah satu lagi lapisan kerumitan kepada perdebatan mengenai penyertaan Rusinkiewicz.
Kesan pada Pertandingan Masa Hadapan
Kepintaran penyertaan ini telah membawa kepada perubahan dalam peraturan pertandingan. Iterasi masa hadapan International Obfuscated C Code Contest akan menetapkan keperluan saiz minimum yang satu aksara lebih besar daripada penyertaan ini, secara efektif menghalang penyertaan serupa pada masa hadapan.
Mendefinisi Semula Swahsalin
Apa yang menjadikan penyertaan ini sangat menarik adalah tuntutannya sebagai program swahsalin. Apabila dilaksanakan, output program tersebut sama dengan kod sumbernya - iaitu, ia tidak mengoutputkan apa-apa. Ini mencabar pemahaman konvensional kita tentang program swahsalin dan menimbulkan persoalan falsafah tentang sifat penghasilan semula dalam konteks perisian.
Kesimpulan
Penyertaan fail kosong Rusinkiewicz menjadi peringatan tentang kepentingan definisi tepat dalam sains komputer dan cara-cara tidak dijangka dalam mana peraturan boleh ditafsirkan. Ia menunjukkan bahawa walaupun dalam bidang yang begitu ketat seperti pengaturcaraan, masih ada ruang untuk kreativiti, humor, dan perenungan falsafah.
Ketika kita terus menolak sempadan apa yang mungkin dalam pengekodan, penyertaan seperti ini mengingatkan kita untuk mempersoalkan andaian kita dan berfikir di luar kotak - atau dalam kes ini, di dalam fail kosong.