Introduction : la compilation

What is compilation?

  • Compilation is translation from a high-level computer language (meant to be read by a human being) to a low-level language (instructions meant to be read and executed efficiently by a machine). During compilation, errors, if any, in the grammar of the high-level language are signaled.

  • The compiler is the piece of software that does the compilation.

Interpreted languages versus compiled languages.

Interpreted languages versus compiled languages

On peut distinguer des langages de programmation interprétés et des langages de programmation compilés. La compilation est une traduction du programme en un langage spécifique au processeur utilisé : le "langage machine". La compilation est une étape qui précède l'exécution du programme. Pour un langage interprété, l'exécution est confiée à l'interpréteur du langage. Pour un langage compilé, l'exécution est prise en charge directement par le système d'exploitation. La compilation crée un nouveau fichier (qui ne contient pas un texte lisible), dit fichier exécutable. C'est ce fichier exécutable dont on lance l'exécution. Avec un langage interprété, le fichier contenant le texte du programme est directement exécutable.

  • Fortran, C et C++ sont des exemples de langages compilés. Python et Bash sont des exemples de langages interprétés.

  • The file which contains the text of the program in the compiled language (Fortran, C++ …) is called the ”source file”.

  • The compiler accomplishes a complex task, but it does it only once, producing an executable file that will work with any data. The interpreter accomplishes a simpler task, but has to do it again for each run with new data.

  • Un programme en langage compilé donne en principe un exécutable plus rapide qu'un programme analogue en langage interprété.

If you want to know more about compilation:

  • Langages de programmation et compilation, Jean-Christophe Filliâtre. https://www.lri.fr/~filliatr/ens/compil

  • Aho et al. Compilers: Principles, Techniques, and Tools, 2nd edition, Addison-Wesley, 2006