ICFP 프로그래밍 콘테스트

ICFP Programming Contest

ICFP 프로그래밍 콘테스트는 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, RubyHaskell C++ 및 Python C#, C++, bash, awk, sedExcel C++
2014년[19] 하스켈 C++ OCaml
2015년[20] C++, Java, C#, PHP, RubyHaskell 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, bashSQL OCaml
2019년[24] C++ C++Haskell
2020년[25] 파이썬 C++(1등), Rust(2등) 하스켈
2021년[26] C++, 녹슬기, TypeScript 및 Go 녹슬기, TypeScript 및 Go

「 」를 참조해 주세요.

레퍼런스 및 메모

  1. ^ "ICFP Programming Contest Scoreboard". Retrieved 23 September 2012.
  2. ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/filename/filename.filename
  3. ^ "Antomata - The Language of Ant Wars". Archived from the original on 2007-09-29. Retrieved 2007-11-25.
  4. ^ "The Contest Begins". ICFP Programming Contest 2019. 2019-06-21. Retrieved 2020-07-15.
  5. ^ ICFP'99 프로그래밍 콘테스트 최종 결과
  6. ^ a b 1999년과 2002년 대회에는 번개 부문은 있었지만 별도의 상은 없었다.그 부문 우승자에게는 심사위원상이 수여되었다.
  7. ^ 제3회 ICFP 프로그래밍 콘테스트
  8. ^ 제4회 ICFP 프로그래밍 콘테스트
  9. ^ 제7회 항일 ICFP 프로그래밍 콘테스트
  10. ^ 제8회 ICFP 프로그램 콘테스트
  11. ^ 2D는 2006년 대회를 위해 만들어진 장난감 언어이다.우승팀은 C++, Haskell, Python, Bash 및 2D를 사용했습니다.
  12. ^ 2007년 대회는 번개 부문이었지만 24시간이 지나도록 뚜렷한 리더가 없었기 때문에 심사위원들은 우승자를 뽑지 않기로 결정했다.
  13. ^ ICFP 2008 프로그래밍 콘테스트 결과
  14. ^ http://www.vimeo.com/6613815 - 2009년9월 23일 접속
  15. ^ ICFP 2010 프로그래밍 콘테스트 (비디오)
  16. ^ ICFP 프로그래밍 콘테스트 2011
  17. ^ ICFP 프로그래밍 콘테스트 2012
  18. ^ ICFP 프로그래밍 콘테스트 2013
  19. ^ ICFP 프로그래밍 콘테스트 2014
  20. ^ ICFP 프로그래밍 콘테스트 2015
  21. ^ ICFP 프로그래밍 콘테스트 2016
  22. ^ ICFP 프로그램 공모전 2017
  23. ^ ICFP 프로그래밍 콘테스트 2018
  24. ^ "Final Results". ICFP Programming Contest 2019. 2019-08-20. Retrieved 2020-07-15.
  25. ^ "ICFP Programming Contest Awards and Reports". 2020-08-26. Archived from the original on 2021-12-21. Retrieved 2021-05-29.
  26. ^ ICFP 프로그래밍 콘테스트 2021

외부 링크