* Creation Site Web 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
Creation Site Web Valence
Article:
L'Adaptation (réalisation concrète) d'un langage de programmation peut être compiléeou développée. Cetteexécution est un compilateur ou un interpréteur, et un langage de programmation peut avoir une implémentation compilée, et une autre interprétée. Les compilateurs antérieur ont été écrits automatiquementpar le langage assembleur, ce langage symbolique indispensableconforme aux commandes du processeur fin et quelques structures de vérification légèrement plus développement. Ce langage symbolique doit être associé (et non compilé) et attaché pour avoir une version exécutable. En raison de sa sincérité, un programme simple satisfait à le transformer en instructions machine. Les compilateurs d'aujourd'hui sont en général é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 compliqué de repérer un bug de compilateur. Par exemple, si un compilateur C comporte un bug, les programmeurs en langage C auront naturellement 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 raison 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). Des fois, la conception d'une fonction de langage a besoin d'un compilateur pour accomplir plus d'une passe sur la source. Par exemple, observons une déclaration figurant à la ligne 20 de la source qui affecte la traduction d'une déclaration figurant à la ligne 10. Dans cetcondition, la première passe doit récolter des instructions sur les affirmations figurant après les affirmations qu'ils affectent, avec la traduction clairement dite qui s'effectue lors d'un passage postérieur.