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

* Developpeur Drupal 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

Developpeur Drupal Valence





Article:

l'implémentation (réalisation concrète) d'un langage de programmation peut être expliquée ou convertie. Cette concrétisation est un compilateur ou un interpréteur, et un langage de programmation peut avoir une implémentation convertie, et une autre expliquée.
Les anciens compilateurs ont été écrits directement en langage assembleur, un langage symbolique élémentaire conforme aux instructions du processeur cible et quelques structures de contrôle légèrement plus avancé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.
Généralement,les compilateurs contemporains 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 lorsque 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 difficile de découvrir un bug de compilateur. Par exemple, si un compilateur C comporte un bug, les programmeurs en langage C auront ordinairement 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.
L'aptitude de ranger le tout a été observé comme un privilège car elle simplifie la tâche d'écriture d'un compilateur et il compile habituellement plus rapidement qu'un compilateur multi passe. Ainsi, suivant les ressources marquées des premiers systèmes, de nombreux langages ont été précisément conçus afin qu'ils puissent être compilés en un seul passage (par exemple, le langage Pascal).
Dans certains cas, la production d'une fonctionnalité de langage nécessite d'un compilateur pour réaliser plus d'une passe sur la source. Par exemple, regardons une déclaration figure à la ligne 20 de la source qui affiche la traduction d'une déclaration figurant à la ligne 10. Alors, la première passe doit récolter des informations sur les déclarations figurant après les déclarations qu'ils affectent, avec la traduction clairement dite qui s'exécute 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