Qu'est ce qu'un langage de programmation?

je vois l'expression" idiome de programmation " balbutiée comme si elle était communément comprise. Pourtant, dans les résultats de recherche et stackoverflow je vois tout...

de micro:

  • Incrémentation d'une variable
  • représentant une boucle infinie
  • changement de valeurs de la variable

à moyen:

macro:

Existe-t-il une seule définition commune de"langage de programmation"? Depuis "programmation idiom" est utilisé dans de nombreux domaines:

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

est-il valide d'utiliser l'expression dans l'un de ces domaines? Les réponses jusqu'à présent se concentrent sur les idiomes syntaxiques. Est-ce valable?

63
demandé sur Corbin March 2008-11-19 19:21:33

10 réponses

un idiome de programmation est la façon habituelle 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é en PHP pour boucler 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.

45
répondu Christian Lescuyer 2008-11-19 16:49:26

un "idiome" dans un langage (hors programmation) est un dicton ou une expression qui est propre à un langage particulier. Généralement quelque chose qui ne suit pas les "règles" du langauge, et qui existe simplement parce que les locuteurs natifs "savent simplement" ce que cela signifie. (par exemple, en anglais nous disons "in line" mais "out de line" -- qui serait idiomatique)

en déplaçant ceci à l'arène de programmation, nous obtenons des choses comme:

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

qui signifie actu ellement:

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

que chaque programmeur C / C++ comprend, mais qui déconcerterait totalement quelqu'un venant d'un langage de programmation différent.

15
répondu James Curran 2008-11-19 16:31:15

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

un idiome de programmation est un modèle, un algorithme ou une façon de structurer le code. Parler d'idiomes de programmation, c'est parler de ces modèles qui reviennent fréquemment en code ou en proposer de nouveaux.

les avantages d'être familier avec les idiomes, en particulier les plus grands, est que lorsque vous regardez le code, vous pouvez voir plusieurs lignes de code, mais parce qu'il est familier comme un idiome particulier, vous pouvez mentalement représenter et de penser au code comme cet idiome unique au lieu d'avoir à lire et à comprendre nécessairement 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 penser au code de manière efficace.

10
répondu Sam Hasler 2008-11-19 16:36:07

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

je suppose que vous avez déjà pris cette route!

2
répondu Mat Nadrofsky 2008-11-19 16:25:27

un idiome est un" modèle 151920920 " 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 l'idiome "pour chaque" qui est exprimé légèrement différent dans un certain nombre de langues.

un autre excellent exemple d'idiome est Socket . Toutes les plates-formes qui prétendre avoir des sockets, tous fonctionnent de la même manière conceptuelle, c'est-à-dire qu'ils ont tous à peu près la même interface.

2
répondu Zuu 2009-06-15 12:12:17

étant donné que les grands programmes se développent à partir de petits, il est essentiel que nous développions un arsenal de structures de programme standard dont nous sommes devenus sûrs d'exactitude-nous les appelons idiomes-et apprenions à les combiner dans des structures plus grandes en utilisant des techniques d'organisation de valeur prouvée.

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

Alan J. Perlis - SICP Avant-propos

2
répondu Ahmad Ajmi 2013-05-14 04:35:45

Idiom est un terme de linguistique. C'est un groupe de mots qui ne signifient littéralement ce que le dire. Par exemple, dire que quelqu'un est "dans le mauvais temps" quand il ne se sent pas bien. Cette phrase particulière venait des marins qui parlaient des passagers, les passagers qui avaient le mal de mer allaient sous les ponts "météo" où les navires se déplaçaient moins. Mais la plupart d'entre nous ne sont pas des marins et ne connaissent pas le sens littéral de cette expression.

dans la programmation beaucoup, même la plupart des les instructions ne sont pas comprises par le grand public, même si ce sont des mots anglais. par exemple"pour boucle". Bien qu'elles aient un sens pour les programmeurs, elles n'en ont pas pour la plupart des autres personnes.

1
répondu Jim C 2008-11-19 16:29:57

entrer dans une ornière tôt: faire le même processus de la même façon. Accumuler les idiomes. Normaliser. La seule différence(! entre Shakespeare et vous, C'était la taille de sa liste d'idiomes, pas celle de son vocabulaire.

  • ALAN PERLIS, Epigrams in Programming

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

1
répondu ibm2100 2012-01-13 02:38:23

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 extrapoler ceci pour appliquer le concept à la programmation.

0
répondu Aaron Palmer 2008-11-19 16:33:25

tout d'abord considérer le sens du mot Ideom , il peut être résumé comme une phrase qui porte plus de sens et d'implications que la somme des mots. Dans la programmation, la plupart des extraits de code sont en fait idiomatiques.

Un langage de Programmation peut être considéré comme descriptif d'une classe de solutions transférables à d'autres cas. Considérons while { ... } vs do {} while ce sont idiomatiques, ils contiennent les mêmes mots mais l'ordre porte une distinction importante. La formulation exacte différera selon la langue, mais le sens fondamental et les implications différeront; par exemple do {} while sera toujours exécuté une fois, quel que soit le langage ou les énoncés utilisés pour le mettre en œuvre. Comme idiome il est transférable forme d'une idée. Il pourrait être utilisé dans de nombreuses circonstances, et exprimé avec des mots différents (énoncés/commandes), mais le résultat fondamental sera toujours le même.

0
répondu Martin Spamer 2018-06-20 17:35:35