Kod golf

Codegolf er en rekreativ programmeringskonkurrence, hvor deltagerne forsøger at implementere en bestemt algoritme med så lidt kildekode som muligt. Codegolf må ikke forveksles med såkaldt "sizecoding", som handler om at skabe de mindst mulige eksekverbare binære filer . Nogle gange kaldes kodegolf også "script golf" eller, især på engelsk, er knyttet til det programmeringssprog, der skal bruges (såsom " pearl golf" på engelsk ).

historie

Længden af ​​det kortest mulige program til generering af et specifikt output (på et specifikt programmeringssprog) kaldes Kolmogorov Complexity , opkaldt efter Andrey Kolmogorov på grund af hans matematiske arbejde med dette emne i 1963. Ofte handler kodegolf mere om et generelt input, der skal opnås. Output transformation snarere end blot at opnå en bestemt output uden forudgående input.

Udtrykket "Codegolf" blev sandsynligvis brugt for første gang i 1999 i forbindelse med Perl programmeringssproget; og opholdt sig i dette miljø for tiden på grund af spredningen af ​​sproget med RSA-kryptering . Lignende uformelle konkurrencer var allerede kendt blandt APL- hackere. I dag bruges udtrykket uafhængigt af programmeringssproget, hvilket i nogle tilfælde endda har ført til fremkomsten af ​​sprog kun til kodegolfkonkurrencer. Den systematiske anvendelse af sådanne korte kildetekster kaldes i praksis "spartansk programmering".

Baggrunden for betegnelsen "kodegolf" er bestræbelsen inden for golf for at opnå det lavest mulige antal point i modsætning til målet om et højt antal point i andre sportsgrene.

Typer af kodegolf

Mange kode golfopgaver kræver ikke et specifikt programmeringssprog. For det meste er der imidlertid indført begrænsninger, såsom brug af specifikke golfdialekter som REBMU (en dialekt af REBOL- sproget ) eller tidsbegrænsninger for at gøre opgaven mere interessant og udfordrende.

Speciel kode golfsprog

Flere nye programmeringssprog er blevet udviklet til eksplicit brug i kodegolf. De mest kendte blandt dem er GolfScript og Flogscript. Begge er Turing-komplette og tilbyder omfattende muligheder for at udtrykke komplekse processer med få tegn i kildekoden. Ulempen ved disse sprog er deres dårlige lave læsbarhed, hvilket gør dem umulige til praktisk brug; de kaldes derfor ofte " esoteriske programmeringssprog ". Andre eksempler er sprogene Pyth og CJam .

Et eksempel i GolfScript, der udskriver de første halvtreds cifre i Pi :

;''
6666,-2%{2+.2/@*\/10.3??2*+}*
`50<~\;
 -> 3141592653589793238462643383279502884197169399375

Konkurrencer

Følgende konkurrencer tillader flere programmeringssprog: Anarchy Golf , JAGC , Shortening Codes , Code Golf & Coding Challenges , CodinGam , Code Golf . Den 4clojure.com konkurrence kun tillader Clojure , VimGolf kun tillader Vim .

Se også

Weblinks

Individuelle beviser

  1. ^ Greg Bacon: Re: Forøgelse af en værdi i et stykke. 28. maj 1999, adgang til 12. juli 2011 .
  2. Adam Tilbage: RSA i 5 linjer af perle . Hentet 10. januar 2011.
  3. ^ Spartansk programmering , Jeff Atwood , Coding Horror , 8. juli 2008
  4. REBMU: Kode Golf Gem til mennesker
  5. liste over specifikke golfsprog : Liste over dedikerede golfsprog på esowiki .
  6. ^ Anarkigolf .
  7. ^ Bare endnu en golfkodning .,
  8. Afkortning koder .
  9. 4clojure League . Hentet 24. juli 2011: "Mens det primære formål med 4clojure.com er at lære Clojure" ved at gøre ", kan du også vælge at konkurrere om den korteste løsning. Dette er kærligt kendt som kodegolf: jo lavere din score, jo bedre, får du den? Hvis du vælger at deltage, scorer vi dine korrekte løsninger baseret på antallet af tegn, der ikke er mellemrum (og nogle flere metrics i fremtiden). "