language-agnostic idioms

language agnostic - ¿Qué es un modismo de programación?



language-agnostic idioms (9)

Veo la frase "lenguaje de programación" como si se entendiera comúnmente. Sin embargo, en los resultados de búsqueda y stackoverflow veo todo ...

Desde micro:

  • Incrementando una variable
  • Representando un ciclo infinito
  • Intercambio de valores variables

A medio:

A macro:

¿Hay una única definición común para "lenguaje de programación"? Dado que "idioma de programación" se utiliza en muchos ámbitos:

  • Micro: matiz sintáctico o sintaxis común
  • Medio: estilo y patrones comunes
  • Macro: paradigmas de programación como modismos

¿Es válido usar la frase en cualquiera de estos ámbitos? Las respuestas hasta ahora se centran en modismos sintácticos. ¿Son los otros válidos también?


De WikiPedia : Un modismo de programación es un medio de expresar una construcción recurrente en uno o más lenguajes de programación.

¡Supongo que ya has pasado por ese camino!


Idiom es un término de la lingüística. Es un grupo de palabras que literalmente no significan lo que dicen. Por ejemplo, decir que alguien está "bajo el clima" cuando no se siente bien. Esa frase en particular provenía de los marineros hablando de pasajeros, los pasajeros mareados iban por debajo de las cubiertas "clima" donde el movimiento de los barcos era menor. Pero la mayoría de nosotros no somos marineros y no conocemos el significado literal de la frase.

En la programación de muchos, incluso la mayoría de las instrucciones no son entendidas por el público en general a pesar de que son palabras en inglés. por ejemplo "for loop". Si bien tienen sentido para los programadores, no lo hacen para la mayoría de las demás personas.


Un "modismo" en el lenguaje (no de programación) es un dicho o expresión que es exclusivo de un idioma en particular. En general, algo que no sigue las "reglas" del lenguaje, y solo existe porque los hablantes nativos "solo saben" lo que significa. (por ejemplo, en inglés decimos "en línea" pero "fuera de línea" - eso sería idiomático)

Moviéndolo a la arena de programación, obtenemos cosas como:

if(c=GetValue()) {...}

que significa literalmente:

c = GetValue(); if (c != 0) {....}

que todo programador de C / C ++ entiende, pero desconcertaría por completo a alguien proveniente de un lenguaje de programación diferente.


Un modismo es una forma de decir algo que es particular de un idioma determinado. Por ejemplo, aquí hay un puñado de modismos en inglés .

Puede extrapolar esto para aplicar el concepto a la programación.


Una expresión de programación es la forma habitual de codificar una tarea en un idioma específico. Por ejemplo, un ciclo se escribe así en C:

for (i=0; i<10; i++)

PHP entenderá una construcción similar:

for ($i = 1; $i <= 10; $i++)

Pero no se recomienda en PHP para el bucle en una matriz. En este caso, usarías:

foreach ($arr as $value)

Mientras que en Ruby, usarías:

(1..10).each

para el bucle, o:

array.each

Hay muchas posibilidades para escribir un bucle en esos idiomas. Usar el modismo lo hace inmediatamente identificable por lectores experimentados. Luego pueden dedicar su tiempo a problemas más importantes.


Ver http://en.wikipedia.org/wiki/Programming_idiom

Un modismo de programación es un patrón, algoritmo o forma de código de estructuración. Hablar de modismos de programación es hablar sobre los patrones que se repiten frecuentemente en el código o para proponer otros nuevos.

Los beneficios de estar familiarizado con las expresiones idiomáticas, particularmente las más grandes, es que al mirar el código puede ver varias líneas de código, pero como es familiar como una expresión particular, puede representar mentalmente y pensar sobre el código como esa única expresión idiomática en lugar de tener que leer y comprender necesariamente cada línea individualmente

Decir que el código no es idiomático es decir que no se estructura de manera que permita a los lectores humanos pensar sobre el código de manera efectiva.


Un modismo es un "patrón" que se puede identificar en varios lugares.

No diría que tiene algo que ver con un lenguaje de programación particular.

Iterator foo; foo.reset(); while (foo.next()) { print(foo.value()); }

Ese es un fragmento de lo que yo llamaría la expresión "para cada uno" que se expresa ligeramente diferente en varios idiomas.

Otro excelente ejemplo de modismo es Socket . Todas las plataformas que dicen tener sockets, todas funcionan conceptualmente de la misma manera, es decir, todas tienen aproximadamente la misma interfaz.


Ponte en una rutina temprano: haz el mismo proceso de la misma manera. Acumula modismos. Estandarizar. La única diferencia (!) Entre Shakespeare y usted era el tamaño de su lista de expresiones idiomáticas, no el tamaño de su vocabulario.

  • ALAN PERLIS, Epigramas en la Programación

http://www.cs.yale.edu/quotes.html


Dado que los programas grandes crecen de los pequeños, es crucial que desarrollemos un arsenal de estructuras de programas estándar de cuya corrección nos hayamos asegurado, los llamamos modismos, y aprendamos a combinarlos en estructuras más grandes usando técnicas organizacionales de valor comprobado.

Un programador debe adquirir buenos algoritmos y modismos.

Alan J. Perlis - Preámbulo del SICP