2 puan yazan GN⁺ 2024-04-30 | 1 yorum | WhatsApp'ta paylaş

Paint Splatters ile Perl programlama dili arasındaki ilişkiyi inceleyen araştırma makalesinin tanıtımı

  • SIGBOVIK 2019 konferansında kabul edilen ve "Unwitting Participation Ribbon" ödülünü alan makale
  • Boya duvara sıçratıldığında %93 olasılıkla geçerli bir Perl programı oluşuyor
  • Optik karakter tanıma (OCR) yazılımı kullanılarak ampirik bir yaklaşım benimsendi
  • Paint Splatter ile oluşturulan Perl programlarının özellikleri analiz ediliyor ve geçerli Perl programı olmayan 7 Paint Splatter örneği sunuluyor

Makalenin ek materyallerinin tanıtımı

  • Tek bir sayfada tüm Paint Splatter'lar ve bunlara karşılık gelen geçerli Perl kaynak kodları gösteriliyor
  • Geçerli bir Perl programı olarak ayrıştırılamayan görseller kırmızı renkte "geçersiz" olarak işaretlenmiş
  • Farklı OCR ayarlarıyla birden fazla geçerli Perl programı tanındığında, yazarın estetik tercihine göre en "ilginç" olan seçilmiş
  • Makalenin ana veri kümesi olarak kullanılan 100 Paint Splatter görselini içeren bir tarball sağlanıyor

Makale teslim tarihinden sonra keşfedilen ilginç Paint Splatter Perl programı örnekleri

  • lerzfijglpFiji-j dizgesi olarak tanınan ve Perl'de sayısal 0 olarak değerlendirilen bir sıçrama
  • *?- dizgesi olarak tanınan ve Perl'de sayısal 0 olarak değerlendirilen bir görsel
  • ;i;c;;#\\\\?z{;?;;fn':.; dizgesi olarak tanınan ve Perl'de "c" dizgesi olarak değerlendirilen bir görsel
  • ;E,'_', dizgesi olarak tanınan ve Perl'de "E_" dizgesi olarak değerlendirilen bir görsel

GN⁺ görüşü

  • Programlama dilinin özelliklerini özgün ve eğlenceli bir fikirle inceleyen bir makale gibi görünüyor. Perl'in sözdizimsel esnekliğini ironik biçimde gösteren iyi bir örnek olabilir.
  • Ancak bu makalenin bulgularının, Perl dil tasarımındaki sorunlara işaret edip etmediği merak uyandırıyor. Rastgele dizgelerin bile %93 oranında ayrıştırılabilmesi, dilin belirsizliğini ortaya koyuyor olabilir mi?
  • Benzer bir deneyin başka programlama dillerine uygulanması durumunda nasıl sonuçlar çıkacağı da merak konusu. Diller arasındaki sonuç karşılaştırmaları, dil tasarımı felsefelerindeki farklara dair ipuçları verebilir.
  • Programlama dili sözdizimini bu şekilde görselleştirmek de ilginç bir deneme olabilir. Sözdiziminin karmaşıklığını veya düzenliliğini görsel olarak kavramaya yardımcı olabilir.

1 yorum

 
GN⁺ 2024-04-30
Hacker News yorumu
  • OCR yazılımının, metin olmayan görüntülerden bile hâlâ metin çıktısı üretmesi hatalı bir şey. 10 yıl önce eski kitapları OCR ile taradığımda, küçük resimler, lekeler, toz vb. üzerinden üretilen çöp metni ayıklamanın ne kadar can sıkıcı olduğunu hatırlıyorum. Bu alanda o zamandan beri büyük bir ilerleme olmuş gibi görünmüyor.

  • Concatenative diller, her token dizisinin geçerli bir program olma özelliğine sahiptir.

    • Token olarak tek bit kullanan bir dil söz konusuysa, her bit dizisi geçerli bir programdır.
    • Chris Barker'ın zot'u bu tür dillerden biridir.
    • zot'tan esinlenerek Binary Lambda Calculus'un concatenative bir sürümünü tanımladım; bu sürüm de aynı özelliği paylaşıyor.
  • Eğlenceli bir dipnot var:

    • Perl programı Illegal division by zero at /tmp/quine.pl line 1. uygun bir konuma kaydedilirse Illegal division by zero at /tmp/quine.pl line 1. çıktısını verir. Bunun neden böyle çalıştığını okuyucuya alıştırma olarak bırakıyorum.
  • İlgili yazılar:

    • "93% of Paint Splatters Are Valid Perl Programs (2019)" (Temmuz 2021, 163 yorum)
    • "93% of Paint Splatters Are Valid Perl Programs (2019)" (Aralık 2023, 1 yorum)
  • Bu yazı, belirli bir "optik karakter tanıma" programının boya sıçramalarını karakter olarak tanımasıyla ilgili. Bu program, neredeyse her zaman bir tür karakter kombinasyonu tanımaya meyilli görünüyor.

  • Bunu gerçekleştirmenin çeşitli yolları arasında, bu yöntem kesinlikle memnuniyetle karşılanacak türden ve ruhuna uygun. Ama aynı zamanda, renk ve boşluk yamalarını 0 ve 1 olarak ele alıp bütünü bir program olarak görmek gibi başka olası yöntemlere dair ilk izlenimi de veriyor. Böyle bir durumda çoğu şey anlamsız gürültü olurdu.

  • Gürültünün çoğunlukta olduğu bir uç ile anlamın çoğunlukta olduğu bir uç olmak üzere iki uç var. Buradaki oyunun içindeki oyun, boya sıçramasına mümkün olduğunca fazla anlam yükleyen bir yorumlama biçimi bulmak. Bu sırada anlam, kuralların anlam görmeyi seçmede ne kadar saldırgan olduğundan değil, gerçekten yapının içinden çıkmalıdır.

  • "Satır gürültüsünden ayırt edilemez" şeklindeki eski şakanın zekice bir varyasyonu.

  • Generative AI kullanarak, çalışan yazılım olarak değerlendirilen yeni ve yenilikçi boya sıçramalarını daha hızlı üretebilirsiniz. Generative AI, yeni bir yaratıcı katmanının text-to-image iş akışlarından yararlanmasına ve bunları kullanmasına olanak tanır, ayrıca her ölçekteki işletmeye değer sunar. Yeni AI modelleri, çalışan yazılımı ve makine tarafından okunabilir kodu çeşitli yüksek çözünürlüklü içeriklerin içine gömebilir; bu da izleyiciyi cezbetmeye ve yaratıcılara kitlelerini büyütmek için yeni ve heyecan verici yollar sunmaya yardımcı olur.

  • 1 Nisan'da yayımlandı. Bu bir şeye işaret ediyor.

  • Bir Perl programcısı olarak, çalışmayan %7'nin bug olduğunu düşünüyorum.