2008-11-19 46 views
57

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 ...¿Qué es un modismo de programación?

De micro:

  • Incrementar una variable
  • que representa un bucle infinito
  • Intercambio de valores de las variables

A mediano :

Para macro:

¿Existe una única definición común para "programación idiom"? Desde "lenguaje de programación" se utiliza en muchos ámbitos:

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

¿Es válido para 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?

Respuesta

42

Una expresión de programación es la forma habitual de codificar una tarea en un idioma específico. Por ejemplo, un bucle se escribe a menudo como este en C:

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

PHP va a entender una construcción similar:

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

Pero se desaconseja en PHP para recorrer sobre una matriz. En este caso se debería utilizar:

foreach ($arr as $value) 

Mientras que en Ruby, se debería utilizar:

(1..10).each 

para el bucle, o:

array.each 

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

8

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

Un lenguaje 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, especialmente 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 solo idioma en vez de tener necesariamente que leer y comprender 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 en el código de manera efectiva.

2

De WikiPedia: Una expresión 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!

+0

esto sólo los delegados a la pregunta "¿Qué es un constructo * *" ¿Es micro, mediano o macro? – Pacerier

1

Idioma 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.

+4

-1: Un idioma de programación es diferente de la variante que no es de programación. –

+0

... y sin embargo no lo es. –

12

Un "modismo" en el lenguaje (que no es 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" - que sería idiomática)

se mueve este a la arena de programación, obtenemos cosas como:

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

lo que significa actaually:

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

el que cada/C++ programador de C entiende, sino que desconcertar por completo a alguien que viene de un lenguaje de programación diferente.

+1

-1 Aunque las sintaxis pueden influir en los modismos, creo que hay mucho más para ellos. –

+0

Me gusta esta respuesta. En lenguaje natural, un modismo es algo cuyo significado no puede construirse a partir de los significados de sus términos constituyentes. En otras palabras, es un átomo indivisible semánticamente aunque sintácticamente se puede dividir. Por lo tanto, en la programación, las expresiones idiomáticas son cosas que no se cuestionan, sino que simplemente se memorizan de memoria y pueden ser productivas. –

0

Un modismo es una forma de decir algo que es particular de un idioma determinado. Por ejemplo, aquí hay un puñado de english idioms.

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

2

Una expresión idiomática es 'patrón' que se puede identificar en varios lugares.

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

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

Eso es un fragmento de lo que yo llamaría el for each lenguaje que se expresa ligeramente diferente en varios idiomas.

Otro ejemplo excelente de una expresión idiomática es Zócalo. Todas las plataformas que dicen tener sockets, todas funcionan conceptualmente de la misma manera, es decir, todas tienen aproximadamente la misma interfaz.

+0

Cuando escucho "Socket", creo que "patrón de E/S". No lo veo como una expresión idiomática: existen patrones en todos los idiomas, mientras que (como se describe en la mayoría de los otros contestadores) las expresiones idiomáticas tienden a ser específicas del idioma. – Tom

+0

No di mi respuesta particular como un intento de distinguir entre un "modismo" y un "patrón", que debería quedar claro si lee las primeras cinco palabras. Tenía la intención de ser una respuesta informativa y explicativa. – Zuu

1

Entra 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

2

Desde grandes programas crecen a partir de los pequeños, es fundamental que desarrollamos un arsenal de estructuras de programas estándar de cuya corrección hemos llegado a ser seguro - los llamamos modismos - y aprendemos 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 - SICP Foreword

Cuestiones relacionadas