Tout développeur est amené à utiliser un compilateur. Toutefois, peu nombreux sont ceux qui savent réellement comment fonctionne celui-ci. Cet article et les suivants permettront donc de présenter les différentes étapes de compilation, et d’expliquer comment créer un programme pour réaliser l'ensemble de ces étapes.
Avant la venue des langages de programmation, les programmeurs devaient connaître par coeur l'architecture de la machine sur laquelle ils travaillaient, et "parler" directement à celle-ci à l'aide d'un langage binaire. Très rapidement, a été inventé un langage utilisant des raccourcis textuels : l'assembleur. Ce nouveau langage présentait plusieurs avantages: tout d'abord, il était plus facile de lire du texte utilisant des mots sensés, mais surtout, une vérification basique était faite lors d'une erreur de saisie. Toutefois ce langage avait de nombreux défauts. Il imposait peu de contraintes au développeur, ce qui pouvait être avantageux, mais était peu pratique pour la productivité et la robustesse du code. La vérification de type n'existant pas, de nombreux bugs en découlaient, et ceux-ci étaient particulièrement difficiles à détecter. Enfin, le niveau d'abstraction était faible, le langage restant très proche du langage machine. Pour pallier cela, les langages de programmation dits de "haut niveau" ont été inventés. La principale caractéristique de ceux-ci était un niveau d'abstraction élevé. C'est-à-dire que le langage ressemblait plus à un langage humain qu'à des instructions machines.
Axel Berardino