code golfとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > code golfの意味・解説 

コードゴルフ

(code golf から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/08 15:39 UTC 版)

ナビゲーションに移動 検索に移動

コードゴルフコンピュータプログラミング・コンテストの一種。参加者は与えられたアルゴリズムを、可能な限りもっとも短いソースコードで記述することを競う[1]。バイナリサイズではなく、ソースコードの文字数がスコアとなる。「Perl golf」など、トーナメントで使用されるプログラミング言語の名前がつけられることもある。ショートコーディング、コードパズル等とも呼ばれる[2]

歴史

この用法における「ゴルフ」という言葉は、1999年にPerlのニュースグループ上で初めて使用されたとされる[3]。その後、RSA暗号の暗号化プログラムが、5行のPerlプログラミングで実装されたことによって一般的となった[4]。同様の非公式なコンテストがAPLのハッカーらなどによって行われていたことも知られている。PHPでは十分な機能のウィキが1287文字で実装された[5]。その後、コードゴルフ用プログラミング言語の作成がきっかけとなり、多くのプログラミング言語においてもゴルフという言葉が使用されることとなった。よりシステム的、実践的である簡潔なプログラミングはen:Spartan Programming[※ 1]として知られている[6]

語源

「コードゴルフ」という用語は、参加者が高スコアではなく低いスコアを目指す得点形式であるため、そのようなスポーツやゲームの中でも一般的であるゴルフから名づけられた[1]

手法

ソースコードを短縮する手法として、次のようなものがある。

  • コメントは消去する[7]
  • スペースを省略する[8]
  • 変数の宣言を省略する[9]
  • 関数をなるべく使わないようにする[10]

コードゴルフ用プログラミング言語

コードゴルフを念頭に置いたいくつかの新しい言語が作られている。もっともよく知られているものとしてGolfScript英語版やFlogscriptがあり、コード上での簡潔な表現のアイデアを構築できるようになっている。これらはチューリング完全な言語である。コードゴルフ用言語は、一般的に難解であると考えられており、コードゴルフ以外の実用アプリケーションとしては、実行速度、可読性、機能において制限されている[要出典]バイナリラムダ計算英語版アルゴリズム情報理論をより具体化するために設計されたが、コードゴルフ用途にとどまっている。難解プログラミング言語のウィキにコードゴルフ用言語のリストが存在する[11]

以下に円周率を1000桁表示するGolfScriptの例を示す。

;''
6666,-2%{2+.2/@*\/10.3??2*+}*
`50<~\; #ページの都合上、出力を省略
 -> 3141592653589793238462643383279502884197169399375

コードゴルフの出題形式

一般的なプログラミングサイトなどで見られるコードゴルフ問題では、実装するプログラミング言語を特定しないこともある。しかし、例えば特定の言語の使用を制限するなどして、出題者が問題の形式を限定することもできる。このような「言語を特定しない」問題が作られることによって、コードゴルフに特化したプログラミング言語の派生設計につながった。例としては、REBOLの派生であるREBMU[※ 2]が挙げられる。オンライン上のコンテストでもライブでのコンテストでも時間制限が設けられることがある。

言語別のトーナメント

外部リンク

注釈

出典

  1. ^ a b 柳井政和 2014, p. 7.
  2. ^ プログラマ向けコードパズルサイト「コードダンジョン」公開”. マイナビニュース (2015年9月16日). 2015年11月28日閲覧。
  3. ^ Greg Bacon (28 May 1999). "Re: Incrementing a value in a slice". Newsgroupcomp.lang.perl.misc. Usenet: 7imnti$mjh$1@info2.uah.edu. 2011年7月12日閲覧
  4. ^ Back, Adam. “RSA in 5 lines of perl”. 2011年1月10日閲覧。
  5. ^ Wik Wiki A Wiki in 1287 characters of PHP”. 2015年12月2日閲覧。
  6. ^ Spartan Programming, Jeff Atwood英語版, Coding Horror, 08 Jul 2008
  7. ^ 柳井政和 2014, p. 28.
  8. ^ 柳井政和 2014, p. 29.
  9. ^ 柳井政和 2014, p. 30.
  10. ^ 柳井政和 2014, pp. 35-41.
  11. ^ List of dedicated golfing languages on the esowiki”. 2015年12月2日閲覧。
  12. ^ Anarchy Golf”. 2015年12月2日閲覧。
  13. ^ Just Another Golf Coding”. 2015年12月2日閲覧。
  14. ^ Shortening codes”. 2015年12月2日閲覧。
  15. ^ 4clojure League”. 2011年7月24日閲覧。

参考文献

  • 柳井政和 『プログラマのためのコードパズル JavaScriptで挑むコードゴルフとアルゴリズム』 技術評論社〈第1刷〉、2014年3月10日。ISBN 978-4-7741-6253-9 

「Code golf」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「code golf」の関連用語

code golfのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



code golfのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのコードゴルフ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS