Compilateur

Un compilateur est un programme qui traduit le code source d'un langage, le plus souvent un langage de programmation, en un autre langage, le plus souvent du "langage machine". Le programme traduit est appelé "code objet".

Table of contents
1 Compilateurs particuliers
2 Le problème de l'amorçage (bootstrap)
3 Les étapes de la compilation
4 Voir aussi

Compilateurs particuliers

compilateur croisé

Un compilateur croisé (angl.: cross compiler) est un
programme capable de traduire un code source en code objet ayant un environnement d'exécution (architecture matérielle, système d'exploitation) différent de celui où la compilation est effectuée.

byte code

Certains compilateurs traduisent un langage source en langage machine "virtuel", c'est-à-dire un code qui est exécuté par une machine virtuelle : un programme émulant les principales fonctionnalités d'un ordinateur. Le portage d'un programme ne requiert ainsi que le portage de la machine virtuelle. C'est le cas du compilateur Java, qui traduit du code Java en bytecode Java (code objet). Une machine virtuelle DotNet peut exécuter du bytecode MSIL produit par les langages de Microsoft C#, Visual Basic ou autres.

note

Le langage servant à écrire un compilateur est appelé langage d'implémentation.

Le problème de l'amorçage (bootstrap)

Les premiers compilateurs étaient écrits directement en langage assembleur, un langage symbolique élémentaire correspondant aux instructions du processeur cible et quelques structures de contrôle légèrement plus évoluées. Ce langage symbolique doit être 'assemblé' (et non compilé) et lié pour obtenir une version exécutable. En raison de sa simplicité, un simple programme suffit à le convertir en instructions machines.

Les compilateurs actuels sont généralement é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 (fut-ce de l'assembleur) pour être produit.

Les étapes de la compilation

La tâche principale d'un compilateur est de produire du code objet correct. La plupart des compilateurs permettent d'optimiser le code. (le code objet optimisé s'exécutera plus rapidement, ou aura une occupation mémoire moindre).

Les étapes de la compilation incluent

Ces différentes étapes expliquent que les compilateurs fassent toujours l'objet de recherches, particulièrement dans le domaine de l'optimisation du code produit.

Voir aussi

Interpréteur | Informatique




Tous les textes sont disponibles sous les termes de la Wikipedia se publica bajo la Licencia de Documentación Libre GNU.

Legal  -  Contacto