76 votes

Qu'est-ce qu'un langage de programmation?

Je vois l'expression "langage de programmation" jeté autour comme si elle est communément admise. Pourtant, dans les résultats de recherche et de stackoverflow, je vois tout...

À partir de micro:

  • Incrémentation d'une variable
  • Représentant une boucle infinie
  • La permutation des valeurs de variables

Moyen:

Pour la macro:

Est-il une seule définition commune de la notion de "langage de programmation"? Depuis le "langage de programmation" est utilisé dans de nombreux domaines d'application:

  • Micro: syntaxique nuance ou la syntaxe commune
  • Moyen: un style commun et les modes
  • Macro: paradigmes de programmation comme idiome

Est-il valable pour l'utilisation de l'expression dans l'une de ces étendues? Les réponses jusqu'à présent se concentrer sur syntaxique des expressions idiomatiques. Est-ce valable aussi bien?

59voto

Christian Lescuyer Points 8656

Un langage de programmation est la façon habituelle de code d'une tâche dans une langue spécifique. Par exemple, une boucle est souvent écrit en C:

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

PHP va comprendre une semblable construction:

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

Mais il est déconseillé en PHP pour faire une boucle sur un tableau. Dans ce cas, vous devez utiliser:

foreach ($arr as $value)

Alors qu'en Ruby, vous pouvez utiliser:

(1..10).each

pour la boucle, ou:

array.each

Il ya beaucoup de possibilités pour écrire une boucle dans ces langues. En utilisant le langage le rend immédiatement identifiable par les lecteurs expérimentés. Ils peuvent ensuite passer leur temps sur des problèmes plus importants.

24voto

James Curran Points 55356

Un "idiome" (non-programmation) la langue est un proverbe ou une expression qui est propre à une langue particulière. Généralement quelque chose qui ne respecte pas les "règles" de la langue, et seulement existent parce que les locuteurs natifs "juste savoir" ce qu'il signifie. (par exemple, en anglais on dit "en ligne" mais "out of line" - qui serait idiomatiques)

Le déplacement de ce de la programmation de l'arène, nous obtenons des choses comme:

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

qui actaually signifie:

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

qui chaque C/C++ programmeur comprendre, mais totalement déflecteur de quelqu'un qui vient d'un autre langage de programmation.

14voto

Sam Hasler Points 10253

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

Un langage de programmation est un modèle, d'un algorithme, ou une façon de structurer le code. Pour parler de la programmation des idiomes est de parler de celles qui reviennent fréquemment dans le code ou d'en proposer de nouveaux.

Les avantages d'être familier avec les expressions idiomatiques, notamment les plus grandes, c'est que quand on regarde le code, vous pouvez voir plusieurs lignes de code, mais parce qu'il est connu comme un idiome particulier, vous pouvez représenter mentalement et à réfléchir sur le code que seul idiome au lieu d'avoir à nécessairement lire et comprendre chaque ligne individuellement.

Dire que le code n'est pas idiomatique est-à-dire qu'il n'a pas la structure elle-même de façon à permettre les lecteurs à réfléchir sur le code de manière efficace.

3voto

λhmad λjmi Points 821

Étant donné que les grands programmes grandissent, il est essentiel de développer un arsenal de structures de programme standard dont nous sommes certains de la justesse - nous les appelons idiomes - et d'apprendre à les combiner en de plus grandes structures en utilisant des techniques organisationnelles à la valeur éprouvée.

Un programmeur doit acquérir de bons algorithmes et idiomes.

Alan J. Perlis - SICP Avant-propos

2voto

Zuu Points 846

Un langage est celui d'un "pattern" qui peut être identifié dans plusieurs endroits.

Je ne dirais pas qu'il n'a rien à voir avec un langage de programmation particulier.

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

C'est un extrait de ce que j'appellerais le "pour chaque" idiome qui est exprimé de façon légèrement différente dans un certain nombre de langues.

Un autre excellent exemple d'une expression idiomatique est Prise. Toutes les plates-formes qui prétendent avoir des sockets, tous les travaux dans le plan conceptuel de la même manière, c'est qu'ils ont tous à peu près la même interface.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X