Aller au contenu

Discussion:Compilateur

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Il faut trouver un autre nom pour [C#] (caractère '#' interdit dans les URL). -- Looxix 3 aoû 2003 à 04:11 (CEST)

Je propose [C dièse]. C'est comme cela que je le prononce en français. Vargenau 3 aoû 2003 à 10:15 (CEST)
Ou bien [C sharp], plus proche de la phonétique anglaise, non ?
Aurelienc
Oui mais on est dans le wiki francophone... et "#" chez nous, ça se dit "dièse", non ? Pour les anglophiles, on peut faire une redirection. Même problème d'ailleurs pour "point net"... Serait-ce une cabale de Microsoft cette affaire ;-) Didier 17 sep 2003 à 18:57 (CEST)
Si on veut vraiment traduire, c'est do dièse. L'article promet ;D Didup 17 sep 2003 à 19:04 (CEST)

C dièse, c'est limite comique tout de même... je pencherai plus vers C sharp car c'est d'origine américaine tout de même et plus de gens comprennent mais bonKoxinga 17 sep 2003 à 19:18 (CEST)

De toute façon, ce caractère n'est pas un dièse ; les anglophones le nomment, entre autres, hash. Voir l'article « dièse », justement. J'en conviens, les anglophones disent bien C sharp : en:C Sharp programming language. Vincent 17 sep 2003 à 19:40 (CEST)

Juste pour dire que dotNet est normalisé par l'ECMA et que le code intermédiare normalisé s'appelle CIL (common intermediate language). Microsoft appelle son "implémentation" MSIL. Je n'ai aucune idée de la différence entre les 2. Cette précision est lisible dans le fichier de jargon sur Shared Source Common Language Infrastructure, implémentation de référence de dotNet.

Une petite note pour dire que la notion de compilateur ne s'applique pas seulement aux langages informatiques, mais aussi à n'importe quel langage de description. Par exemple, le fait de transformer du langage postscript (description de page) en commandes pour un affichage sur écran ou sur une imprimante est aussi une phase de compilation qui passe par un compilateur. Je viens de modifier la définition du mot compilateur en ce sens.

Manque de clarté

[modifier le code]

Je ne comprends pas la partie sur le bootstrap. La partie sur cette notion ne décrit pas ce qu'est le bootstrap. De plus, la phrase suivante est incomplète : « Le bootstrap oblige donc les programmeurs de compilateurs à contourner leurs propres bugs qui peuvent donc être extrêment durs à trouver, car remonter plusieurs niveaux de compilation auparavant. »

Vincent 9 mai 2004 à 12:24 (CEST)[répondre]

-- L'article est bordélique. Il faut trancher dans le vif de toutes façon. Aurélien.

L'article est incompréhensible. c'est parce que je sais ce que c'est que j'arrive à le déchiffrer, mais quand on dit par exemple qu'un language a un niveau d'abstraction plus élevé, excusez moi, mais le novice n'y comprend rien. Il faudrait également préciser dans l'introductiob l'utilité d'un compilateur... Eh oui, le novice se demande bien à quoi ça peut servir de transmettre d'un programme à un autre... Il faut expliquer tout ça, on oublie trop souvent que l'article est destiné à celui qui cherche la connaissance, pas à celui qui la possède... Saccagator


Compilateur de compilateur

[modifier le code]

J'ai ajouté compilateur de compilateur dans la section Compilateurs particuliers mais je pense qu'il sera nécessaire de faire un article dédié au compilateur de compilateur. Y-a-til des personnes interessées ? Boly 5 jan 2005 à 23:27 (CET)

si l'on se limite à la définition de "Compilateurs: principes, techniques et outils",alfred Aho, Ravi Sethi, Jeffrey Ulman, InterEdition 1977 Un compilateur traduit un Programme source vers un programme cible, point. Que l'on puisse compiler un programme source qui serait lui même un compilateur est implicite et me semble inutile. jp

Propriété d'amorçage des compilateurs

[modifier le code]

Est-ce qu'on pourrait trouver dans la littérature une définition et une théorie de la propriété d'amorçage des compilateurs. Je n'arrive pas à trouver s'il s'agit de structures de données ou de structures de contrôle et en quelle proportion il en faut pour rendre un compilateur amorçable: compilable par lui-même. Gilles DRIDI Mél. : gdridi@club-internet.fr

L'article est incompréhensible

[modifier le code]

L'article est incompréhensible. c'est parce que je sais ce que c'est que j'arrive à le déchiffrer, mais quand on dit par exemple qu'un language a un niveau d'abstraction plus élevé, excusez moi, mais le novice n'y comprend rien. Il faudrait également préciser dans l'introductiob l'utilité d'un compilateur... Eh oui, le novice se demande bien à quoi ça peut servir de transmettre d'un programme à un autre... Il faut expliquer tout ça, on oublie trop souvent que l'article est destiné à celui qui cherche la connaissance, pas à celui qui la possède... Saccagator

This figure at commons (in spanish) based in the english article one is available for translations through the source openoffice.org file linked at its Common "Image:CompilationScheme-Spanish.png". You can easily translate it to your language. gengiskanhg from Spanish and english wikipedias. --132.248.36.43 27 septembre 2005 à 16:32 (CEST)[répondre]

Article à revoir

[modifier le code]

Bonjour,

Comme nombre de personnes, je trouve cet article très mal organisé et globalement d'un niveau très moyen. Je propose qu'un bandeau soit ajouté pour positionner l'article comme une ébauche.

Langage d'assemblage, langage machine, code objet, édition de lien

[modifier le code]

Désolé, mais je trouve tout cela peu clair.

Par exemple il est dit en introduction :

- "En pratique, un compilateur sert le plus souvent à traduire un code source écrit dans un langage de programmation en un autre langage, habituellement un langage d'assemblage ou ...."


Puis dans "Structure d'un compilateur" :

- "la transformation du code source en code intermédiaire"


Le code intermédiaire peut être du langage d'assemblage ?


Puis :

- "l'allocation de registres et la traduction du code intermédiaire en code objet"

Donc l'objectif est de faire du langage objet et non du langage d'assemblage ?


Puis :

- "et enfin l'édition des liens"

Pour moi, ça ne fait pas parti du compilateur. Si le but d'un compilateur est de traduire en langage d'assemblage comme le dit l'introduction, alors on ne peut pas faire l'édition des liens. L'édition des liens n'est possible que depuis le code objet et non depuis le langage assembleur.


  • Dans "Compilateur croisé".


- "Un compilateur croisé (en anglais cross compiler) est un programme capable de traduire un code source en code objet"


Un compilateur croisé ne fait pas de langage assembleur mais il est dit dans l'introduction d'un compilateur peut faire du langage assembleur.



  • Dans "Autres compilateurs"


- "Si la plupart des compilateurs traduisent un code d'un langage de programmation vers un autre, ce n'est pas le cas de tous les compilateurs. Par exemple, le logiciel LaTeX compile un code écrit dans le langage de formatage de texte LaTeX, pour le convertir en un autre langage, par exemple DVI, HTML, PostScript..."


Alors qu'il est dit de multiple fois qu'un compilateur fait du code objet (code machine) ici ce n'est plus du code objet (ni d'ailleurs du langage d'assemblage).


En introduction pour le code source il est dit "langage de programmation" et dans ce paragraphe le code source n'est pas un "langage de programmation" (mais de formatage de texte). L'exemple de LaTex me semble un convertisseur de format et non un compilateur. Es-ce un abus de langage de la part de LaTeX ? En tout cas, l'exemple avec LaTeX ajoute beaucoup de confusion.


Il me semble qu'un compilateur c'est avant tout un programme qui transforme un langage de programme qui ne peut pas être exécuté (car inutilisable par un microprocesseur) vers du code objet (qui peut être exécuté par un microprocesseur). Dans le cas de code objet qui est du code octet, on peut considérer que le microprocesseur est "virtuel" ou simulé.

Le code objet peut parfois ne pas être directement exploitable car des adresses ne sont pas définies. C'est le rôle de l'éditeur de lien que de fournir ces informations. Pour des raisons pratiques, de confort pour le développeur, l'éditeur de lien peut être appelé par le compilateur. Mais l'éditeur de lien est un programme séparé qui peut être utilisé sans le compilateur. Et réciproquement, un compilateur n'a pas besoin d'éditeur de lien.

Je ne pense pas que l'édition de lien fait parti de la compilation car il ne produit pas de code objet. Il peut assembler des codes objet et définir des adresses afin de créer un exécutable ou une librairie (exploitable par le système d'exploitation) mais il ne crée pas de code objet contrairement à un compilateur, il ne connait pas le code objet (code machine) contrairement à un compilateur, il ignore tout du code source contrairement à un compilateur (il marche quelque soit le langage du code source). Pour moi ceci met l'éditeur de lien hors de la définition de compilateur.

Effectivement, l'édition des liens n'est pas fait par les compilateurs (comme le prétend erronément l'article), mais bien par un éditeur de lien (ou lieur). On peut utiliser plusieurs compilateurs afin de compiler les divers fichiers sources (modules), d'un même projet de programmation, écrits dans différents langage de programmation (C, Pascal, langage d'assemblage, etc.); les divers codes objets (code binaire) produits par ces compilations sont liés ensuite dans un unique code objet par le lieur qui résout les liens entre les divers modules en remplaçant les étiquettes par les adresses effectives dans le code objet final. Les compilateurs produisent donc le code objet (code binaire), mais le lieur aussi puisqu'il le complète. Le code binaire (code objet) est aussi rédigé dans un langage [de programmation] propre à chaque machine programmable (processeur, micro-processeur, micro-contrôleur, Java Virtual Machine, etc.) et interprété par celle-ci pour effectuer les opérations attendues. En conséquence, on peut dire que les compilateurs ne sont que des traducteurs d'un langage (C, Pascal, langage d'assemblage, etc.) vers un autre (langage machine/binaire), ce que fait aussi aussi LaTeX, produisant à partir de son langage un fichier dans un autre langage (HTML, Postscript, etc.) qui sera interprété par la machine cible (par exemple, le moteur de rendu Gecko). --ProgMan (discuter) 8 février 2022 à 04:02 (CET)[répondre]

Désolé d'être un peu dur dans le jugement.

Indépendamment de la validité ou de la qualité du contenu, cet article est du charabia au point de vue de la langue. Cela le rendrait limite incompréhensible même si le sens tenait la route (ce qui reste dificile à prouver, puisque justement la barrière du langage rend ledit sens, hypothétique, bien difficile d'accès ;-).

J'ai même cru un moment à une traduction automatique, tant les étranges formules de style, typiques du transcodage mot-à-mot d'une langue à une autre, s'enchaînent mécaniquement.

Denispir (d)

Voila, j'ai essayé de reformuler/clarifier tout l'article. Cela devrait être un peu plus claire Émoticône sourire (c'est vrai que les tournures étaient parfois bizarres ; je pense que cela est du au fait que l'article s'est écrit progressivement et n'a jamais été relu dans son ensemble en suivant/construisant un plan.). Romainhk (QTx10) 21 février 2011 à 19:14 (CET)[répondre]
Émoticône L'intro a été sacrément éclaircie (dans tous les sens du terme Émoticône). — Arkanosis 22 février 2011 à 11:07 (CET)[répondre]
Merci! c'est dingue ce qu'on peut faire en quelques coups de sécateur Émoticône sourire. Romainhk (QTx10) 22 février 2011 à 16:47 (CET)[répondre]

Est-ce que « générer » est un anglicisme ?

[modifier le code]

Avant de faire un guerre d'édition, il convient de savoir si générer est un anglicisme. --Pierre de Lyon (discuter) 11 février 2019 à 13:58 (CET)[répondre]

Normalement dans une discussion, on retourne à la version ante bellum, mais bon soit.
L’OQLF (qui est très à cheval sur les anglicismes) dit que non.
Il s’agit aussi du terme consacré dans de nombreux ouvrages d’informatique.
Quand deux termes sont corrects, il est d’usage de laisser le choix du rédacteur pour éviter des guerres d’édition sans fin. — Thibaut (discuter) 11 février 2019 à 14:08 (CET)[répondre]
Je suis d'accord avec ce que dit @Thibaut120094. Et j'ajoute que la charge de la preuve revient à celui qui fait le changement, c'est donc à Lbop de prouver qu'il s'agit d'un anglicisme. Ceci dit, la plupart des dictionnaires du français (Informations lexicographiques et étymologiques de « générer » dans le Trésor de la langue française informatisé, sur le site du Centre national de ressources textuelles et lexicales) montre que le terme est utilisé depuis plusieurs siècle en français avec les sens produire et engendrer (avec qui il forme un doublet d'ailleurs, donc si remplacement il devait y avoir ce terme conviendrait peut-être mieux) et que le terme vient du latin et non de l’anglais. Cdlt, Vigneron * discut. 11 février 2019 à 15:14 (CET)[répondre]
Salut, étant informaticien, j'utilise et j'entends parler de génération de code source. On parle d'un générateur, de génération et de générer. Il suffit de voir Générateur de nombres aléatoires, Génération de code natif et Génération de code source. Et pour ceux qui se lanceraient dans la guerre de retirer tous les anglicismes du domaine de l'informatique, voire des sciences : bonne chance. Lepticed7 (discuter) 11 février 2019 à 18:38 (CET)[répondre]
Pas de problème pour « génération » et « générateur. » Je crois que l'agacement de beaucoup de locuteurs francophones vis-à-vis de « générer » ne vient pas du fait que le verbe est « pas français » ou un anglicisme, mais du fait qu'il est employé à tort et à travers, en particulier lorsqu'on peut employer à la place des verbes comme engendrer, provoquer, susciter, créer, déclencher etc. suivant le contexte. Le problème avec « générer » (s'il y en a un), c'est qu'employé dans certains contextes, il manque de précision quant au sens et révèle, par là, une cruelle absence de vocabulaire chez l'auteur.--Verbex (discuter) 11 février 2019 à 19:24 (CET)[répondre]
Générer a, du moins en informatique, une notion d'automatique. Par exemple, produire du code, c'est un humain qui le fait. En générer, c'est une machine qui le fait. Le mot générer est très présent en informatique et a ce concept d'automatique. Vouloir le retirer d'une page qui parle manifestement d'un outil informatique sous prétexte que, dans un français non technique, utiliser le mot générer démontre un manque de vocabulaire de l'auteur, est, à mon avis, contre-productif. Chaque métier/corps de métiers a sa terminologie. Et enfin, ça veut dire quoi un mot pas français ? Un bon tiers du vocabulaire anglophone vient du français. Y a un mélange linguistique en permanence. Des mots rentrent et sortent du français en permanence. Faut vraiment arrêter avec ce délire des mots pas assez français pour pouvoir être utilisés. Lepticed7 (discuter) 14 février 2019 à 10:30 (CET)[répondre]
Ce que vous dites, c'est que la machine traduit du code, composé en mnémoniques, par un être humain. Et en effet, la machine ne génère pas à partir de rien, elle effectue un travail de conversion plus ou moins élaboré (en optimisant ou pas, par exemple). Je peux bien convenir avec vous que « générer » est courant un informatique, et a le sens précis que vous indiquez dans ce domaine. C'est tout de même un verbe employé à tort et à travers dans d'autres domaines.--Verbex (discuter) 14 février 2019 à 21:32 (CET)[répondre]
@Verbex oui mais là on n'est pas dans un autre domaine. En plus, rien ne génère jamais à partir de rien, une génération (ou un engendrement ou une production) c'est toujours une transformation. Cdlt, Vigneron * discut. 15 février 2019 à 18:48 (CET)[répondre]
D'accord pour l'utilisation dans ce champ informatique. Cordialement,--Verbex (discuter) 15 février 2019 à 22:42 (CET)[répondre]
Wikipedia peut présenter toutes les terminologies utilisées. Et on peut trouver une source pour chaque terme. --Fschwarzentruber (discuter) 14 février 2019 à 13:50 (CET)[répondre]

@PIerre.Lescanne, @Thibaut120094, @Lepticed7, @Verbex et @Fschwarzentruber je tente un résumé :

  • « générer » n'est pas un anglicisme, quelque soit le contexte
  • dans le contexte de l’informatique, c'est le terme majoritaire et consacré

Bref, je ne vois aucune raison de ne pas revenir à la version ante bellum. Cdlt, Vigneron * discut. 16 février 2019 à 15:02 (CET)[répondre]