Comment puis-je dire en anglais, que le langage de programmation peut être compilé dans d'autres langages de programmation?
L'exemple peut être Haxe . Sur le site Web, la langue est décrite comme "Multiplateforme":
Multiplateforme: Haxe peut être compilé sur toutes les plateformes de programmation populaires avec son compilateur rapide - JavaScript, Flash, NekoVM, PHP, C ++, C # et Java (bientôt)
mais la multiplateforme peut être mal comprise comme plate-forme matérielle ou logicielle (win, mac, linux).
Alors, quel est le mot le plus approprié pour décrire cette capacité?
programming-languages
terminology
language-agnostic
language-features
multi-platform
danilo2
la source
la source
Réponses:
Le terme habituel est "transcompilation" - pas un terme courant, mais techniquement correct. Ce n'est pas seulement pour les nouveaux langages de script à la mode (CoffeeScript -> JavaScript); les premiers compilateurs C ++ étaient en fait des transcompilateurs vers C.
la source
Désolé messieurs, mais le mot pour cela est juste "compilé" . Cela signifie transformer un type de code en un autre type de code. Cela ne fait aucune différence réelle si ce code est l'anglais, C ++, le code machine x86, le code machine ARM, Java, le bytecode ou le retour en anglais. Nous l'utilisons généralement pour signifier le passage du langage de programmation au code machine, mais c'est un aspect que le mot a gagné au fil du temps. Et bon, si suffisamment de gens commencent à utiliser un mot de manière incorrecte, il gagne en effet ce nouveau sens. Mais si vous voulez un mot pour transformer Haxe en C ++, le mot est "compile" .
(De plus, j'ignore Merriam-Webster, parce qu'ils sont stupides parce qu'ils ne sont pas d'accord avec moi ... hmmmm)
la source
C'est peut-être une question pour https://english.stackexchange.com/ mais je dirais que le processus de compilation comprend la compilation dans un autre langage de haut niveau et n'est pas seulement limité aux compilateurs qui compilent vers le code machine natif.
Comme un mot "Compiler" n'est pas du tout spécifique aux compilateurs informatiques et est assez général. «Compiler un tableau» ou «compiler une liste de noms» me vient à l'esprit, il est donc suffisamment large pour de nombreux usages (les processeurs de texte comme Latex compilent également, etc.). Pour être plus précis sur la cible de la compilation, j'utiliserais to-source-compiler
Maintenant, pour l'exemple spécifique, je pense que la plate-forme est un mot approprié à utiliser. Étant donné que les langues humaines sont intrinsèquement ambigües, vous devez utiliser la redondance (exemples, paraphraser avec d'autres mots, expliquer) pour faire passer le message en cas de doute.
Je voudrais également lire la déclaration "Haxe" d'une manière qui inclut des bibliothèques standard et des choses similaires. C'est-à-dire que dans ce cas, la plate-forme serait un surensemble de "langage" et vous pourriez le séparer de cela en l'appelant "plate-forme de développement logiciel", etc.
la source
Vous pouvez dire qu'un compilateur a les langues X, Y et Z comme cibles de traduction , ou concevoir une langue avec ces cibles à l'esprit.
la source
Je dirais que le compilateur par définition se traduit par un langage de programmation différent (au moins c'est la définition que je connais - programme qui transforme un langage en un autre). Par exemple, la plupart des compilateurs C produisent un assemblage en sortie. Les compilateurs d'assemblage prennent cette sortie et la transforment en code binaire qui est aussi une langue (bien sûr - probablement personne n'y écrit écrit au cours des 40 dernières années ou plus mais techniquement c'est la langue) - qui peut être prise et recompilée pour dire micro- opérations par les processeurs (ou certaines opérations sont effectuées par l'éditeur de liens sur les fichiers objets). De même, le
javap
compile en bytecode. Habituellement, à la fin de cette chaîne, il y a un interprète qui exécute le code final (que ce soit CPU, GPU ou programme exécuté). Le code machine n'existe pas, car le x86 moderne recompile les programmes en opérations internes (micro-opérations) et je suis parfaitement capable de traiter le code machine ARM comme un langage interprété sur x86 ou l'inverse (dans certains cas, même recompiler d'une forme à une autre).Haxe est un compilateur source-à-source car il ne transforme pas le langage de niveau supérieur en niveau inférieur comme les exemples précédents. Cela ne semble pas résoudre directement votre problème d'ambiguïté multiplateforme, mais malheureusement je ne pense pas qu'il existe un moyen pratique de différenciation entre ces deux choses - les API sont des sortes de langages qui peuvent être en général interprétés, recompilés, etc.
la source
Première chose d'abord: je ne sais pas s'il existe déjà un mot approprié pour cette fonctionnalité.
Mais peut-être que cela pourrait être appelé multilingue? Ou langageagnostique? Puisqu'il s'agit davantage du langage de programmation, la mention de «langage» dans le nom pourrait le rendre plus évident que multiplateforme.
Bien sûr, le langage est également ambigu, car on pourrait comprendre que le code source peut être écrit dans n'importe quel langage du monde réel (par exemple parce que les variables peuvent être écrites en unicode).
D'un autre côté, chaque programmeur chevronné reconnaîtra probablement une telle construction comme différente de la localisation ou de l'internationalisation, de sorte qu'ils pourraient «l'obtenir» plus facilement.
Juste mes 2 cents.
la source