
2026/11/12 7:34
スプラッターのうち 93% が有効な Perl プログラムである(2019)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
はい。キーポイントリストの完全性をよりよく反映するために、改善されたバージョンではコード中发现された非標準文字列の具体例を、一般統計および刊行情報と併せて含んでいます。
改善後の要約:
本ユーモアあふれる論文は、光学文字認識(OCR)によって解釈された無作為の絵具飛び散りを、有効な Perl プログラムとして機能するかどうかを検討しています。2019 年 4 月 1 日、ピッツバーグで開催された SIGBOVIK で発表された本研究では、これらの無作為な画像のうち約 93%が有効なコードとして正しくパースされることが結論付けられ、言語が視覚的なノイズに対して寛容であることが強調されています。著者らは絵具飛び散り画像 100 件のデータセットを発表し、対応するソースコードを含む補助 tarball を提供しています(無効なケースは赤色でマーク)。7 つの具体的な例において、飛び散りが有効なコードを形成しない場合が示されていますが、その他にも驚くべき結果を生じる例があります。例えば、一部の画像は「0」といった単純な数値としてパースされます(「-*?」や「lerzfijglpFiji-j」などの文字列から)。また、他の例は「c」、「E__」、または「;i;c;;#\?z{;?;;fn':.,」といった特定の文字列として評価されます。本作品は、そのユニークなアートのアプローチにより、無自覚参加リボンを受賞し、提出期限後にも発見された追加の興味深い成果を含む誤植も記載されています。完全な論文内容は会議資料の 174 ページにあります。ただし、著者がプラットフォームとの個人的な困難を抱えているため、特定のソースコードは現在 GitHub にホストされていません。
本文
ペンキ投げつけで有効な Perl プログラムが生成されるか:研究報告(2019 年 4 月 1 日)
研究成果の概要
本研究は、「壁に絵を描く(ペンキを塗る)ことによって、有効な Perl プログラムが生成されるのか」という長年の問いに対する肯定的な結論を提供します。
- 手法: 実証的なアプローチと光学文字認識(OCR)ソフトウェアを用いた分析を採用。
- 主な発見: ペンキの飛散によって生じるテキストのうち、約 93% が有効な Perl コードとして解析可能です。
- 詳細分析:
- ペンキ飛散による「Perl プログラム」の特性を詳解。
- 有効な Perl と判定されない 7 つの具体的な例 を紹介。
公開情報と受賞状況
本論文は、以下の場面で受理・掲載予定および評価されました。
- 学会: SIGBOVIK 2019(2019 年 4 月 1 日、ピッツバーグ開催)。
- 受賞賞項: 「無自覚参加リボン(Unwitting Participation Ribbon)」を受賞。
- 評価基準: 慎重な審査を経て、genuine の文脈として存在する事象を論文に含めていること。
- 寄与: オープンサイエンスの推進や、有益な procrastination の向上への貢献。
アクセス方法
以下から全文をご覧いただけます。
- Google Docs で閲覧
- PDF をダウンロード(リンク先)
- SIGBOVIK 2019 の全体 proceedings を入手し、掲載ページ (174 ページ) を確認。
補足資料
以下の特集資料が提供されています。
- 画像集とソースコード:
- ペンキ飛散の画像を 1 ページにまとめた資料。
- 各画像に対応する有効な Perl ソースコード(※「Not valid」は赤色で表記)。
- 注記: 異なる OCR 設定で複数の解釈がある場合、**最も「興味深い」**ものと判断したものを採用。
- データセット:
- 本論文で主要に使用された 100 枚のペンキ飛散画像を含む tarball。
- ※ GitHub の操作に不慣れなため、現時点では対応するソースコードは公開不可。
【追補】新規発見例
SIGBOVIK 提出期限後に見つかった、以下のような「興味深い」Perl プログラムを追加で紹介しています。
- 例 1: OCR で
と認識lerzfijglpFiji-j- 結果:数値 0 を返す。
- 例 2: OCR で
と認識- * ?- 結果:数値 0 を生成する。
- 例 3: OCR で
と解釈;i;c;;#\\?z{;?;;fn':.;,- 結果:Perl において文字列
を返す。"c"
- 結果:Perl において文字列
- 例 4: OCR で
と認識E,'__'- 結果:文字列
が得られる。"E__"
- 結果:文字列