Un compilateur est un type particulier de programme informatique qui traduit un fichier texte lisible par un humain en une forme que l'ordinateur peut comprendre plus facilement. À son niveau le plus élémentaire, un ordinateur ne peut comprendre deux choses, un 1 et un 0. A ce niveau, un être humain fonctionne très lentement et trouver l'information contenue dans la longue chaîne d'incompréhensible 1 et de 0. Un compilateur est un programme informatique qui comble cette lacune.
Au début, les compilateurs sont des programmes très simples qui ne pouvaient se traduire par des symboles dans les bits, le 1 et de 0, l'ordinateur comprise. Les programmes étaient également très simple, composée d'une série de mesures qui ont été initialement traduits par la main dans les données de l'ordinateur peut comprendre. Ce fut une tâche très coûteuse en temps, donc des portions de cette tâche ont été automatisées ou programmées, et le premier compilateur a été écrit. Ce programme assemblé, ou compilés, les étapes requises pour exécuter le programme étape par étape.
Ces compilateurs simples ont été utilisés pour écrire un compilateur plus sophistiqué. Avec la nouvelle version, de nouvelles règles pourraient être ajoutés au programme de compilateur pour permettre à une structure de langage plus naturel pour le programmeur humain pour fonctionner avec. Cette facilité de programmes d'écriture a permis à plus de gens de commencer à écrire des programmes. Comme plus de gens ont commencé à écrire des programmes, plus d'idées sur les programmes d'écriture ont été proposés et utilisés pour fabriquer des compilateurs plus sophistiqués. De cette façon, les programmes de compilation ne cessent d'évoluer, s'améliorer et devenir plus facile à utiliser.
programmes de compilation peuvent également être spécialisé. Certaines structures linguistiques sont mieux adaptés pour une tâche particulière que d'autres, les compilateurs spécifiques ont été développés pour des tâches ou des langages spécifiques. Certains compilateurs sont passé plusieurs étapes ou multiple. Un premier passage pourrait prendre une langue très naturelle et le rendre plus proche d'un langage compréhensible par ordinateur. Une deuxième, voire une troisième passe pourrait prendre à l'étape finale, le fichier exécutable.
La sortie intermédiaire dans un compilateur multi-étages est généralement appelé pseudo-code, car il n'est pas utilisable par l'ordinateur. Pseudo-code est très structuré, comme un programme informatique, à écoulement libre et non détaillé comme un langage plus naturel. Le résultat final est appelé le fichier exécutable, puisque c'est ce qui est effectivement exécutée ou gérée par l'ordinateur. Partage de la tâche comme ça il est plus facile d'écrire des compilateurs plus sophistiqués, comme chaque sous tâche est différente. Il a également rendu plus facile pour l'ordinateur pour montrer où il avait du mal à comprendre ce qu'on lui demandait de faire.
Les erreurs qui limitent le compilateur dans la compréhension d'un programme sont appelées erreurs de syntaxe. Des erreurs dans la façon dont les fonctions du programme sont appelées erreurs de logique. Les erreurs de logique sont beaucoup plus difficiles à repérer et corriger. Les erreurs de syntaxe sont comme des fautes d'orthographe, tandis que les erreurs logiques sont un peu plus comme des erreurs grammaticales.
Les programmes de cross compilateur ont également été développés. Un compilateur croisé permet un fichier texte ensemble d'instructions qui sont écrites pour un ordinateur conçu par un fabricant spécifique pour être compilé et exécuté pour un autre ordinateur par un autre fabricant. Par exemple, un programme qui a été écrit pour fonctionner sur un ordinateur Intel peut parfois être contre compilé pour s'exécuter sur un ordinateur mis au point par Motorola. Cela ne fonctionne souvent pas très bien. Au niveau où les programmes informatiques fonctionnent, le matériel informatique peut être très différente, même si elles peuvent ressembler à vous.
La compilation croisée est différent d'avoir un ordinateur émuler un autre ordinateur. Si un ordinateur est émule un ordinateur différent, il fait semblant d'être cet autre ordinateur. L'émulation est souvent plus lent que la compilation croisée, depuis deux programmes sont en cours d'exécution à la fois, le programme qui fait semblant d'être l'autre ordinateur et le programme qui est en cours d'exécution. Cependant, pour la compilation croisée de travailler, vous avez besoin du texte en langage naturel d'origine qui décrit le programme et un ordinateur qui est suffisamment similaire à l'ordinateur d'origine que le programme puisse fonctionner à exécuter sur un autre ordinateur. Ce n'est pas toujours possible, afin que les deux techniques sont en cours d'utilisation.