Bonjour, et avant tout, très bonne année à tous!
Mon premier message 2006 est limite HS, mais je ne sais pas où trouver
mieux. Je souhaite établir un lexique franco-anglais des termes relatifs
à la programmation C++. J'ai ouïe dire qu'un travail similaire avait été
initié ici je crois dans une tentative de traduction de la norme C++. Un
tel travail m'intéresserai beaucoup.
Jusque là je me suis essentiellement inspiré du lexique présent à la fin
du TC++PL 3° edition, mais je suis un peu surpris des termes retenus.
Les synonymes proposés me paraissent souvent meilleurs. Bref, voici ce
que j'ai pondu:
lexique du TC++PL (entre crochets, les traductions non retenues):
array tableau de type C [tableau intégré]
binder éditeur de liaison
built-in type type de base [type intégré / type fondamental]
callback fonction de rappel
catch intercepter [capturer / attraper]
containment contenance / aggrégation
design pattern modèle de conception [schéma] (pas patron qui est pour
template)
function object
functor objet fonction [fonction objet / objet fonctionnel]
forward iterator itérateur unidirectionnel
[itérateur en avant]
framework structure (d'application) / squelette [charpente / cadre de
travail]
free store tas
garbage collector ramasse-miettes [récupérateur automatique de mémoire /
glaneur de cellules]
handle descripteur [poignée]
handler gestionnaire (d'exception)
heap tas
include guard inclusion sécurisée [garde d'inclusion (multiple)]
inline en ligne
lazy evaluation évaluation paresseuse
linkage convention convention de liaison
locale paramètres régionaux [locaux]
namespace espace de nom [espace référentiel / espace de nommage /
référentiel lexical]
negater négateur [inverseur]
overriding rédéfinition ((fonction de) substitution / surdéfinition]
policy règles / politique
re-throw relancer [redéclenchement]
RTTI détermination de types à l'exécution [identification dynamique
des types / à l'exécution]
template modèle / (classe/fonction) générique [patron]
throw lever [déclencher / lancer / jeter]
whitespace espace blanc
function object functor objet fonction [fonction objet / objet fonctionnel]
fonction objet est très mauvais car le mot principal est fonction alors que ça désigne un objet...
Est-ce le problème principal ou même le principal problème ? :-)
Ça a beau être un objet, ce n'est pas ça qui est important pour moi : l'essentiel, c'est qu'on peut l'utiliser comme une fonction. C'est donc simplement une sorte de fonction, et « fonction objet » me semble alors parfaitement approprié. Un peu comme « fonction membre » ou « fonction template ». Je ne suis pas complètement opposé à « objet fonction », mais je dirais que ça dépend vraiment du point de vue. Quand on pense aux fonctions de la STL acceptant une paramètre pour un prédicat (par exemple find_if(..., pred)), moi je vois qu'on doit passer une fonction, ordinaire ou objet, et non pas un objet qui pourrait être une simple fonction.
Par ailleurs, j'aime mieux « objet fonctionnel » que « objet fonction » sauf que ça semble dire que c'est simplement un objet qui fonctionne.
L'utilisation d'un néologisme (foncteur) n'est pas non plus une mauvaise idée finalement, mais certains diront que ce n'est pas vraiment ce qu'on a en C++.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
function object
functor objet fonction [fonction
objet / objet fonctionnel]
fonction objet est très mauvais car le mot principal est
fonction alors que ça désigne un objet...
Est-ce le problème principal ou même le principal problème ? :-)
Ça a beau être un objet, ce n'est pas ça qui est important pour
moi : l'essentiel, c'est qu'on peut l'utiliser comme une fonction.
C'est donc simplement une sorte de fonction, et « fonction objet »
me semble alors parfaitement approprié. Un peu comme « fonction
membre » ou « fonction template ». Je ne suis pas complètement
opposé à « objet fonction », mais je dirais que ça dépend vraiment
du point de vue. Quand on pense aux fonctions de la STL acceptant
une paramètre pour un prédicat (par exemple find_if(..., pred)),
moi je vois qu'on doit passer une fonction, ordinaire ou objet,
et non pas un objet qui pourrait être une simple fonction.
Par ailleurs, j'aime mieux « objet fonctionnel » que « objet
fonction » sauf que ça semble dire que c'est simplement un objet
qui fonctionne.
L'utilisation d'un néologisme (foncteur) n'est pas non plus une
mauvaise idée finalement, mais certains diront que ce n'est pas
vraiment ce qu'on a en C++.
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
function object functor objet fonction [fonction objet / objet fonctionnel]
fonction objet est très mauvais car le mot principal est fonction alors que ça désigne un objet...
Est-ce le problème principal ou même le principal problème ? :-)
Ça a beau être un objet, ce n'est pas ça qui est important pour moi : l'essentiel, c'est qu'on peut l'utiliser comme une fonction. C'est donc simplement une sorte de fonction, et « fonction objet » me semble alors parfaitement approprié. Un peu comme « fonction membre » ou « fonction template ». Je ne suis pas complètement opposé à « objet fonction », mais je dirais que ça dépend vraiment du point de vue. Quand on pense aux fonctions de la STL acceptant une paramètre pour un prédicat (par exemple find_if(..., pred)), moi je vois qu'on doit passer une fonction, ordinaire ou objet, et non pas un objet qui pourrait être une simple fonction.
Par ailleurs, j'aime mieux « objet fonctionnel » que « objet fonction » sauf que ça semble dire que c'est simplement un objet qui fonctionne.
L'utilisation d'un néologisme (foncteur) n'est pas non plus une mauvaise idée finalement, mais certains diront que ce n'est pas vraiment ce qu'on a en C++.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
kanze
Michel Michaud wrote:
Dans le message ,
Aurelien Regat-Barrel wrote:
[...]
keyword(s) mot(s)-clé(s) / mot(s) réservé(s)
Les mot-clés ne sont pas toujours des mots réservés... Keyword est donc simplement mot-clef.
j'avoue confondre les 2 termes... peux-tu me donne un exemple distinguant mot-clé / mot réservé ?
En PL/1, Fortran ou certains dialects de Basic, les mots-clé ne sont pas réservés, et on peut écrire des choses du genre : IF = 42 Ce qui est parfaitement légal en Fortran, et je crois PL/1 aussi. Ici, IF est le nom d'une variable.
Il me semble avoir entendu dire que Microsoft a introduit des cas semblable dans CLI. Histoire de pouvoir introduire de nouveaux mots-clé sans casser le code qui s'en servait déjà comme symbole utilisateur.
Mais en C++ classique, est-ce qu'on pourrait dire qu'il y en a ? Peut-être define (« mot-clef » dans #define...), etc. ?
C'est prèsqu'une règle dans de nouveaux langages que les mots-clé soient réservés. C'est en tout cas le cas de tous les langages dérivés ou de C ou de Pascal.
Dans le C et ses désendants « compatibles » (le C++ ou l'Objective C, par exemple), on a en effet le préprocesseur, qui était au départ (et l'est encore d'une très grande dégrée) un langage à part, avec ces propres règles. Et qui en effet ne connaît pas de mots réservés : non seulement il ne connaît pas les mots-clé de C ou de C++, on peut même définir des macros avec des noms comme define ou ifdef.
Par contre, en C++, un identificateur réservé n'est pas toujours un mot-clef (_A par exemple), mais je ne sais si l'on pourrait dire que ce sont alors des mots réservés.
C'est l'autre côté de la médaille : les mots réservés qui ne sont pas de mots-clé. C'est le cas de « export » dans certains compilateurs, par exemple. Et comme tu as raison de signaler, le langage C++ réserve aussi des noms qui ne sont pas de mots-clé -- la restriction se trouve dans la section sur la bibliothèque, mais il fait en fait partie du langage de base, et vaut même si on n'inclut pas d'en-tête standard.
On a tendance à oublier cette groupe, parce qu'elle est ouverte. Il n'y a pas de liste exhaustive des mots réservés. On pourrait en fait arguer que ce ne sont pas de mots reservés, mais plutôt des séquences de caractères illégales qui ne forment pas de token autorisés. Mais ce n'est pas comme ça que la norme les décrit, ni comme ça qu'ils sont réelement implémentés dans les compilateurs.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Michel Michaud wrote:
Dans le message 1137077052.459810.279000@g49g2000cwa.googlegroups.com,
Aurelien Regat-Barrel wrote:
[...]
keyword(s) mot(s)-clé(s) / mot(s) réservé(s)
Les mot-clés ne sont pas toujours des mots réservés...
Keyword est donc simplement mot-clef.
j'avoue confondre les 2 termes... peux-tu me donne un
exemple distinguant mot-clé / mot réservé ?
En PL/1, Fortran ou certains dialects de Basic, les mots-clé
ne sont pas réservés, et on peut écrire des choses du
genre :
IF = 42
Ce qui est parfaitement légal en Fortran, et je crois PL/1
aussi. Ici, IF est le nom d'une variable.
Il me semble avoir entendu dire que Microsoft a introduit
des cas semblable dans CLI. Histoire de pouvoir introduire
de nouveaux mots-clé sans casser le code qui s'en servait
déjà comme symbole utilisateur.
Mais en C++ classique, est-ce qu'on pourrait dire qu'il y en
a ? Peut-être define (« mot-clef » dans #define...), etc. ?
C'est prèsqu'une règle dans de nouveaux langages que les
mots-clé soient réservés. C'est en tout cas le cas de tous les
langages dérivés ou de C ou de Pascal.
Dans le C et ses désendants « compatibles » (le C++ ou
l'Objective C, par exemple), on a en effet le préprocesseur, qui
était au départ (et l'est encore d'une très grande dégrée) un
langage à part, avec ces propres règles. Et qui en effet ne
connaît pas de mots réservés : non seulement il ne connaît pas
les mots-clé de C ou de C++, on peut même définir des macros
avec des noms comme define ou ifdef.
Par contre, en C++, un identificateur réservé n'est pas
toujours un mot-clef (_A par exemple), mais je ne sais si l'on
pourrait dire que ce sont alors des mots réservés.
C'est l'autre côté de la médaille : les mots réservés qui ne
sont pas de mots-clé. C'est le cas de « export » dans certains
compilateurs, par exemple. Et comme tu as raison de signaler, le
langage C++ réserve aussi des noms qui ne sont pas de
mots-clé -- la restriction se trouve dans la section sur la
bibliothèque, mais il fait en fait partie du langage de base, et
vaut même si on n'inclut pas d'en-tête standard.
On a tendance à oublier cette groupe, parce qu'elle est ouverte.
Il n'y a pas de liste exhaustive des mots réservés. On pourrait
en fait arguer que ce ne sont pas de mots reservés, mais plutôt
des séquences de caractères illégales qui ne forment pas de
token autorisés. Mais ce n'est pas comme ça que la norme les
décrit, ni comme ça qu'ils sont réelement implémentés dans les
compilateurs.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Les mot-clés ne sont pas toujours des mots réservés... Keyword est donc simplement mot-clef.
j'avoue confondre les 2 termes... peux-tu me donne un exemple distinguant mot-clé / mot réservé ?
En PL/1, Fortran ou certains dialects de Basic, les mots-clé ne sont pas réservés, et on peut écrire des choses du genre : IF = 42 Ce qui est parfaitement légal en Fortran, et je crois PL/1 aussi. Ici, IF est le nom d'une variable.
Il me semble avoir entendu dire que Microsoft a introduit des cas semblable dans CLI. Histoire de pouvoir introduire de nouveaux mots-clé sans casser le code qui s'en servait déjà comme symbole utilisateur.
Mais en C++ classique, est-ce qu'on pourrait dire qu'il y en a ? Peut-être define (« mot-clef » dans #define...), etc. ?
C'est prèsqu'une règle dans de nouveaux langages que les mots-clé soient réservés. C'est en tout cas le cas de tous les langages dérivés ou de C ou de Pascal.
Dans le C et ses désendants « compatibles » (le C++ ou l'Objective C, par exemple), on a en effet le préprocesseur, qui était au départ (et l'est encore d'une très grande dégrée) un langage à part, avec ces propres règles. Et qui en effet ne connaît pas de mots réservés : non seulement il ne connaît pas les mots-clé de C ou de C++, on peut même définir des macros avec des noms comme define ou ifdef.
Par contre, en C++, un identificateur réservé n'est pas toujours un mot-clef (_A par exemple), mais je ne sais si l'on pourrait dire que ce sont alors des mots réservés.
C'est l'autre côté de la médaille : les mots réservés qui ne sont pas de mots-clé. C'est le cas de « export » dans certains compilateurs, par exemple. Et comme tu as raison de signaler, le langage C++ réserve aussi des noms qui ne sont pas de mots-clé -- la restriction se trouve dans la section sur la bibliothèque, mais il fait en fait partie du langage de base, et vaut même si on n'inclut pas d'en-tête standard.
On a tendance à oublier cette groupe, parce qu'elle est ouverte. Il n'y a pas de liste exhaustive des mots réservés. On pourrait en fait arguer que ce ne sont pas de mots reservés, mais plutôt des séquences de caractères illégales qui ne forment pas de token autorisés. Mais ce n'est pas comme ça que la norme les décrit, ni comme ça qu'ils sont réelement implémentés dans les compilateurs.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Aurelien Regat-Barrel
binder éditeur de liaison
Qu'est-ce que ça désigne? La seule utilisation dans la norme est pour les classes binder1st et binder2nd, mais éditeur de liaison de correspond pas.
Après recherche, il n'apparaît pas dans le document, donc c'est réglé. En revanche, binding est présent au sens de:
binding (seul) liaison de type early binding liaison précoce late binding (dynamic binding, runtime binding) liaison tardive
ainsi que:
function call binding
qui se traduit en "liaison d'appel de fonction" ?
-- Aurélien Regat-Barrel
binder éditeur de liaison
Qu'est-ce que ça désigne? La seule utilisation dans la
norme est pour les classes binder1st et binder2nd, mais
éditeur de liaison de correspond pas.
Après recherche, il n'apparaît pas dans le document, donc c'est réglé.
En revanche, binding est présent au sens de:
binding (seul) liaison de type
early binding liaison précoce
late binding (dynamic binding, runtime binding) liaison tardive
Qu'est-ce que ça désigne? La seule utilisation dans la norme est pour les classes binder1st et binder2nd, mais éditeur de liaison de correspond pas.
Après recherche, il n'apparaît pas dans le document, donc c'est réglé. En revanche, binding est présent au sens de:
binding (seul) liaison de type early binding liaison précoce late binding (dynamic binding, runtime binding) liaison tardive
ainsi que:
function call binding
qui se traduit en "liaison d'appel de fonction" ?
-- Aurélien Regat-Barrel
Jean-Marc Bourguet
Aurelien Regat-Barrel writes:
ainsi que:
function call binding
qui se traduit en "liaison d'appel de fonction" ?
Ce n'est pas invraissemblable mais il me faudrait le contexte pour etre sur.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Ce n'est pas invraissemblable mais il me faudrait le contexte pour
etre sur.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Ce n'est pas invraissemblable mais il me faudrait le contexte pour etre sur.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Aurelien Regat-Barrel
function call binding
qui se traduit en "liaison d'appel de fonction" ?
Ce n'est pas invraissemblable mais il me faudrait le contexte pour etre sur.
Y'en a pas, c'est un titre. http://cdfinfo.in2p3.fr/Services/Informatique/DOCU/c++doc/TIC/TIC1/Chapter15.html#Heading437
-- Aurélien Regat-Barrel
function call binding
qui se traduit en "liaison d'appel de fonction" ?
Ce n'est pas invraissemblable mais il me faudrait le contexte pour
etre sur.
Y'en a pas, c'est un titre.
http://cdfinfo.in2p3.fr/Services/Informatique/DOCU/c++doc/TIC/TIC1/Chapter15.html#Heading437
Ce n'est pas invraissemblable mais il me faudrait le contexte pour etre sur.
Y'en a pas, c'est un titre. http://cdfinfo.in2p3.fr/Services/Informatique/DOCU/c++doc/TIC/TIC1/Chapter15.html#Heading437
-- Aurélien Regat-Barrel
Jean-Marc Bourguet
Aurelien Regat-Barrel writes:
function call binding
qui se traduit en "liaison d'appel de fonction" ? Ce n'est pas invraissemblable mais il me faudrait le contexte pour
etre sur.
Y'en a pas, c'est un titre. http://cdfinfo.in2p3.fr/Services/Informatique/DOCU/c++doc/TIC/TIC1/Chapter15.html#Heading437
Le texte qui suit me semble etre un contexte...
La traduction ne me derange pas.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
qui se traduit en "liaison d'appel de fonction" ?
Ce n'est pas invraissemblable mais il me faudrait le contexte pour
etre sur.
Y'en a pas, c'est un titre.
http://cdfinfo.in2p3.fr/Services/Informatique/DOCU/c++doc/TIC/TIC1/Chapter15.html#Heading437
Le texte qui suit me semble etre un contexte...
La traduction ne me derange pas.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
qui se traduit en "liaison d'appel de fonction" ? Ce n'est pas invraissemblable mais il me faudrait le contexte pour
etre sur.
Y'en a pas, c'est un titre. http://cdfinfo.in2p3.fr/Services/Informatique/DOCU/c++doc/TIC/TIC1/Chapter15.html#Heading437
Le texte qui suit me semble etre un contexte...
La traduction ne me derange pas.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Je viens juste de voir ce fil, donc avec un peu de retard :
Aurelien Regat-Barrel wrote:
override redéfinir [supplanter]
Moi j'aime bien "surdéfinir". Ça donne bien l'idée d'une définition qui est "au-dessus", mais qui n'empêche pas forcément d'utiliser celle du "dessous".
A+
Christophe
Bonjour à tous !
Je viens juste de voir ce fil, donc avec un peu de retard :
Aurelien Regat-Barrel wrote:
override redéfinir [supplanter]
Moi j'aime bien "surdéfinir". Ça donne bien l'idée d'une définition qui est
"au-dessus", mais qui n'empêche pas forcément d'utiliser celle du "dessous".
Je viens juste de voir ce fil, donc avec un peu de retard :
Aurelien Regat-Barrel wrote:
override redéfinir [supplanter]
Moi j'aime bien "surdéfinir". Ça donne bien l'idée d'une définition qui est "au-dessus", mais qui n'empêche pas forcément d'utiliser celle du "dessous".