Obfuscated Perl Contest

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der Obfuscated Perl Contest ist ein Programmierwettbewerb. Die Teilnehmer reichen in der Programmiersprache Perl verfasste kurze Programme ein, deren Funktionsweise im Quelltext auf möglichst kreative Weise verschleiert (englisch: obfuscated) wurde. (Dies ist normalerweise nicht Ziel bei der Programmierung; siehe aber auch: Obfuscator.)

Wettbewerbe dieser Art, die auch für andere Programmiersprachen veranstaltet werden, dienen vorrangig der Unterhaltung der beteiligten Programmierer. Die Erstellung, aber auch die Analyse der Funktionsweise der Wettbewerbsbeiträge ist in der Regel außerordentlich lehrreich; darin besteht – neben dem Unterhaltungswert – der Nutzen solcher Wettbewerbe für die Programmierer der jeweiligen Programmiersprache.

Historie[Bearbeiten]

Der Wettbewerb wurde erstmals 1996 von Felix S. Gallo in der Fachzeitschrift The Perl Journal ausgerufen. Er fand danach jährlich statt, im Jahre 2000 vermutlich zum letzten Mal.

Gewinner wurden in vier Kategorien gekürt:

  • Die beste vierzeilige Signature
    Es gewinnt das beste Programm, dessen Quelltext in 4 Zeilen zu je 76 Zeichen passt (die Größe einer Signature).
  • Das mächtigste Programm
    Es gewinnt das Programm, das den größten Effekt mit dem geringsten Aufwand erzielt (maximal 1024 Bytes).
  • Das kreativste Programm
    Es gewinnt das Programm mit der verblüffendsten Kombination von Verschleierung und Funktionalität (maximal 2048 Bytes).
  • Das beste The Perl Journal
    Es gewinnt das beste Programm, das – in der Tradition der „Just another Perl hacker“-Programme – den Text „The Perl Journal“ ausgibt (maximal 2048 Bytes).

Die Beiträge wurden bewertet nach den Kriterien Ästhetik (des Quelltextes), Output (Ausgabe am Terminal) und Unverständlichkeit (im Sinne von maximaler Obfuscation). Jedes Jahr wurde außerdem einem Beitrag der Best of Show award verliehen. Die Siegerbeiträge wurden im Perl Journal veröffentlicht, können heute allerdings nur noch gegen Gebühr in den Verlagsarchiven eingesehen werden (siehe www.tpj.com).

Beispiel[Bearbeiten]

Nachstehendes Programm von Mark Jason Dominus, ein sogenanntes „JAPH“, gewann den 2. Preis im fünften Obfuscated Perl Contest in der Kategorie „Die beste vierzeilige Signature“. Es erzeugt in unnötig, aber hier gewollt komplizierter Weise die Ausgabe „Just another Perl / Unix hacker“. (Eine ausführliche Erklärung der Funktionsweise ist verfügbar, siehe Weblinks.)

@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

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Wettbewerbsbeiträge[Bearbeiten]

Bei den folgenden Wettbewerbsbeiträgen ist die Kategorie unbekannt.

Sonstige[Bearbeiten]