ICFP 프로그래밍 콘테스트
ICFP Programming ContestICFP 프로그래밍 콘테스트는 1998년 이후 매년 6월 또는 7월 경에 개최되는 국제 프로그래밍 대회로, 국제 기능 프로그래밍 회의에서 결과가 발표됩니다.
팀은 규모에 구애받지 않고 프로그래밍 언어를 사용할 수 있습니다.입장료도 없습니다.참가자는 인터넷을 통해 참가 신청을 완료하고 제출하는 데 72시간이 소요됩니다.24시간 내내 번개를 치는 곳도 종종 있습니다.
수상자들은 자신들의 언어가 "해커를 차별하는 데 있어 선택된 프로그래밍 도구"라고 주장하기 위해 "권한 부여"를 유보합니다.따라서 대회의 목표 중 하나는 참가자들이 가장 좋아하는 프로그래밍 언어와 도구의 능력을 보여주는 것입니다.이전 1등 당첨자는 Haskell, OCaml, C++, Cilk, Java, F# 및 Rust를 사용했습니다.
공모전에는 보통 약 300개의 [1][2]응모작들이 있다.
과거 태스크
| 연도 | 주최자 | 묘사 |
|---|---|---|
| 1998 | 몽트렐 대학교와 매사추세츠 공과대학 | Tic-tac-toe의 기묘한 변형인 Puse를 재생하는 프로그램을 작성합니다.참가자 프로그램은 1위와 2위 프로그램을 결정하기 위해 토너먼트에 등록되었다. |
| 1999 | 하버드 대학교 | 사이즈 최적화 케이스 스테이트먼트(콘테스트 태스크는 텍스트 기반 어드벤처 게임에 대해 설명했지만 실제로는 그러한 게임의 크기를 최적화하는 것이 과제였습니다). |
| 2000 | 코넬 대학교 | Postscript와 같은 구문을 사용하여 레이 트레이서를 구현합니다. |
| 2001 | INRIA 로큰쿠르 | 불필요한 공백이나 태그를 삭제하는 등 HTML과 같은 마크업 언어의 크기를 최적화할 수 있습니다. |
| 2002 | OGI 이공계 대학 | 서로 소코반 같은 게임을 하는 로봇을 구현합니다. |
| 2003 | 찰머스 대학교 | 다양한 레이싱 트랙을 통해 가능한 한 빨리 차를 운전하는 로봇을 구현합니다. |
| 2004 | 펜실베이니아 대학교 | 다른 종의 개미를 물리치면서 가장 많은 음식 입자를 개미집에 가져다 줄 개미 군락을 설계하십시오.콘테스트 엔트리는 개미의 스테이트 머신에 대한 설명을 출력합니다.원칙적으로 엔트리는 손으로 작성할 수 있습니다.나중에 이 과제는 각 참가자가 개미 종족인 전략 및 프로그래밍 게임인 Ant Wars로 각색되었다.참가자들은 Antomata라고 [3]불리는 언어로 각각의 개미의 뇌로 기능하도록 유한 상태의 기계를 프로그래밍합니다.개미의 뇌는 개미가 집 개미 언덕으로 가지고 올 먹이를 찾아 모으거나 공격자들을 물리치거나 페로몬의 흔적을 만들도록 통제한다. |
| 2005 | PLT군 | "Cops & Bands" 게임을 위한 "bots"를 구현하세요: 참가자들은 모든 은행을 잡히지 않고 털기 위한 임무로 조용한 도시 지역을 강도-봇을 안내하는 제어 프로그램과 그것을 막는 데 전념하는 경찰-봇의 제어 프로그램을 작성해야 합니다. |
| 2006 | 카네기 멜론 대학교 | 심사위원이 제공한 운영체제(UMIX)를 실행하는 가상 머신을 구현하고 2D 및 로마숫자를 사용한 BASIC 버전 등 기존과는 다른 구문과 의미를 가진 새로운 프로그래밍 언어를 사용하여 분석합니다.많은 퍼즐은 이전 대회의 작은 버전이나 패러디였다. |
| 2007 | 위트레흐트 대학교 | DNA와 유사한 문자열을 실행하여 이미지를 생성하는 2단계 가상 시스템을 구현합니다.그런 다음 이 기계에 대한 입력 문자열을 지정하면 이 문자열에 추가될 때 지정된 대상 이미지에 가능한 한 가까운 이미지가 생성되는 접두사를 찾습니다. |
| 2008 | 포틀랜드 주립 대학교와 시카고 대학교 | 장애물과 적을 피하면서 본거지로 유도하는 Mars Rover 제어 시스템을 제공합니다. |
| 2009 | 캔자스 대학교 | 지정된 궤도 사이를 이동하고 다른 위성과 랑데부하도록 위성을 제어합니다. |
| 2010 | 라이프치히 응용과학 대학교, 독일 | 국제 자동차 및 연료 생산. |
| 2011 | 일본 도호쿠 대학 | 256개의 "슬롯"이 있는 컴퓨터를 게임 종료 시 남은 슬롯 수에서 상대편보다 오래도록 프로그래밍합니다.제출물에는 2단계 토너먼트에 입력된 실행 파일이 포함됩니다. |
| 2012 | 세인트앤드루스 대학교, 스코틀랜드 | 볼더 대시와 같은 게임을 위해 인공지능을 프로그래밍하십시오. |
| 2013 | 마이크로소프트 리서치 | 웹 서비스 조회를 통해 간단한 기능 언어로 구현된 블랙박스 기능의 구현을 추측해 보십시오. |
| 2014 | 옥스포드 대학과 웰타이프 LLP | 팩맨용 AI 프로그램, 팩맨용 SECD 머신 명령, 4개의 고스트용 8비트 머신 조립 명령으로 작성. |
| 2015 | 갈루아 | 이동 시퀀스에 비밀 문구를 삽입한 육각형 그리드 필드에 테트리스 게임용 AI를 작성합니다. |
| 2016 | 전기통신대학교 | 추상 종이접기를 해결하기 위해 AI를 작성한다. |
| 2017 | 에든버러 대학교 | 플레이어가 지도에서 경로 부분을 차례로 주장하고 커버리지가 가장 좋은 사람이 이기는 게임에 AI를 씁니다.메인 게임 모드에는 3개의 확장기능이 있으며, 그 중 몇 개라도 맵에서 활성화할 수 있습니다. |
| 2018 | 로체스터 공과대학 | 나노봇 트레이스를 생성하여 에너지 사용을 최소화하면서 대상 3D 객체를 구성, 파괴 및 재구성할 수 있습니다. |
| 2019 | 예일-NUS 칼리지 및 싱가포르 국립 대학교 | 비트 로트에 [4]대한 작업자 래퍼. |
| 2020 | SKB 콘투르 | Alien 사양에 따라 가상 머신을 구축하고, 해당 VM 상에서 Alien 제공 게임 서버를 실행하고, 게임을 탐색하고(Chebyshev 거리에서의 2D 우주 전투, 가속, 슈팅, 분할 및 폭발 명령으로 행성 궤도에서의 2D 우주 전투), 게임 프로토콜을 리버스 엔지니어링하고, 이 게임을 플레이하기 위한 봇을 만듭니다. |
| 2021 | 알렉스 랑과 재스퍼 반 데 주그트 | 기계식 링크와 유사한 형상을 벽의 구멍에 끼워 넣도록 조작합니다. |
상품
상은 주로 수상자가 컨퍼런스에 참석할 수 있도록 돕는 데 목적이 있으며, 시상식은 다음과 같은 선언을 합니다.
- 일등상
- [Language 1]은 해커 식별을 위한 프로그래밍 도구입니다.
- 이등상
- [Language 2]는 많은 응용 프로그램에 적합한 프로그래밍 도구입니다.
- 삼등상
- [Language 3]도 그다지 초라하지 않습니다.
- 라이트닝 부문 우승자
- [Language L]은(는) 신속한 프로토타이핑에 매우 적합합니다.
- 심사위원상
- [X팀]은 굉장히 멋진 해커들이에요.
수상작에 여러 언어가 포함된 경우, 수상자는 한 두 개를 지명해야 합니다.심판 선언문에 언급된 언어는 다음과 같다.
| 연도 | 일등상 | 차상 | 제3상 | 번개 |
|---|---|---|---|---|
| 1998 | 칠크 | OCaml | ||
| 1999년[5] | OCaml | 하스켈 | [6] | |
| 2000년[7] | OCaml | OCaml | ||
| 2001년[8] | 하스켈 | 딜런 | ||
| 2002 | OCaml | C | [6] | |
| 2003 | C++ | C++ | OCaml | |
| 2004년[9] | 하스켈 | Haskell 및 C++ | Java 및 C++ | |
| 2005년[10] | 하스켈 | 딜런 | 하스켈 | |
| 2006 | 이차원[11] | D | 어셈블리 | |
| 2007 | C++ | 펄 | [12] | |
| 2008년[13] | 자바 | ML | ||
| 2009년[14] | C++ | 자바 | ML | |
| 2010년[15] | C++, Haskell, Python | SageMath | ||
| 2011년[16] | F# | 셸 및 C++ | ||
| 2012년[17] | C++ | OCaml | 자바 | |
| 2013년[18] | Java, C#, C++, PHP, Ruby 및 Haskell | C++ 및 Python | C#, C++, bash, awk, sed 및 Excel | C++ |
| 2014년[19] | 하스켈 | C++ | 펄 | OCaml |
| 2015년[20] | C++, Java, C#, PHP, Ruby 및 Haskell | C++, Python, JavaScript | C++ | C++ |
| 2016년[21] | Java, C++, C#, PHP, Haskell | C++, Ruby, Python, Haskell, Java, JavaScript | OCaml | |
| 2017년[22] | C++ | C++ | OCaml | |
| 2018년[23] | 녹 | C++, Python, Ruby, JavaScript, bash 및 SQL | OCaml | |
| 2019년[24] | 녹 | C++ | C++ 및 Haskell | |
| 2020년[25] | 파이썬 | C++(1등), Rust(2등) | 하스켈 | |
| 2021년[26] | C++, 녹 | 녹 | 녹슬기, TypeScript 및 Go | 녹슬기, TypeScript 및 Go |
「 」를 참조해 주세요.
- ACM 국제 대학 프로그래밍 콘테스트(ICPC)
- 온라인 심사원
레퍼런스 및 메모
- ^ "ICFP Programming Contest Scoreboard". Retrieved 23 September 2012.
- ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/filename/filename.filename
- ^ "Antomata - The Language of Ant Wars". Archived from the original on 2007-09-29. Retrieved 2007-11-25.
- ^ "The Contest Begins". ICFP Programming Contest 2019. 2019-06-21. Retrieved 2020-07-15.
- ^ ICFP'99 프로그래밍 콘테스트 최종 결과
- ^ a b 1999년과 2002년 대회에는 번개 부문은 있었지만 별도의 상은 없었다.그 부문 우승자에게는 심사위원상이 수여되었다.
- ^ 제3회 ICFP 프로그래밍 콘테스트
- ^ 제4회 ICFP 프로그래밍 콘테스트
- ^ 제7회 항일 ICFP 프로그래밍 콘테스트
- ^ 제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
- ^ ICFP 프로그래밍 콘테스트 2014
- ^ ICFP 프로그래밍 콘테스트 2015
- ^ ICFP 프로그래밍 콘테스트 2016
- ^ ICFP 프로그램 공모전 2017
- ^ ICFP 프로그래밍 콘테스트 2018
- ^ "Final Results". ICFP Programming Contest 2019. 2019-08-20. Retrieved 2020-07-15.
- ^ "ICFP Programming Contest Awards and Reports". 2020-08-26. Archived from the original on 2021-12-21. Retrieved 2021-05-29.
- ^ ICFP 프로그래밍 콘테스트 2021