L'évolution des microprocesseurs mérite-t-elle l'évolution des compilateurs et des normes linguistiques?

StackOverflow https://stackoverflow.com/questions/4971475

  •  12-11-2019
  •  | 
  •  

Question

Alors que les fabricants de puces ajoutent de nouvelles fonctions, des instructions, etc. aux nouvelles puces, avons-nous besoin de nouvelles versions des compilateurs en conséquence pour utiliser ces nouvelles instructions et fonctionnalités de la puce?Cela signifie également que le langage de programmation nécessite également de nouveaux opcodes, syntaxe, etc. pour utiliser les nouvelles fonctionnalités de la puce?

Était-ce utile?

La solution

Oui, les nouvelles fonctionnalités matérielles sont reflétées dans les extensions de langue et dans les nouvelles langues.Par exemple, voir les différentes extensions de vecteur pour C et C ++ qui reflètent la disponibilité des instructions SIMD et les nouvelles langues parallèles dérivées comme Cuda et Opencl.

Si le matériel est significativement différent des autres, il est probable qu'il nécessitera son propre langage de programmation différent, voir les tableaux tardifs et leur langue occam.

Autres conseils

compilateurs compilés au code de la machine (non à une machine virtuelle) peut avoir besoin de modifier à tout moment ses modifications de l'architecture cible (bien que toutes les modifications soient parfaitement compatibles, de sorte que des ajouts signifient simplement qu'il y a de nouvelles optimisations possibles, mais que ce vieux compilateur serait possible.toujours travailler).

Langues de programmation Ne pas besoin pour changer, mais si une fonctionnalité souhaitable est réellement rendue possible par une modification des capacités de la machine.À moins que, par "Programmation de langueurs", vous voulez dire l'assemblage / la langue de la machine, auquel cas une instruction de puce d'une seule à une puce d'assemblage / instruction de la machine devrait probablement être (mais ne doit pas être) être ajoutée.

remarque tout le "pourrait" s.Les chances sont que ces changements sont invisibles pour vous, sauf si vous travaillez dans l'assemblage, le code de machine, la conception du compilateur ou la conception de la langue de programmation.Si vous n'êtes pas, alors vous inquiétez-vous de ces choses est un gaspillage de votre temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top