ICFPプログラミングコンテストは、1998年から毎年6月か7月頃に開催されている国際的なプログラミングコンテストで、結果は国際関数型プログラミング会議で発表されます。
チームの規模や使用するプログラミング言語に制限はありません。参加費も無料です。参加者は72時間以内にインターネット経由で応募作品を完成させて提出する必要があります。24時間以内のライトニングディビジョンが設けられる場合もあります。
優勝者は、自分たちの言語が「目の肥えたハッカーにとって最適なプログラミングツール」であると自慢する権利を得る。そのため、このコンテストの目的の一つは、参加者が好んで使うプログラミング言語やツールの性能を披露することにある。過去の優勝者は、Haskell、OCaml、C++、Cilk、Java、F#、Rustなどを使用してきた。
コンテストには通常、約300件の応募作品が寄せられます。[ 1 ] [ 2 ]
伝統
ICFPプログラミングコンテストの特筆すべき伝統の一つは、コミュニティ内で興奮と憶測を掻き立てるように設計された、入念な事前予告を公開することである。これらはしばしば、公式開始のはるか前からチームを惹きつける、謎めいた「ネタバレ」や物語的なパズルといった形をとる。
際立った例として、2011年のコンテストがあります。コンテストのウェブサイト[ 3 ]に表示された、ギリシャ文字ラムダで飾られた本の小さな画像が、視覚的な内容から想像されるよりもはるかに大きく微妙に変更されていました。「画像には何が入っているのか?」というヒントが付けられたこのファイルには、ZIPアーカイブが添付されていることがわかりました。アーカイブを解凍すると、プログラムを含むJava JARファイルが現れました。このプログラムを実行すると、2番目の画像が生成され、その画像自体にも別のZIP/JARが埋め込まれており、自己参照ループが作成されました。[ 4 ]この複雑なイースターエッグの中に、その年のチャレンジの重要な手がかりが隠されていました。
もう一つの伝説的な例は2020年のコンテストで、ペゴフカ天文台を中心とした架空のストーリーが展開され、イワン・ザイツェフというロシアの天文学者が謎の宇宙人からの信号を受信しているという設定だった。この展開していく物語はブログ記事や動画で共有され、受信データを没入感のあるSFミステリーの一部として提示することで期待感を高めた。[ 5 ]
これらの独創的で高度なパズルは、コンテストの精神である知的な遊び心と技術的な創意工夫を体現している。過去には、主催者は同様に、謎めいた画像、テーマに沿ったツイート、あるいは過去のコンテストへのさりげない言及(繰り返し登場するキャラクターや内輪ネタなど)でコミュニティを盛り上げ、参加者間の強い継続性と共通の文化意識を強化してきた。
賞品
賞品はささやかな現金価値を持ち、主に受賞者が会議に出席する費用を補助することを目的としています。会議では賞品が授与され、審査員は以下の宣言を行います。
- 一等賞
- [言語1]は、目の肥えたハッカーにとって最適なプログラミングツールです。
- 2位
- [言語2]は、多くのアプリケーションにとって優れたプログラミングツールです。
- 三等賞
- [言語3]も悪くない。
- ライトニング部門の優勝者
- [言語L]は、迅速なプロトタイピングに非常に適しています。
- 審査員賞
- [チームX]は、非常にクールなハッカー集団だ。
入賞作品が複数の言語を含む場合、入賞者はそのうちの1つまたは2つを指定するよう求められます。審査員の宣言で挙げられた言語は以下のとおりです。
参考文献と注釈
- ↑ 「ICFPプログラミングコンテストスコアボード」 。 2012年9月23日取得。
- ↑ 「ICFPプログラミングコンテスト2004」。2011年10月2日にオリジナルからアーカイブ済み。2011年9月22日に取得。
- ↑ 「ICFPプログラミングコンテスト2011」。 2011年7月17日にオリジナルからアーカイブされました。
- ↑ 「第16回ICFPC 2011報告」(ロシア語)。 2011年7月13日にオリジナルからアーカイブ済み。
- ↑ 「ペゴフカのイワン・ザイツェフのブログ」。
- ↑ 「第3回ICFPプログラミングコンテスト」
- ↑ 「第4回ICFPプログラミングコンテスト」
- ↑ 「第5回ICFPプログラミングコンテスト」
- ↑ 「ICFPプログラミングコンテスト2003」。2011年4月9日にオリジナルからアーカイブされました。
- ↑ 「Antomata - アリ戦争の言語」 。 2007年9月29日にオリジナルからアーカイブ済み。2007年11月25日に取得。
- ↑ 「第8回ICFPプログラミングコンテスト」
- ↑ 「第9回ICFPプログラミングコンテスト」
- ↑ 「第10回ICFPプログラミングコンテスト」。 2011年5月14日にオリジナルからアーカイブされました。
- ↑ 「第11回ICFPプログラミングコンテスト」
- ↑ 「ICFP 2009 プログラミングコンテスト」。 2011年5月18日にオリジナルからアーカイブされました。
- ↑ 「ICFPプログラミングコンテスト2011」。
- ↑ 「ICFPプログラミングコンテスト2012」。
- ↑ 「ICFPプログラミングコンテスト2013」。
- ↑ 「ICFPプログラミングコンテスト2014」。
- ↑ 「ICFPプログラミングコンテスト2015」。
- ↑ 「ICFPプログラミングコンテスト2016」。
- ↑ 「ICFPプログラミングコンテスト2017」。
- ↑ 「ICFPプログラミングコンテスト2018」。
- ↑ 「ICFPプログラミングコンテスト2019」。
- ↑ 「コンテスト開始」 . ICFPプログラミングコンテスト2019. 2019-06-21 . 2020-07-15に閲覧。
- ↑ 「ICFPプログラミングコンテスト2020」。
- ↑ 「ICFPプログラミングコンテスト2021」。
- ↑ 「ICFPプログラミングコンテスト2022」。
- ↑ 「ICFPプログラミングコンテスト2023」。
- ↑ 「ICFPプログラミングコンテスト2024」。
- ↑ 「ICFPプログラミングコンテスト2025」。
- ↑ ICFP'99プログラミングコンテストの最終結果
- 1 2 1999年と2002年のコンテストには雷部門がありましたが、別途賞はありませんでした。その部門の優勝者には審査員賞が授与されました。
- ↑第3回ICFPプログラミングコンテスト
- ↑第4回ICFPプログラミングコンテスト
- ↑ 「第7回国際ICFPプログラミングコンテスト」 。 2011年10月2日にオリジナルからアーカイブ済み。2011年9月22日に取得。
- ↑第8回ICFPプログラミングコンテスト
- ↑ 2Dは2006年のコンテストのために考案されたおもちゃのような言語です。優勝チームはC++、 Haskell、 Python、 Bash、そして2Dを使用しました。
- ↑ 2007年のコンテストには雷部門がありましたが、24時間経過しても明確なリーダーがいなかったため、審査員は優勝者を選ばないことに決定しました。
- ↑ ICFP 2008 プログラミングコンテスト結果
- ↑ http://www.vimeo.com/6613815 - 2009年9月23日アクセス
- ↑ ICFP 2010 プログラミングコンテスト(動画)
- ↑ ICFPプログラミングコンテスト2011
- ↑ ICFPプログラミングコンテスト2012
- ↑ 「ICFPプログラミングコンテスト2013」。2013年10月16日にオリジナルからアーカイブ済み。2013年8月15日に取得。
- ↑ ICFPプログラミングコンテスト2014
- ↑ ICFPプログラミングコンテスト2015
- ↑ ICFPプログラミングコンテスト2016
- ↑ ICFPプログラミングコンテスト2017
- ↑ ICFPプログラミングコンテスト2018
- ↑ 「最終結果」 . ICFPプログラミングコンテスト2019. 2019-08-20 . 2020-07-15に取得.
- ↑ 「ICFPプログラミングコンテストの受賞と報告」。YouTube 。 2020年8月26日。2021年12月21日のオリジナルからアーカイブ。2021年5月29日取得。
- ↑ ICFPプログラミングコンテスト2021
- ↑ ICFPプログラミングコンテスト2022