HN 日本語サマリー

← 一覧へ戻る
プログラミング

ペンキの飛び散りの93%は有効なPerlプログラムである(2019年)

93% of Paint Splatters Are Valid Perl Programs (2019) (mcmillen.dev)

82 pointsby zenincognito17 コメント

要約

本研究では、プログラミング言語コミュニティにおける長年の未解決問題、「壁にペンキを飛ばしても有効なPerlプログラムにならないようにすることは可能か?」に答えを試みます。結論として、ペンキの飛び散りのわずか93%しか有効なPerlとして解析されないことが、経験的なアプローチとOCRソフトウェアを用いて示されました。本稿では、ペンキの飛び散りPerlプログラムの特性を分析し、有効なPerlプログラムではない7つの例を提示します。

全文翻訳

ペンキの飛び散りの93%は有効なPerlプログラムである

投稿日: 2019-04-01

TLDR: 論文を読む および きれいなPerlプログラムのギャラリーを見る。

本稿では、プログラミング言語コミュニティにおける長年の未解決問題、「壁にペンキを飛ばしても有効なPerlプログラムにならないようにすることは可能か?」に答えを試みます。

我々はこれを肯定的に回答します。壁にペンキを飛ばしても有効なPerlプログラムにならないようにすることは可能です。我々は経験的なアプローチを採用し、光学文字認識(OCR)ソフトウェアを使用しました。その結果、ペンキの飛び散りのわずか93%しか有効なPerlとして解析されないことがわかりました。我々はペンキの飛び散りPerlプログラムの特性を分析し、有効なPerlプログラムではない7つのペンキの飛び散りの例を提示します。

[画像: Twitterでの会話のスクリーンショット。Adrienne Porter Feltが「子供にコーディングを教えたくない。泥水で遊び、壁に絵の具を塗り、夜遅くまで毛布の下で小説を読むように育てたい。私は早く成長しすぎたので、もっと子供でいる時間が欲しかった。なぜ学校はこんなに早くから職業スキルを教えるのだろうか?」と述べている。Jake Archibaldが「しかし、壁にペンキを塗っても有効なPerlにならないようにすることは可能か?」と返信している。]

2019年4月1日にピッツバーグで開催されたSIGBOVIK 2019での発表が採択されました。受賞したのは「意図しない参加リボン」で、「慎重な精査の結果、本物の成果物を含んでいると判断された各論文に付けられた、望ましくないレッテルであり、オープンサイエンスと有益な先延ばしの高潔な目的をさらに推進するものである」とされています。

Google Docsで読むか、PDFをダウンロードしてください。またはSIGBOVIK 2019の全議事録を入手してください。私は174ページに掲載されています。

追加資料

ここにすべてのペンキの飛び散りを1ページにまとめ、それぞれの対応する有効なPerlソースコードとともに示します。「無効」は、有効なPerlプログラムとして解析されなかった画像に対して赤色で書かれています。異なるOCR設定で複数の有効なPerlプログラムが認識された場合、私自身の美的感覚に従って、最も「興味深い」と思われるものを選択しました。

ここに、本論文の主要なデータセットとして使用された100個のペンキの飛び散り画像のtarballがあります。

(ソースコードはまだ利用できません。なぜなら私はGitHubが苦手だからです)

正誤表

SIGBOVIKの提出締め切り後に、「興味深い」と認識できなかったペンキの飛び散りPerlプログラムがいくつかあります。例えば、この飛び散りはOCRによって文字列 lerzfijglpFiji-j として認識され、Perlでは数値 0 として評価されます。

[[画像: ペンキの飛び散り]]

下の画像は文字列 -*? として認識され、これもPerlでは数値 0 として評価されます。

[[画像: ペンキの飛び散り]]

もう一つの驚くべきプログラムを以下に示します。OCRはこの画像を文字列 ;i;c;;#\?z{;?;;fn':.; として認識し、Perlでは文字列 c として評価されます。

[[画像: ペンキの飛び散り]]

最後に、この画像は文字列 ;E,'__' として認識され、Perlでは文字列 E__ として評価されます。

[[画像: ペンキの飛び散り]]