93% aller Farbkleckse sind gültiger Perl-Code

5. April 2019 12:32 | #Fun #Programmierung

Ich habe selbst keine wirkliche Ahnung von Perl-Code, weiß aber dass ich mit meinen rudimentären C64-Assembler-Kenntnissen oft genug vor Programmzeilen saß und mir nur „Heilige Scheiße was soll das“ dachte. Die Programmiersprache Perl gilt aufgrund seiner ihrer exzessiven Nutzung von sogenannten Sigils (die Zeichen $@%&* zur Deklaration von Variablen) und seiner Fähigkeit, Zeichenketten ohne Gänsefüsschen zu deklarieren, als Programmiersprache, die besonders hässlichen Code erzeugt. So ist zum Beispiel

@P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{@p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&&close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print

valider Code.

Im Februar frage nun Jake Archibald, ob es überhaupt möglich sei, Farbe an eine Wand zu schmieren, ohne validen Perl-Code zu erzeugen und diese Frage wurde nun von Colin McMillen und Tim Toady in einem neuen Paper untersucht. Ihre Antwort: 93% aller Farbkleckse, die durch eine Texterkennung in Schrift konvertiert werden, erzeugen validen Perl-Code. Es ist also möglich, Farbe an eine Wand zu schmieren, ohne valide Perl-Programme zu schreiben, es ist aber sehr unwahrscheinlich. 100% aller Batik-Shirts würden dem zustimmen.

Hier alle untersuchten Farbkleckse inklusive validem Perl-Code.

While we successfully found valid Perl programs in 93 of 100 input images, all of these programs are uninteresting; they don’t actually seem to do anything when executed. However, some of them do evaluate to a value, which is then discarded without being displayed.

We therefore passed each valid program into Perl’s eval() function and printed out the result of evaluating it. Many of these are simple integer literals. Figure 2 shows an input image which is read by OCR as the string “35”, which evaluates to the number 35 when parsed by Perl. […]

In all, the dataset contains 20 images which can be parsed as numeric literals. An interesting thing about these images is that they’re not particularly Perl-specific; for example, the program shown in Figure −3 also evaluates as the number −3 in Python (and presumably several other programming languages.) […]

The remainder of the valid Perl programs are mostly valid due to a Perl language feature that is not commonly present in most programming languages. Namely, Perl has a feature called “unquoted strings”, in which a sequence of alphanumeric characters by itself is parsed as though it were a quoted string.

Jetzt Nerdcore unterstützen!

Nerdcore veröffentlicht seit mehr als 12 Jahren Analysen und Dokumentationen zu Memetik, Netz-Soziologie und digitalen Subkulturen, garniert mit jeder Menge Kunst, Entertainment und Unfug. Nerdcore prägte die deutsche Netzkultur maßgeblich, initiierte die erste deutsche Meme, ging Frau Merkel mit Flashmobs auf die Nerven und manche Menschen behaupten, ich würde ab und zu gute Arbeit abliefern.

Die Website ist seit 2017 werbefrei und wird aus Spenden und Abonnements finanziert. Um den Betrieb der Seite und meine Vollzeitstelle zu sichern, könnt ihr gerne ein Abonnement auf Patreon oder Steady abschließen oder mir eine einmalige Spende oder einen Dauerauftrag per Paypal oder auf mein Konto (IBAN DE05100100100921631121) zukommen lassen.

Vielen Dank an alle Leser und Unterstützer dieses Blogs.

Neu auf Nerdcore:

Nerdcore auf Twitter

Greta Thunberg ist Time Mags Person des Jahres 2019

Konradsen 🍂

This Banana didn’t kill itself

Musikvideos_AJJ Gewalt Okay Kaya Cold Beat Rejoicer Trentemøller Lizzo Pink Siifu Mumford & Sons Swampmeat Family Band

Trailerfest_The New Pope Antlers Ashfall