Compilateurs et interpréteurs

Comment passer du code à un programme utilisable ?

Comment ça marche un ordinateur ?

Processeur, données et instructions

  • Le processeur à un set d'instructions simples (X86 , ARM , etc...)
  • Il peut éxécuter ces instructions sur des données en mémoire
  • Tout est binaire
    • Données en mémoire
    • Instructions (language machine)

Exécuter un programme

  • C'est un fichier dit éxécutable
  • Liste d'instructions à suivre
  • Processeur traite/lit le fichier
  • Premiers logiciels ont été créés directement en instructions binaires

Ca a l'air compliqué de créer des logiciels comme ça.

Languages compilés

  • Ecrire du code plus lisible par un humain
  • Code transformé en instructions
  • Un ou plusieurs fichiers textes sont transformé en fichier exécutable
  • Programme spécial : le compilateur

Assembleur

  • Langage du plus bas niveau lisible par un humain
  • Très proche du language machine
  • Tu es sur que c'est plus simple ?

    Languages haut niveau

    • Beaucoup plus lisible par un humain
    • Exemples
      • C/C++ (gcc)
      • fortran
      • go
      • rust

    Les compilateurs

  • sont eux mêmes des programmes compilés
  • souvent d'abord écrit dans un language plus ancien
  • Puis récrit dans le même language
  • Caractéristiques des Languages compilés

  • plus rapides et efficient
  • nécessite un temps de compilation
  • Doit être compiler pour chaque plateforme
  • la compilation peut échouer
  • Languages interprétés

    • Programme spécial : l'interpreteur
    • Le programme éxécuté c'est l'interpreteur
    • Code transformé en instructions par l'interpreteur à la volée
    • Exemples
      • PHP
      • ruby
      • python

    Les interpréteurs

  • sont eux mêmes des programmes compilés
  • souvent écrits dans un language différent
  • Exemple: PHP est écrit en C
  • Caractéristiques des languages interprétés

  • plus lents à l'éxécution
  • plus facilement multi-plateforme
  • l'éxécution peut être stoppée pour débugger
  • Hybrides

  • Une première étape de compilation
  • Une deuxième étape interprétée
  • Exemples
    • Java
    • C#
  • De quelle catégorie fait partie

    • Matlab ?
    • Javascript ?

    Systemes d'exploitation

    Programme un peu a part

    Souvent doit être compilé par rapport au matériel

    Questions ?

    Merci