La complexité qu’on attribue à la programmation « Shell » est essentiellement due au manque de soin apporté à l’étude et la bonne compréhension de son mécanisme d’interprétation. En fait, si celui-ci semble souvent intuitif, surtout pour les utilisateurs déjà habitués à d’autres langages de script ou de programmation, il est fondamental de bien comprendre chacune des étapes de l’analyse d’une ligne de script pour prendre réellement en main le « Shell ». Cet article va donc détailler, étape par étape, comment un interpréteur, « Bash » ou autre, va découper et exécuter les commandes saisies ou les lignes d’un script « Shell », et ainsi, expliciter, autant que possible, le mécanisme d’interprétation de ce dernier.
1. Langage interprété
Une notion cruciale à retenir avant tout est que le « Shell » est un langage interprété [1]. Ceci signifie que les instructions utilisées vont être tout d'abord interprétées avant d'être transformées en langage machine. Cette approche est très différente des langages de programmation dits « compilés » (comme le C ou même le Java).
Dans le cas de ces derniers, les instructions ou mot-clés du langage sont directement transformés en instructions-machine. Il y a donc une relation plus « directe » entre le code et l'exécution par la machine. Dans le cas des langages interprétés, cette relation est beaucoup moins directe.
Ceci a de nombreuses conséquences, dont l'une est l'absence de gestion de la mémoire. En effet, dans un langage interprété, c'est à la charge de l'interpréteur – qui exécute le programme comme nous allons le voir par la suite – de s'occuper d'allouer (et surtout de désallouer) la mémoire nécessaire...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première