Top-Fragen
Zeitleiste
Chat
Kontext
Codegolf
Aus Wikipedia, der freien Enzyklopädie
Remove ads
Codegolf ist ein Freizeit-Programmierwettbewerb, bei dem die Teilnehmer versuchen, einen bestimmten Algorithmus mit so wenig Quelltext wie möglich zu implementieren. Codegolf ist nicht zu verwechseln mit dem sogenannten „Sizecoding“, bei dem es darum geht, möglichst kleine ausführbare Binärdateien zu erzeugen. Manchmal wird Codegolf auch „Skriptgolf“ genannt oder, vor allem im Englischen, mit der zu verwendenden Programmiersprache verbunden (wie englisch „Perl golf“).
Remove ads
Geschichte
Zusammenfassung
Kontext
Die Länge des kürzestmöglichen Programms zur Erzeugung einer bestimmten Ausgabe (in einer bestimmten Programmiersprache) wird Kolmogorow-Komplexität genannt, benannt nach Andrey Kolmogorov aufgrund seiner mathematischen Arbeiten zu diesem Thema im Jahre 1963. Häufig geht es beim Codegolf mehr um eine allgemeine zu erreichende Eingabe-Ausgabe-Transformation als um das bloße Erreichen einer bestimmten Ausgabe ohne vorherige Eingabe.
Die Bezeichnung „Codegolf“ wurde vermutlich das erste Mal 1999 im Zusammenhang mit der Programmiersprache Perl verwendet;[1] und blieb wegen der Verbreitung der Sprache bei RSA-Verschlüsselungen zunächst in diesem Umfeld.[2] Ähnliche informelle Wettbewerbe waren aber unter APL-Hackern bereits früher bekannt gewesen. Heute wird der Ausdruck unabhängig von der Programmiersprache verwendet, was teilweise sogar zum Entstehen von Sprachen nur für Codegolfwettbewerbe geführt hat. Der systematische Gebrauch solch kurzer Quelltexte wird in der Praxis als „Spartanische Programmierung“ bezeichnet.[3]
Hintergrund der Bezeichnung „Codegolf“ ist das Bestreben im Golfsport, eine möglichst niedrige Punktzahl zu erreichen, im Gegensatz zum Ziel einer hohen Punktzahl in anderen Sportarten.
Remove ads
Arten von Codegolf
Viele Codegolfaufgaben fordern nicht eine bestimmte Programmiersprache. Meistens jedoch werden Einschränkungen gemacht, wie die Verwendung spezifischer Codegolfdialekte wie REBMU[4] (einem Dialekt der Sprache REBOL) oder Zeitlimits, um so die Aufgabe interessanter und herausfordernder zu gestalten.
Spezielle Codegolfsprachen
Mehrere Programmiersprachen wurden für den expliziten Gebrauch beim Codegolf entwickelt. Die bekanntesten unter ihnen sind GolfScript und Flogscript. Beide sind turingvollständig und bieten umfassende Möglichkeiten zum Ausdrücken komplexer Prozesse in wenigen Zeichen Quelltext. Ein Nachteil dieser Sprachen ist ihre schwere Lesbarkeit, die sie für den praktischen Einsatz ausschließt; man nennt sie daher unter anderem auch „esoterische Programmiersprachen“. Weitere Beispiele sind die Sprachen Pyth und CJam.[5]
Ein Beispiel in GolfScript, das die ersten fünfzig Stellen von Pi ausgibt:
;''
6666,-2%{2+.2/@*\/10.3??2*+}*
`50<~\;
-> 3141592653589793238462643383279502884197169399375
Wettbewerbe
Folgende Wettbewerbe erlauben mehrere Programmiersprachen: Anarchy Golf,[6] JAGC,[7] Shortening codes,[8] Code Golf & Coding Challenges, CodinGam, Code Golf. Der Wettbewerb 4clojure.com gestattet nur Clojure,[9] VimGolf nur Vim.
Siehe auch
Weblinks
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads