WEB2007 ALSO SPEAKS ENGLISH
06 44 00 14 84 (ou 0033644001484)

* Agence Magento Valence




***Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe

Agence Magento Valence





Article:

l'implémentation (réalisation concrète) d'un langage de programmation peut être élucidée ou transformée. Cette concrétisation est un compilateur ou un interpréteur, et un langage de programmation peut avoir une implémentation transformée, et une autre élucidée.
Les compilateurs antérieurs ont été écrits directement en langage assembleur, un langage symbolique élémentaire accomodant aux instructions du processeur cible et quelques structures de contrôle insensiblement plus innovées. Ce langage symbolique doit être assemblé (et non compilé) et lié pour obtenir une version exécutable. En raison de sa simplicité, un programme simple suffit à le convertir en instructions machines.
En général,les compilateurs modernes sont écrits dans le langage qu'ils doivent compiler ; par exemple un compilateur C est écrit en C, SmallTalk en SmallTalk, Lisp en Lisp, etc. Dans la réalisation d'un compilateur, une étape décisive est franchie quand le compilateur pour le langage X est suffisamment complet pour se compiler lui-même : il ne dépend alors plus d'un autre langage (même de l'assembleur) pour être produit.
Il est complexe de trouver un bug de compilateur. Par exemple, si un compilateur C comporte un bug, les programmeurs en langage C auront normalement tendance à mettre en cause leur propre code source, non pas le compilateur. Pire, si ce compilateur buggé (version V1) compile un compilateur (version V2) non buggé, l'exécutable compilé (par V1) du compilateur V2 pourrait être buggé. Pourtant son code source est bon. Le bootstrap oblige donc les programmeurs de compilateurs à contourner les bugs des compilateurs existants.
Le manque de ressources matérielles des ordinateurs est la cause de la classification des compilateurs par nombre de passes. La compilation est un processus couteux et les premiers ordinateurs n'avaient pas assez de mémoire pour contenir un programme devant faire ce travail. Les compilateurs ont donc été divisés en sous programmes qui font chacun une lecture de la source pour accomplir les différentes phases d'analyse lexicale, d'analyse syntaxique et d'analyse sémantique.
La faculté de regrouper le tout en un seul passage a été considérée comme un avantage car elle simplifie la tâche d'écriture d'un compilateur et il compile généralement plus rapidement qu'un compilateur multi passe. Ainsi, suivant les ressources limitées des premiers systèmes, de nombreux langages ont été spécifiquement conçus afin qu'ils puissent être compilés en un seul passage (par exemple, le langage Pascal).
Dans quelques cas, la conception d'une fonctionnalité de langage a besoin d'un compilateur pour effectuer plus d'une passe sur la source. Par exemple, considérons une déclaration figurant à la ligne 20 de la source qui affecte la traduction d'une déclaration figurant à la ligne 10. Dans ce cas, la première passe doit recueillir des renseignements sur les déclarations figurant après les déclarations qu'ils affectent, avec la traduction proprement dite qui s'effectue lors d'un passage ultérieur.






****Web2007 est un bureau indépendant situé à Genève et a l'habitude de travailler pour des entreprises PARTOUT en France et en Europe