El Concurso de Programación de ICFP es un concurso de programación internacional que se celebra anualmente alrededor de junio o julio desde 1998, cuyos resultados se anuncian en la Conferencia Internacional sobre Programación Funcional .
Los equipos pueden ser de cualquier tamaño y se puede utilizar cualquier lenguaje de programación. Tampoco hay tarifa de entrada. Los participantes tienen 72 horas para completar y enviar su trabajo a través de Internet. A menudo también hay una división de rayos de 24 horas.
Los ganadores se reservan el "derecho de fanfarronear" para afirmar que su lenguaje es "la herramienta de programación elegida por los piratas informáticos discriminatorios". Como tal, uno de los objetivos de la competencia es mostrar las capacidades de los lenguajes y herramientas de programación favoritos de los concursantes. Los ganadores anteriores del primer premio han utilizado Haskell , OCaml , C ++ , Cilk , Java , F # y Rust .
Los concursos suelen tener alrededor de 300 entradas enviadas. [1] [2]
Tareas pasadas
Año | Organizador | Descripción |
---|---|---|
1998 | Universidad de Montreal e Instituto de Tecnología de Massachusetts | Escribe un programa que juegue pousse , una extraña variante de tic-tac-toe. Los programas de los concursantes se inscribieron en un torneo para determinar el programa de primer y segundo lugar. |
1999 | Universidad Harvard | Declaraciones de casos de optimización de tamaño (la tarea del concurso hablaba de juegos de aventuras basados en texto , pero de hecho la tarea era optimizar el tamaño de la descripción de dicho juego). |
2000 | Universidad de Cornell | Implemente un trazador de rayos usando una sintaxis similar a Postscript. |
2001 | INRIA Rocquencourt | Optimice el tamaño de un lenguaje de marcado similar a HTML eliminando los espacios en blanco y las etiquetas innecesarios, etc. |
2002 | Escuela de Ciencias e Ingeniería OGI | Implementar robots jugando un juego similar a Sokoban uno contra el otro. |
2003 | Universidad de Chalmers | Implemente robots que conduzcan un automóvil lo más rápido posible a través de diferentes pistas de carreras. |
2004 | Universidad de Pennsylvania | Diseñe una colonia de hormigas que devuelva la mayor cantidad de partículas de comida a su hormiguero, mientras se defiende de las hormigas de otra especie. La entrada del concurso daría como resultado una descripción de la máquina de estado de la hormiga: en principio, las entradas podrían haber sido escritas a mano. Posteriormente, la tarea se adaptó a Ant Wars, un juego de estrategia y programación en el que cada participante es una especie de hormiga . Luego, el participante, en un lenguaje llamado Antomata, [3] programa una máquina de estados finitos para que funcione como el cerebro de cada hormiga. La hormiga cerebro controla entonces la hormiga para encontrar y recoger la comida para llevar a casa el hormiguero , para defenderse de los atacantes o hacer senderos de feromonas. |
2005 | Grupo PLT | Implementar "bots" para un juego de "Cops & Robbers": los concursantes tienen que escribir el programa de control que guía a un Robber-Bot a través de un vecindario urbano tranquilo en una misión para robar todos los bancos sin que los atrapen, y el programa de control para un Cop- Bot dedicado a detenerlo. |
2006 | Universidad de Carnegie mellon | Implementar una máquina virtual que ejecute un sistema operativo (llamado UMIX ) proporcionado por los jueces, y descifrarlo usando nuevos lenguajes de programación con sintaxis y semántica poco convencionales, como 2D y una versión de BASIC usando números romanos. Muchos acertijos eran versiones minúsculas o parodias de concursos anteriores. |
2007 | Universidad de Utrecht | Implemente una máquina virtual de 2 etapas que ejecute una cadena similar al ADN para producir una imagen. Luego, dada una cadena de entrada para esta máquina, busque un prefijo que cuando se agregue a esta cadena produzca una imagen lo más cercana posible a la imagen de destino dada. |
2008 | Universidad Estatal de Portland y la Universidad de Chicago | Proporcione un sistema de control del rover de Marte que lo guiará a una base de operaciones mientras evita obstáculos y enemigos. |
2009 | Universidad de Kansas | Controle un satélite para moverse entre órbitas específicas y encontrarse con otros satélites. |
2010 | Universidad de Ciencias Aplicadas de Leipzig , Alemania | Producción Internacional de Automóviles y Combustibles. |
2011 | Universidad de Tohoku , Japón | Programe una computadora con 256 "espacios" para sobrevivir a su oponente en términos de espacios restantes al final del partido. Las presentaciones incluyen ejecutables que se ingresan en un torneo de dos fases. |
2012 | Universidad de St Andrews , Escocia | Programa una IA para un juego similar a Boulder Dash . |
2013 | Investigación de Microsoft | Adivina la implementación de una función de caja negra implementada en un lenguaje funcional simple mediante la consulta de un servicio web. |
2014 | Universidad de Oxford y LLP con buen tipo | Escriba programas de inteligencia artificial para un juego similar a pacman, en instrucciones de máquina SECD para pacman e instrucciones de ensamblaje de máquina de 8 bits para cuatro fantasmas. |
2015 | Galois | Escribe una IA para un juego similar al Tetris en un campo de cuadrícula hexagonal que incorpore frases secretas en la secuencia de movimientos. |
2016 | Universidad de Electro-Comunicaciones | Escribe una IA para resolver origami abstracto . |
2017 | Universidad de Edimburgo | Escribe una IA para un juego en el que los jugadores, a su vez, reclaman partes de la ruta en el mapa y gana el que tenga la mejor cobertura. También hay tres extensiones para el modo de juego principal, cualquier número de las cuales se puede habilitar en un mapa. |
2018 | Instituto de Tecnología de Rochester | Genere rastros de nanobot para construir, destruir y reconstruir objetos 3D objetivo mientras minimiza la energía utilizada. |
2019 | Yale-NUS College y Universidad Nacional de Singapur | Envoltorios de trabajadores contra la putrefacción de bits. [4] |
2020 | SKB Kontur | Construya una máquina virtual según la especificación alienígena , ejecute el servidor de juegos proporcionado por alienígenas en esa VM, explore el juego (batalla espacial 2D en la órbita del planeta con la distancia de Chebyshev, con comandos de aceleración, disparo, división y detonamiento), protocolo de juego de ingeniería inversa y crear bot para jugar a este juego. |
Premios
Los premios tienen un valor en efectivo modesto, principalmente destinado a ayudar a los ganadores a asistir a la conferencia, donde se otorgan los premios y los jueces hacen las siguientes declaraciones:
- Primer premio
- [Lenguaje 1] es la herramienta de programación preferida para discriminar a los piratas informáticos.
- Segundo premio
- [Language 2] es una excelente herramienta de programación para muchas aplicaciones.
- Tercer premio
- [Lenguaje 3] tampoco está nada mal.
- Ganador de la división de rayos
- [Language L] es muy adecuado para la creación rápida de prototipos.
- Premio de los jueces
- [Team X] son un grupo de piratas informáticos extremadamente geniales.
Cuando una obra ganadora incluye varios idiomas, se pide a los ganadores que nominen uno o dos. Los idiomas mencionados en las declaraciones de los jueces han sido:
Año | Primer premio | Segundo premio | Tercer premio | Relámpago |
---|---|---|---|---|
1998 | Cilk | OCaml | ||
1999 [5] | OCaml | Haskell | [6] | |
2000 [7] | OCaml | OCaml | ||
2001 [8] | Haskell | Dylan | ||
2002 | OCaml | C | [6] | |
2003 | C ++ | C ++ | OCaml | |
2004 [9] | Haskell | Haskell y C ++ | Java y C ++ | |
2005 [10] | Haskell | Dylan | Haskell | |
2006 | 2D [11] | D | Montaje | |
2007 | C ++ | Perl | [12] | |
2008 [13] | Java | ML | ||
2009 [14] | C ++ | Java | ML | |
2010 [15] | C ++ , Haskell , Python | SageMath | ||
2011 [16] | F# | Shell y C ++ | ||
2012 [17] | C ++ | OCaml | Java | |
2013 [18] | Java , C # , C ++ , PHP , Ruby y Haskell | C ++ y Python | C # , C ++ , bash , awk , sed y Excel | C ++ |
2014 [19] | Haskell | C ++ | Perl | OCaml |
2015 [20] | C ++ , Java , C # , PHP , Ruby y 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] | Oxido | C ++ , Python , Ruby , JavaScript , bash y SQL | OCaml | |
2019 [24] | Oxido | C ++ | C ++ y Haskell | |
2020 [25] | Pitón | C ++ (primer ganador), Rust (segundo ganador) | Haskell |
Ver también
- Concurso Internacional de Programación Universitaria de ACM (ICPC)
- Juez en línea
Referencias y notas
- ^ "Cuadro de indicadores del concurso de programación ICFP" . Consultado el 23 de septiembre de 2012 .
- ^ https://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/results.php
- ^ "Antomata - El lenguaje de las guerras de hormigas" . Archivado desde el original el 29 de septiembre de 2007 . Consultado el 25 de noviembre de 2007 .
- ^ "Comienza el concurso" . Concurso de Programación ICFP 2019 . 2019-06-21 . Consultado el 15 de julio de 2020 .
- ^ Resultados finales del Concurso de programación ICFP'99
- ^ a b Los concursos de 1999 y 2002 tuvieron una división relámpago, pero sin premio aparte. Los ganadores de esa división recibieron premios de los jueces.
- ^ El tercer concurso anual de programación de ICFP
- ^ El cuarto concurso de programación ICFP
- ^ El Séptimo Concurso de Programación Antual ICFP
- ^ El octavo concurso anual de programación de ICFP
- ^ 2D fue un lenguaje de juguete inventado para el concurso de 2006. El equipo ganador usó C ++ , Haskell , Python , Bash y 2D.
- ^ El concurso de 2007 tuvo una división relámpago, pero como no había un líder claro después de 24 horas, los jueces decidieron no elegir un ganador.
- ^ Resultados del concurso de programación de ICFP 2008
- ^ http://www.vimeo.com/6613815 - consultado el 23 de septiembre de 2009
- ^ Concurso de programación ICFP 2010 (video)
- ^ Concurso de programación ICFP 2011
- ^ Concurso de programación ICFP 2012
- ^ Concurso de programación ICFP 2013
- ^ Concurso de programación ICFP 2014
- ^ Concurso de programación ICFP 2015
- ^ Concurso de programación ICFP 2016
- ^ Concurso de programación ICFP 2017
- ^ Concurso de programación ICFP 2018
- ^ "Resultados finales" . Concurso de Programación ICFP 2019 . 2019-08-20 . Consultado el 15 de julio de 2020 .
- ^ "Premios e Informes del Concurso de Programación ICFP" . 2020-08-26 . Consultado el 29 de mayo de 2021 .
Equipos perennes
- The Al-Gore-Rhythms (también conocido como The Doug Boat)
- Los jinetes de Caml
- Plátanos sin fricción
- Informe DylanHackers 2005
- Oh Caml, Mi Caml
- Equipo Smartass
- Sir Bedevere el Sabio
enlaces externos
- Concurso en el sitio de ICFP
- Sitio del concurso 1998
- Tarea del concurso Espejo de 1998
- (Parcial) espejo del sitio del concurso de 1999
- Sitio del concurso 2000
- Sitio del concurso 2001
- Sitio del concurso 2002
- Sitio del concurso 2003
- Sitio del concurso 2004
- Sitio del concurso 2005
- Sitio del concurso 2006
- Sitio del concurso 2007
- Sitio del concurso 2008
- Sitio del concurso 2009
- Sitio del concurso 2010
- Sitio del concurso 2011
- Sitio del concurso 2012
- Sitio del concurso 2013
- Sitio del concurso 2014
- Sitio del concurso 2015
- Sitio del concurso 2016
- Sitio del concurso 2017
- Sitio del concurso 2018
- Sitio del concurso 2019
- Sitio del concurso 2020
- ICFP Concurso de Programación Historia ( Ward Cunningham 's Wiki )
- Los fanáticos de la programación luchan hasta el final en archive.today (archivado 2013-01-02) (CNET)
- Misterio de código de computadora lleno de ficción salpicado de rompecabezas 'antiguos' ( Pittsburgh Post-Gazette )
- Video de los resultados del concurso de 2006
- Video de los resultados del concurso 2007
- Video de los resultados del concurso de 2008
- Informe escrito del concurso 2007
Juego de Ant War
- https://web.archive.org/web/20110723014332/http://www.ant-wars.net/ - Página de inicio
- http://sourceforge.net/projects/formicidae/ - El proyecto en sourceforge.net
- https://web.archive.org/web/20071125152658/http://alliance.seas.upenn.edu/~plclub/cgi-bin/contest/ La página oficial para la tarea en el Concurso de Programación ICFP 2004