La définition que vous avez citée ci-dessus est trop générale pour qu'un débutant la comprenne complètement et permettez-moi donc de la simplifier à quelque chose que nous voyons pratiquement.
Compilateur: est un terme générique pour décrire un programme qui prend du code source écrit dans une langue et produit un (ou plusieurs) fichier de sortie dans une autre langue. En pratique, nous utilisons principalement ce terme pour décrire un compilateur tel que gcc qui prend du code C en entrée et produit un exécutable binaire (code machine) en sortie.
Les transpilers sont également connus sous le nom de compilateurs source-à-source. Donc, essentiellement, ils sont un sous-ensemble de compilateurs qui prennent un fichier de code source et le convertissent en un autre fichier de code source dans une autre langue ou une version différente de la même langue. La sortie est généralement compréhensible par un humain. Cette sortie doit encore passer par un compilateur ou un interpréteur pour pouvoir s'exécuter sur la machine.
Quelques exemples de transpileurs:
- Emscripten : Transpile C / C ++ en JavaScript
- Babel : Transpiles ES6 + code vers ES5 (ES6 et ES5 sont des versions ou générations différentes du langage JavaScript)
Maintenant, que veulent-ils dire par «niveau d'abstraction similaire»: comme je l'ai dit, il compile / transpile vers un fichier source, on peut affirmer que le langage d'assemblage est aussi un fichier source et donc gcc est également un transpilateur. Donc, cet argument est ce que ce niveau similaire d'abstraction vide.
La notion de catégorisation des langages en niveaux inférieur, moyen et supérieur est basée sur le niveau d'abstraction qu'ils fournissent à partir du fonctionnement réel de la machine / architecture.
Les langages de niveau inférieur comme l'assemblage sont très proches de l'architecture du processeur, c'est-à-dire qu'ils ont des instructions différentes pour différents processeurs. Alors que C / C ++ / Java / JavaScript, abstrait tout cela pour fournir plus d'abstraction.
Ainsi, un transpilateur compile dans une langue qui est plus proche de la langue avec laquelle vous avez commencé dans les termes de cette abstraction (ou est plus proche du niveau de cette langue dans l'échelle de langue de niveau inférieur-moyen-supérieur).
J'espère que cela t'aides!