web-dev-qa-db-fra.com

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

Je vois l'expression "idiome de programmation" lancée comme si elle était généralement comprise. Pourtant, dans les résultats de recherche et stackoverflow, je vois tout ...

De micro:

  • Incrémenter une variable
  • Représenter une boucle infinie
  • Échange de valeurs de variables

À moyen:

Pour macro:

Existe-t-il une définition unique et commune pour "idiome de programmation"? Depuis "programmation idiome" est utilisé dans de nombreux domaines:

  • Micro: nuance syntaxique ou syntaxe commune
  • Medium: style et motifs communs
  • Macro: paradigmes de programmation comme idiome

Est-il valide d'utiliser la phrase dans l'un de ces domaines? Jusqu'à présent, les réponses se concentrent sur les idiomes syntaxiques. Les autres sont-ils également valables?

63
Corbin March

Un idiome de programmation est le moyen habituel de coder une tâche dans un langage spécifique. Par exemple, une boucle est souvent écrite comme ceci en C:

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

PHP comprendra une construction similaire:

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

Mais il est déconseillé dans PHP de boucler sur un tableau. Dans ce cas, vous utiliseriez:

foreach ($arr as $value)

Alors que dans Ruby, vous utiliseriez:

(1..10).each

pour la boucle, ou:

array.each

Il y a beaucoup de possibilités d'écrire une boucle dans ces langues. L'utilisation de l'idiome le rend immédiatement identifiable par des lecteurs expérimentés. Ils peuvent ensuite consacrer leur temps à des problèmes plus importants.

46
Christian Lescuyer

Un "idiome" dans un langage (sans programmation) est un dicton ou une expression unique à un langage particulier. Généralement, quelque chose qui ne suit pas les "règles" de la langue et qui existe simplement parce que les locuteurs natifs "savent juste" ce que cela signifie. (par exemple, en anglais, on dit "in line" mais "out of line" - ce serait idiomatique)

En déplaçant ceci vers l’arène de programmation, nous obtenons des choses comme:

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

qui signifie réellement:

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

que tous les programmeurs C/C++ comprennent, mais qui déroutent totalement ceux qui viennent d’un autre langage de programmation.

16
James Curran

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

Un idiome de programmation est un motif, un algorithme ou une manière de structurer le code. Parler d'idiomes de programmation revient à parler des modèles qui reviennent fréquemment dans le code ou à en proposer de nouveaux.

Les avantages d'être familier avec les idiomes, en particulier les plus grands, sont que lorsque vous regardez du code, vous pouvez voir plusieurs lignes de code, mais parce qu'il est familier en tant qu'idiome particulier, vous pouvez représenter mentalement le code et le penser comme un idiome unique au lieu de devoir nécessairement lire et comprendre chaque ligne individuellement.

Dire que le code n'est pas idiomatique, c'est dire qu'il ne se structure pas de manière à permettre aux lecteurs humains de réfléchir efficacement sur le code.

10
Sam Hasler

De WikiPedia : Un idiome de programmation est un moyen d’exprimer une construction récurrente dans un ou plusieurs langages de programmation.

J'imagine que vous avez déjà emprunté cette voie!

2
Mat Nadrofsky

É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

2
Ahmad Ajmi

Idiom est un terme de linguistique. C'est un groupe de mots qui ne signifie pas littéralement ce que l'on dit. Par exemple, dire que quelqu'un est "sous le temps" quand il ne se sent pas bien. Cette phrase particulière est venue de marins qui parlaient de passagers, ceux qui avaient le mal de mer iraient au-dessous des ponts "météo" où le mouvement des navires était moindre. Mais la plupart d'entre nous ne sont pas des marins et ne connaissent pas le sens littéral de la phrase.

Dans la programmation de nombreux programmes, même la plupart des instructions ne sont pas comprises par le grand public, même s’il s’agit de mots anglais. par exemple "for loop". Bien qu'ils aient un sens pour les programmeurs, ils ne le sont pas pour la plupart des autres.

2
Jim C

Un idiome est un 'motif' qui peut être identifié à plusieurs endroits.

Je ne dirais pas que cela a quelque chose à 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», expression qui est légèrement différente dans un certain nombre de langues.

Un autre excellent exemple d’idiome est Socket . Toutes les plates-formes qui prétendent avoir des sockets fonctionnent de manière conceptuelle identique, c'est-à-dire qu'elles ont toutes à peu près la même interface.

2
Zuu

Un idiome est une façon de dire quelque chose qui est particulier à une langue donnée. Par exemple, voici une poignée de idiomes anglais .

Vous pouvez l'extrapoler pour appliquer le concept à la programmation.

1
Aaron Palmer

Commencez tôt dans une ornière: procédez de la même manière. Accumuler des idiomes. Standardiser. La seule différence (!) Entre Shakespeare et vous était la taille de sa liste d'idiomes - pas la taille de son vocabulaire.

  • ALAN PERLIS, Epigrammes en programmation

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

1
ibm2100

Cela vient de idiomatique le sens du mot idiome dans la programmation peut être résumé en une phrase comportant une signification et des implications plus grandes que la somme des mots. Dans la programmation, la plupart des extraits de code sont réellement idiomatiques. ' Consentier ou se conformer au mode d'expression naturel d'une langue '

Un idiome de programmation peut être considéré comme descriptif d'une classe de solutions pouvant être transférée dans différents cas. Considérez while { ... } vs do {} while ils sont idiomatiques, ils contiennent les mêmes mots mais la commande comporte une distinction importante. La formulation exacte différera selon la langue, mais la signification fondamentale et les implications seront différentes; Par exemple, do {} while sera toujours exécuté une fois, quels que soient le langage ou les instructions utilisés pour le mettre en œuvre. En tant qu'idiome, il s'agit d'une forme transférable d'une idée. Il pourrait être utilisé dans de nombreuses circonstances et exprimé avec des mots différents (déclarations/commandes), mais le résultat fondamental sera toujours le même.

0
Martin Spamer