terminology - terminos - qué son los epónimos
Técnicas de programación epónimas famosas (18)
En algunos deportes, ciertas técnicas o elementos llevan el nombre del atleta que los inventó o los realizó por primera vez, por ejemplo, Biellmann spin .
¿Es su uso generalizado de tales nombres para técnicas de programación y expresiones idiomáticas? ¿Qué son? Para ser claro, explícitamente no estoy preguntando sobre algoritmos, que a menudo son nombrados en honor a sus creadores.
Por ejemplo, uno es la transformada de Schwartz , pero no puedo recordar más.
¿Qué tal algo relacionado con Bayes : filtrado bayesiano, inferencia bayesiana, clasificación bayesiana? Si bien están enraizadas en las estadísticas, estas técnicas han encontrado su camino en muchas aplicaciones relacionadas con la programación.
¿Qué tal si Ada lleva el nombre de Ada Lovelace la primera programadora de computadoras?
ADL - Argument Dependent Lookup también se conoce como Koenig lookup (después de Andrew Koenig, aunque no creo que lo aprecie, ya que no resultó como lo planeó originalmente)
Las garantías de excepción a menudo se denominan garantías de Abraham (Dave Abrahams), consulte ( http://en.wikipedia.org/wiki/Abrahams_guarantees )
Principio de sustitución de Liskov http://en.wikipedia.org/wiki/Liskov_substitution_principle - Barabara Liskov
Algoritmo de búsqueda de cadenas de Boyer-Moore : puede encontrar una cadena dentro de una cadena de longitud N con menos de N operaciones.
Creo que timsort calificaría. Se usa en python y open jdk 7.
El BWT (Burroughs Wheeler Transform) es bastante importante en la compresión de datos.
El método de construcción de programas mediante el cálculo de las condiciones previas más débiles, tal como se expone en el libro A Discipline of Programming de Edsger Dijkstra, suele denominarse Método de Dijkstra . Es más una metodología de programación que una técnica, pero podría calificar.
En C ++, el truco de Barton-Nackman .
En C ++, el lenguaje Schwartz counter (también conocido como Nifty Counter) se usa para evitar la inicialización múltiple y estática de los recursos compartidos. Lleva el nombre de Jerry Schwartz, creador original de los iostreams de C ++ en AT&T.
En Standard ML y otros lenguajes de programación funcionales que usan literales de tuplas y grabaciones, a veces veo literales escritos así:
( first
, second
, third
)
o
{ name = "Atwood"
, age = 37
, position = "founder"
, reports_to = NONE
}
Este diseño altamente idiomático, a diferencia del diseño en el que aparecen las comas o puntos y comas al final de la línea, es algo que siempre he escuchado referido como estilo MacQueen , después de Dave MacQueen (anteriormente en Bell Labs, ahora en la Universidad de Chicago )
Estoy sorprendido de que nadie haya mencionado Backus-Naur Form (BNF) , que lleva el nombre de John Backus y Peter Naur .
K&R (Kernighan y Ritchie) y los estilos de sangrado de Allman.
Seriamente sorprendido al ver que nadie ha mencionado la inferencia de tipos de Hindley Milner .
Tal vez la notación húngara podría calificar? Fue inventado por Charles Simonyi (que era húngaro).
Varios bugs de software difíciles de corregir o inusuales han sido categorizados según científicos famosos. Heisenbug podría ser el ejemplo más conocido.
Profundidad fallida
Alrededor del año 2000, varias personas descubrieron que el método de Heidmann puede funcionar para todas las posiciones de la cámara invirtiendo la profundidad. En lugar de contar las superficies de sombra frente a la superficie del objeto, las superficies que se encuentran detrás pueden contarse con la misma facilidad, con el mismo resultado final. Esto resuelve el problema de que el ojo esté en la sombra, ya que los volúmenes de sombra entre el ojo y el objeto no se cuentan, pero introduce la condición de que la parte posterior del volumen de la sombra debe estar tapada, o las sombras se perderán donde el volumen apunta. hacia atrás al infinito.
- Deshabilita las escrituras a los buffers de profundidad y color.
- Utilice el sacrificio frontal.
- Establezca la operación de la galería de símbolos para aumentar el error de profundidad (solo cuente las sombras detrás del objeto).
- Renderiza los volúmenes de sombra.
- Use el sacrificio de fondo.
- Establezca la operación de la plantilla para disminuir la falla de profundidad.
- Renderiza los volúmenes de sombra.
El método de falla de profundidad tiene las mismas consideraciones con respecto a la precisión del búfer del esténcil que el método de paso de profundidad. Además, al igual que en el paso de profundidad, a veces se le conoce como el método z-fail.
William Bilodeau y Michael Songy descubrieron esta técnica en octubre de 1998 y presentaron la técnica en Creativity, una conferencia de desarrolladores de Creative Labs, en 1999 1 . Sim Dietrich presentó esta técnica en un foro de desarrolladores de Creative Labs en 1999 [2]. Unos meses más tarde, William Bilodeau y Michael Songy presentaron una solicitud de patente de EE. UU. Para la técnica el mismo año, patente de EE. UU. 6384822, titulada "Método para generar sombras usando un volumen de sombra y un búfer de plantilla" emitido en 2002. John Carmack, de id Software de forma independiente descubrió el algoritmo en 2000 durante el desarrollo de Doom 3 [3]. Ya que él anunció la técnica al público en general, a menudo se la conoce como Reversa de Carmack.
- La técnica de programación funcional que currying se nombra después de su (re) inventor, Haskell Curry .
- La lógica booleana lleva el nombre de George Boole
- El dispositivo de Duff es bastante famoso y me parece que califica como técnica / idioma.
Solía hacer un " Carmack " que se refería a la " raíz cuadrada inversa rápida ", pero de acuerdo con la entrada de Wikipedia la técnica probablemente fue encontrada por los sabelotodos en SGI en 1990 más o menos.
Incluso si no se ajusta a tu descripción, sigue siendo una lectura bastante sorprendente :)
- Cierre de Kleene : es el operador
*
en expresiones regulares. Significa "0 o más de lo que lo precede". - En un punto en el tiempo, el mapa de Karnaugh podría haberse considerado una técnica para facilitar la programación (aunque a un nivel bajo).
Las cadenas de Markov llevan el nombre de Andrey Markov y se usan en la programación para generar:
- Google PageRank
- Generando mensajes de correo no deseado
- Palabras en clave mnemónicas para reemplazar IDs / valores de hash
El mundo gráfico está lleno de técnicas epónimas:
- Fisher-Yates shuffle , la forma estándar de implementar un shuffle aleatorio en el lugar en una matriz.
Por favor, edite para agregar más si se encuentra ...