Interaction avec des langages impératifs


Les idées fortes

On manipule des cases mémoires à l'aide d'une série d'instructions.

Dans les premiers langages on peut citer :

  • Fortran (1954) : le plus ancien langage impératif dit de "haut niveau". Il est toujours utilisé pour le calcul scientifique.
  • C (1972) : le plus connu et le plus utilisé aujourd'hui. Il sert majoritairement pour écrire des systèmes d'exploitation ou des logiciels qui ont besoin de performance.

Et plus récemment :

  • Go (2009) : développé par Google, il vise les performances du C avec la simplicité des langages de scripts comme Python.
  • Rust (2006) : développé par Mozilla, il vise les même applications que C mais avec la sécurité d'exécution sur des machines modernes.

Déclaration de valeurs et cases mémoires

Déclaration et mutation d'un valeur contenue dans une case mémoire en C.

int main()
{
  int i = 1; // Déclaration d'un variable i dont le contenu est un entier et vaut 1.
  // i = i + 1; // On incrémente la valeur à partir de sa propre valeur.
  // i++; // Opérateur spécial pour incrémenter la valeur.
  return i;
}

Manipulation de l'adresse d'une valeur en mémoire (pointeur) en C.

int main()
{
  int i = 1;
  int *ptr = &i; // Nous déclarons un pointeur qui prend pour valeur l'adresse de i.
  // *ptr = *ptr + 1; // Nous incrémentons la valeur stockée dans la case mémoire i.
  return *ptr; // Nous retournons la valeur stockée dans la case mémoire.
}

Outil fondamental n° 1 : l'itération avec for

int main()
{
  int table[5] = {846, 740, 285, 94, 53};
  int table_length = sizeof(table) / sizeof(int);
  int i = 0;
  int sum = 0;

  for (i = 0 ; i < table_length ; i++)
  {
    sum = sum + table[i];
  }
  
  return 0;

  // return sum;
}

Outil fondamental n° 2 : les conditionnels avec if, then, else

int main()
{
  int a = 2;
  int b = 4;
  int result;
  
  /*
  if(a > b) {
    result = 2018;
  } else {
    result = 2019;
  }
  */
  
  return result;
}