Qu'est-ce qu'un compilateur?
Un compilateur est un type spécial de programme informatique qui traduit un fichier texte lisible par l'homme en un format plus facilement compréhensible par l'ordinateur. À son niveau le plus élémentaire, un ordinateur ne peut comprendre que deux choses, un 1 et un 0. À ce niveau, un humain fonctionnera très lentement et trouvera incompréhensible les informations contenues dans la longue chaîne de 1 et de 0. Un compilateur est un programme informatique qui comble cette lacune.
Au début, les compilateurs étaient des programmes très simples qui ne pouvaient traduire que les symboles en bits , les 1 et les 0, l'ordinateur compris. Les programmes étaient également très simples et consistaient en une série d’étapes initialement traduites manuellement en données compréhensibles par l’ordinateur. Cette tâche prenant beaucoup de temps, des parties de cette tâche ont été automatisées ou programmées et le premier compilateur a été écrit. Ce programme a assemblé ou compilé les étapes nécessaires à l'exécution du programme étape par étape.
Ces compilateurs simples ont été utilisés pour écrire un compilateur plus sophistiqué. Avec la nouvelle version, davantage de règles pourraient être ajoutées au programme de compilation pour permettre au programmeur humain de fonctionner avec une structure de langage plus naturelle. Cela facilitait les programmes d'écriture et permettait à plus de gens de commencer à les écrire. Alors que de plus en plus de gens ont commencé à écrire des programmes, de plus en plus d’idées sur les programmes d’écriture ont été proposées et utilisées pour créer des compilateurs plus sophistiqués. De cette façon, les programmes de compilation continuent à évoluer, à s’améliorer et à devenir plus faciles à utiliser.
Les programmes de compilation peuvent également être spécialisés. Certaines structures linguistiques conviennent mieux à une tâche particulière que d'autres. Des compilateurs spécifiques ont donc été développés pour des tâches ou des langues spécifiques. Certains compilateurs sont multi - étapes ou multiples . Un premier passage pourrait prendre un langage très naturel et le rapprocher d'un langage compréhensible par ordinateur. Un deuxième ou même un troisième passage pourrait le mener à la dernière étape, le fichier exécutable.
La sortie intermédiaire dans un compilateur à plusieurs étages est généralement appelée pseudo-code , car elle n'est pas utilisable par l'ordinateur. Le pseudo-code est très structuré, comme un programme informatique, non fluide et bavard comme un langage plus naturel. La sortie finale s'appelle le fichier exécutable , puisqu'il s'agit de ce qui est réellement exécuté ou exécuté par l'ordinateur. En séparant la tâche de cette manière, il est plus facile d'écrire des compilateurs plus sophistiqués, car chaque sous-tâche est différente. Il était également plus facile pour l'ordinateur d'indiquer les endroits où il avait du mal à comprendre ce qu'on lui demandait de faire.
Les erreurs qui limitent la compréhension du programme par le compilateur sont appelées erreurs de syntaxe . Les erreurs dans la façon dont les fonctions du programme s'appellent des erreurs de logique . Les erreurs de logique sont beaucoup plus difficiles à détecter et à corriger. Les erreurs de syntaxe ressemblent à des fautes d'orthographe, alors que les erreurs de logique ressemblent un peu plus à des erreurs grammaticales.
Des programmes de compilation croisés ont également été développés. Un compilateur croisé permet à un ensemble d'instructions de fichier texte écrit pour un ordinateur conçu par un fabricant spécifique d'être compilé et exécuté pour un ordinateur différent par un fabricant différent. Par exemple, un programme conçu pour être exécuté sur un ordinateur Intel peut parfois être compilé pour exécuter un ordinateur développé par Motorola. Cela ne fonctionne souvent pas très bien. Au niveau auquel les programmes informatiques fonctionnent, le matériel informatique peut être très différent, même s’ils peuvent vous ressembler.
La compilation croisée est différente du fait qu’un ordinateur émule un autre ordinateur. Si un ordinateur émule un ordinateur différent, il prétend être cet autre ordinateur. L'émulation est souvent plus lente que la compilation croisée, car deux programmes s'exécutent en même temps, le programme prétendant être l'autre ordinateur et le programme en cours d'exécution. Toutefois, pour que la compilation croisée fonctionne, vous avez besoin du texte en langage naturel original décrivant le programme et d'un ordinateur suffisamment similaire à l'ordinateur d'origine pour que le programme puisse fonctionner sur un autre ordinateur. Ce n'est pas toujours possible, alors les deux techniques sont utilisées.