Traduction du langage humain au langage informatiqueEdit
Les ordinateurs modernes sont très complexes et pour les programmer de manière productive,diverses abstractions sont nécessaires. Par exemple, plutôt que d’écrire la représentation binaire d’un programme, un programmeur écrira un programme dans un langage de programmation comme C, Java ou Python.Les outils de programmation tels que les assembleurs, les compilateurs et les linkers traduisent un programme d’un langage source lisible et écrivable par l’homme en bits et en octets qui peuvent être exécutés par un ordinateur. Les interprètes interprètent le programme à la volée pour produire le comportement souhaité.
Ces programmes effectuent de nombreuses tâches bien définies et répétitives qui prendraient néanmoins beaucoup de temps et seraient sujettes à des erreurs lorsqu’elles sont effectuées par un humain,comme la disposition des parties d’un programme en mémoire et la correction des références entre les parties d’un programme comme le fait un éditeur de liens.Les compilateurs d’optimisation, en revanche, peuvent effectuer des transformations complexes sur le code source afin d’améliorer la vitesse d’exécution ou d’autres caractéristiques d’un programme. Cela permet à un programmeur de se concentrer davantage sur les aspects conceptuels de plus haut niveau d’un programme sans se soucier des détails de la machine sur laquelle il s’exécute.
Rendre les informations du programme disponibles pour les humainsEdit
En raison de la grande complexité des logiciels, il n’est pas possible de comprendre la plupart des programmes d’un seul coup d’œil, même pour le développeur de logiciels le plus expérimenté.Les abstractions fournies par les langages de programmation de haut niveau rendent également difficile la compréhension du lien entre le code source écrit par un programmeur et le comportement réel du programme.Afin de trouver les bogues dans les programmes et d’empêcher la création de nouveaux bogues lors de l’extension d’un programme, un développeur de logiciels utilise certains outils de programmation pour visualiser toutes sortes d’informations sur les programmes.
Par exemple, un débogueur permet à un programmeur d’extraire des informations sur un programme en cours en termes de langage source utilisé pour le programmer.Le débogueur peut calculer la valeur d’une variable dans le programme source à partir de l’état de la machine concrète en utilisant les informations stockées par le compilateur. Les débogueurs de mémoire peuvent directement signaler les accès à la mémoire douteux ou carrément erronés des programmes en cours d’exécution qui, autrement, pourraient rester non détectés et sont une source fréquente d’échecs des programmes.