2 poin oleh GN⁺ 2024-04-30 | 1 komentar | Bagikan ke WhatsApp

Pengenalan makalah penelitian tentang hubungan antara Paint Splatters dan bahasa pemrograman Perl

  • Makalah yang diterima untuk dipublikasikan di konferensi SIGBOVIK 2019 dan memenangkan penghargaan "Unwitting Participation Ribbon"
  • Jika cat dipercikkan ke dinding, dengan probabilitas 93% akan terbentuk program Perl yang valid
  • Menggunakan pendekatan empiris dengan perangkat lunak optical character recognition (OCR)
  • Menganalisis karakteristik program Perl yang dihasilkan dari Paint Splatter, serta menyajikan 7 contoh Paint Splatter yang bukan merupakan program Perl yang valid

Pengenalan materi pelengkap makalah

  • Menampilkan semua Paint Splatter dan source code Perl valid yang bersesuaian dalam satu halaman tunggal
  • Gambar yang tidak ter-parse sebagai program Perl valid ditandai merah dengan label "tidak valid"
  • Jika beberapa program Perl valid dikenali dengan pengaturan OCR yang berbeda, penulis memilih yang paling "menarik" menurut selera estetikanya
  • Menyediakan tarball berisi 100 gambar Paint Splatter yang digunakan sebagai set data utama makalah

Contoh menarik program Perl dari Paint Splatter yang ditemukan setelah tenggat pengumpulan makalah

  • Splatter yang dikenali sebagai string lerzfijglpFiji-j dan dievaluasi sebagai angka 0 di Perl
  • Gambar yang dikenali sebagai string *?- dan dievaluasi sebagai angka 0 di Perl
  • Gambar yang dikenali sebagai string ;i;c;;#\\\\?z{;?;;fn':.; dan dievaluasi sebagai string "c" di Perl
  • Gambar yang dikenali sebagai string ;E,'_', dan dievaluasi sebagai string "E_" di Perl

Opini GN⁺

  • Tampaknya ini makalah yang mengeksplorasi karakteristik bahasa pemrograman dengan ide yang unik dan lucu. Ini terasa seperti contoh yang baik yang secara ironis menunjukkan fleksibilitas sintaks Perl.
  • Namun, muncul pertanyaan apakah hasil penelitian ini menyiratkan adanya masalah dalam desain bahasa Perl. Fakta bahwa string acak pun bisa ter-parse hingga 93% bukankah menunjukkan ambiguitas bahasa?
  • Menarik untuk membayangkan hasil seperti apa jika eksperimen serupa diterapkan pada bahasa pemrograman lain. Dengan membandingkan hasil antarbahasa, kita mungkin bisa mengintip perbedaan filosofi desain bahasa.
  • Memvisualisasikan tata bahasa pemrograman dengan cara seperti ini juga tampak sebagai percobaan yang menarik. Ini sepertinya dapat membantu memahami kompleksitas atau keteraturan tata bahasa secara visual.

1 komentar

 
GN⁺ 2024-04-30
Komentar Hacker News
  • Fakta bahwa perangkat lunak OCR masih menghasilkan keluaran teks bahkan dari gambar yang bukan teks adalah sebuah kekeliruan. Saya ingat saat memindai buku lama dengan OCR 10 tahun lalu, betapa menjengkelkannya harus menangani teks sampah yang dihasilkan dari gambar kecil, noda, debu, dan sebagainya. Tampaknya belum ada kemajuan besar di bidang ini sejak saat itu.

  • Bahasa concatenative memiliki sifat bahwa setiap urutan token adalah program yang valid.

    • Untuk bahasa yang menggunakan satu bit sebagai token, setiap urutan bit adalah program yang valid.
    • zot karya Chris Barker adalah salah satu bahasa seperti itu.
    • Terinspirasi oleh zot, saya mendefinisikan versi concatenative dari Binary Lambda Calculus, dan versi ini juga memiliki sifat yang sama.
  • Ada catatan kaki yang menarik:

    • Program Perl "Illegal division by zero at /tmp/quine.pl line 1." jika disimpan di lokasi yang tepat akan mencetak "Illegal division by zero at /tmp/quine.pl line 1.". Alasan mengapa ini bisa terjadi saya serahkan sebagai latihan bagi pembaca.
  • Tulisan terkait:

    • "93% of Paint Splatters Are Valid Perl Programs (2019)" (Juli 2021, 163 komentar)
    • "93% of Paint Splatters Are Valid Perl Programs (2019)" (Desember 2023, 1 komentar)
  • Tulisan ini membahas tentang sebuah program "optical character recognition" tertentu yang mengenali cipratan cat sebagai karakter. Program ini tampaknya hampir selalu cenderung mengenalinya sebagai semacam kombinasi karakter.

  • Di antara berbagai cara untuk mewujudkan ini, yang ini jelas patut disambut dan sesuai dengan semangatnya. Tetapi ini juga memberi kesan awal tentang metode lain yang mungkin, seperti menganggap bercak warna dan ruang kosong sebagai 0 dan 1 lalu memandang keseluruhannya sebagai program. Dalam kasus seperti itu, kebanyakan hasilnya akan berupa noise yang tak bermakna.

  • Ada dua ekstrem: ekstrem di mana sebagian besar adalah noise, dan ekstrem di mana sebagian besar adalah makna. Permainan di dalam permainan di sini adalah menemukan cara penafsiran yang memberikan makna sebanyak mungkin pada cipratan cat. Pada saat yang sama, makna itu harus benar-benar muncul dari strukturnya, bukan dari seberapa agresif aturan memilih untuk melihat makna.

  • Ini adalah versi cerdas dari lelucon lama tentang "tidak bisa dibedakan dari line noise".

  • Dengan AI generatif, kita bisa membuat cipratan cat baru yang inovatif, yang dinilai sebagai perangkat lunak yang berfungsi, dengan lebih cepat. AI generatif memungkinkan lapisan kreator baru memanfaatkan dan menggunakan alur kerja teks-ke-gambar, serta memberikan nilai bagi bisnis dalam segala skala. Model AI baru dapat menyematkan perangkat lunak yang berfungsi dan kode yang dapat dibaca mesin ke dalam beragam konten resolusi tinggi untuk memikat audiens dan memberi kreator cara baru dan menarik untuk memperluas audiens mereka.

  • Diposting pada 1 April. Ini mengisyaratkan sesuatu.

  • Sebagai programmer Perl, saya menganggap 7% yang tidak berfungsi itu sebagai bug.