Antoine Leca a écrit :En news:48966b0a$0$18200$, candide va escriure:Si je dis z est déterminé par y et z, cela veut juste dire qu'il
existe une fonction f telle que z=f(x,y). Maintenant que
f(x,y)=sqrt(x*x+y*y) ou f(x,y)=|x|+|y| ou que sais-je encore,
ce n'est pas pareil.
Du point de vue de la détermination (ou de l'indétermination), si.
Je ne comprends pas ce que tu veux dire.
Ce que je dis c'est que la Norme n'exprime pas COMMENT le signe du
retour est lié au signe de la différence.
Le comment est le problème de l'implémenteur, et en l'occurence il a
un peu de marge de manouvre.
Bien sûr que je ne parle pas de ce sens-là, le lecteur de la norme est
en principe un utilisateur, par un implémenteur.
La norme dit que le signe de la valeur de retour est _déterminé_
par le signe de blablabla.
Je réponds : "déterminé comment ?"
parce que la spécification est incomplète.
En effet, la norme ne me dit pas _en quoi_ (ie "comment") le signe
de l'un _détermine_ le signe de l'autre :
est-ce que c'est le même signe, le signe opposé, le signe
opposé sauf si le programmeur est né un 29 février, etc.
Mais absolument pas, ils ont surtout donné une définition complètement
bancale. A croire qu'ils n'ont pas voulu modifier une version
historique incorrecte
1°) l'emploi de "is determined",
2°) la définition incomplète de la relation d'ordre sur les chaînes
(nulle part il n'est dit comment on les compare alors que la _valeur_
d'une chaîne, elle, est définie)
3°) le fait que des notions soient présentées sans être reliées entre
elles (ici, d'une part ce que j'ai appelé le préambule du §7.21.4.2 de
C99 et d'autre part la partie "Returns" du même paragraphe).
Qu'est-ce qui n'est pas défini dans :
- si les premiers éléments de chacune des deux suites sont
différents, on compare leurs valeurs ;
- sinon, on compare le reste des deux suites.
(et il s'agit ici d'une reformulation inférieure au texte de la
norme).
Oui, j'ai bien vu, c'est dans le préambule. Où est-il affirmé que cela
définit l'ordre sur les chaînes dont il est questions plusieurs lignes
plus loin ?
Le préambule, pour sa part, il met en relation ("établit une relation
univoque" pour réutiliser ton terme) le signe d'une valeur de retour
et le signe d'une grandeur mathématique. Rien n'indique que la
positivité de cette grandeur équivaut à définir la relation d'ordre
entre les chaines.
Enfin! la norme dit clairement et explicitement dans un endroit
approprié ce que c'est que la _valeur_ d'une chaîne et elle n'est pas
capable de, même pas de "dire" mais de "suggérer", autrement qu'au
détour d'une phrase ce que voudrait dire qu'une "chaîne est plus
grande qu'une autre". C'est totalement incohérent.
Néanmoins, je trouve la formulation "including the first null
character" assez peu claire.
En français, ça donnerait [...]
Que dire de "je suis fils premier"
Sinon, en fait, je ne trouve pas leur définition parfaitement claire.
Ce qui me gêne, c'est cette histoire de "suite de caractères". On
n'arrive pas à savoir à quel niveau la définition se place. Il est
bien clair qu'une telle définition a un sens ailleurs que dans le
contexte du langage C. Par exemple, cette définition ne me dit pas si
une chaîne est un objet.
Et une chaîne est-elle de type tableau ?
Par ailleurs, tu vois bien les différences entre un littéral en
virgule flottante et un objet de type flottant, non ?
Je sais pas ce que c'est qu'un "littéral en virgule flottante", pour
moi, comme son non l'indique, un litteral contient des lettres,
mais tu veux dire un truc du genre "3.14" ? Bien, oui, je fais bien la
différence mais je vois pas trop le rapport avec notre problème qu'une
chaîne littérale n'est pas une chaîne.
Antoine Leca a écrit :
En news:48966b0a$0$18200$426a74cc@news.free.fr, candide va escriure:
Si je dis z est déterminé par y et z, cela veut juste dire qu'il
existe une fonction f telle que z=f(x,y). Maintenant que
f(x,y)=sqrt(x*x+y*y) ou f(x,y)=|x|+|y| ou que sais-je encore,
ce n'est pas pareil.
Du point de vue de la détermination (ou de l'indétermination), si.
Je ne comprends pas ce que tu veux dire.
Ce que je dis c'est que la Norme n'exprime pas COMMENT le signe du
retour est lié au signe de la différence.
Le comment est le problème de l'implémenteur, et en l'occurence il a
un peu de marge de manouvre.
Bien sûr que je ne parle pas de ce sens-là, le lecteur de la norme est
en principe un utilisateur, par un implémenteur.
La norme dit que le signe de la valeur de retour est _déterminé_
par le signe de blablabla.
Je réponds : "déterminé comment ?"
parce que la spécification est incomplète.
En effet, la norme ne me dit pas _en quoi_ (ie "comment") le signe
de l'un _détermine_ le signe de l'autre :
est-ce que c'est le même signe, le signe opposé, le signe
opposé sauf si le programmeur est né un 29 février, etc.
Mais absolument pas, ils ont surtout donné une définition complètement
bancale. A croire qu'ils n'ont pas voulu modifier une version
historique incorrecte
1°) l'emploi de "is determined",
2°) la définition incomplète de la relation d'ordre sur les chaînes
(nulle part il n'est dit comment on les compare alors que la _valeur_
d'une chaîne, elle, est définie)
3°) le fait que des notions soient présentées sans être reliées entre
elles (ici, d'une part ce que j'ai appelé le préambule du §7.21.4.2 de
C99 et d'autre part la partie "Returns" du même paragraphe).
Qu'est-ce qui n'est pas défini dans :
- si les premiers éléments de chacune des deux suites sont
différents, on compare leurs valeurs ;
- sinon, on compare le reste des deux suites.
(et il s'agit ici d'une reformulation inférieure au texte de la
norme).
Oui, j'ai bien vu, c'est dans le préambule. Où est-il affirmé que cela
définit l'ordre sur les chaînes dont il est questions plusieurs lignes
plus loin ?
Le préambule, pour sa part, il met en relation ("établit une relation
univoque" pour réutiliser ton terme) le signe d'une valeur de retour
et le signe d'une grandeur mathématique. Rien n'indique que la
positivité de cette grandeur équivaut à définir la relation d'ordre
entre les chaines.
Enfin! la norme dit clairement et explicitement dans un endroit
approprié ce que c'est que la _valeur_ d'une chaîne et elle n'est pas
capable de, même pas de "dire" mais de "suggérer", autrement qu'au
détour d'une phrase ce que voudrait dire qu'une "chaîne est plus
grande qu'une autre". C'est totalement incohérent.
Néanmoins, je trouve la formulation "including the first null
character" assez peu claire.
En français, ça donnerait [...]
Que dire de "je suis fils premier"
Sinon, en fait, je ne trouve pas leur définition parfaitement claire.
Ce qui me gêne, c'est cette histoire de "suite de caractères". On
n'arrive pas à savoir à quel niveau la définition se place. Il est
bien clair qu'une telle définition a un sens ailleurs que dans le
contexte du langage C. Par exemple, cette définition ne me dit pas si
une chaîne est un objet.
Et une chaîne est-elle de type tableau ?
Par ailleurs, tu vois bien les différences entre un littéral en
virgule flottante et un objet de type flottant, non ?
Je sais pas ce que c'est qu'un "littéral en virgule flottante", pour
moi, comme son non l'indique, un litteral contient des lettres,
mais tu veux dire un truc du genre "3.14" ? Bien, oui, je fais bien la
différence mais je vois pas trop le rapport avec notre problème qu'une
chaîne littérale n'est pas une chaîne.
Antoine Leca a écrit :En news:48966b0a$0$18200$, candide va escriure:Si je dis z est déterminé par y et z, cela veut juste dire qu'il
existe une fonction f telle que z=f(x,y). Maintenant que
f(x,y)=sqrt(x*x+y*y) ou f(x,y)=|x|+|y| ou que sais-je encore,
ce n'est pas pareil.
Du point de vue de la détermination (ou de l'indétermination), si.
Je ne comprends pas ce que tu veux dire.
Ce que je dis c'est que la Norme n'exprime pas COMMENT le signe du
retour est lié au signe de la différence.
Le comment est le problème de l'implémenteur, et en l'occurence il a
un peu de marge de manouvre.
Bien sûr que je ne parle pas de ce sens-là, le lecteur de la norme est
en principe un utilisateur, par un implémenteur.
La norme dit que le signe de la valeur de retour est _déterminé_
par le signe de blablabla.
Je réponds : "déterminé comment ?"
parce que la spécification est incomplète.
En effet, la norme ne me dit pas _en quoi_ (ie "comment") le signe
de l'un _détermine_ le signe de l'autre :
est-ce que c'est le même signe, le signe opposé, le signe
opposé sauf si le programmeur est né un 29 février, etc.
Mais absolument pas, ils ont surtout donné une définition complètement
bancale. A croire qu'ils n'ont pas voulu modifier une version
historique incorrecte
1°) l'emploi de "is determined",
2°) la définition incomplète de la relation d'ordre sur les chaînes
(nulle part il n'est dit comment on les compare alors que la _valeur_
d'une chaîne, elle, est définie)
3°) le fait que des notions soient présentées sans être reliées entre
elles (ici, d'une part ce que j'ai appelé le préambule du §7.21.4.2 de
C99 et d'autre part la partie "Returns" du même paragraphe).
Qu'est-ce qui n'est pas défini dans :
- si les premiers éléments de chacune des deux suites sont
différents, on compare leurs valeurs ;
- sinon, on compare le reste des deux suites.
(et il s'agit ici d'une reformulation inférieure au texte de la
norme).
Oui, j'ai bien vu, c'est dans le préambule. Où est-il affirmé que cela
définit l'ordre sur les chaînes dont il est questions plusieurs lignes
plus loin ?
Le préambule, pour sa part, il met en relation ("établit une relation
univoque" pour réutiliser ton terme) le signe d'une valeur de retour
et le signe d'une grandeur mathématique. Rien n'indique que la
positivité de cette grandeur équivaut à définir la relation d'ordre
entre les chaines.
Enfin! la norme dit clairement et explicitement dans un endroit
approprié ce que c'est que la _valeur_ d'une chaîne et elle n'est pas
capable de, même pas de "dire" mais de "suggérer", autrement qu'au
détour d'une phrase ce que voudrait dire qu'une "chaîne est plus
grande qu'une autre". C'est totalement incohérent.
Néanmoins, je trouve la formulation "including the first null
character" assez peu claire.
En français, ça donnerait [...]
Que dire de "je suis fils premier"
Sinon, en fait, je ne trouve pas leur définition parfaitement claire.
Ce qui me gêne, c'est cette histoire de "suite de caractères". On
n'arrive pas à savoir à quel niveau la définition se place. Il est
bien clair qu'une telle définition a un sens ailleurs que dans le
contexte du langage C. Par exemple, cette définition ne me dit pas si
une chaîne est un objet.
Et une chaîne est-elle de type tableau ?
Par ailleurs, tu vois bien les différences entre un littéral en
virgule flottante et un objet de type flottant, non ?
Je sais pas ce que c'est qu'un "littéral en virgule flottante", pour
moi, comme son non l'indique, un litteral contient des lettres,
mais tu veux dire un truc du genre "3.14" ? Bien, oui, je fais bien la
différence mais je vois pas trop le rapport avec notre problème qu'une
chaîne littérale n'est pas une chaîne.
Habituellement, ce sont les dictionnaires qui se plient aux usages de
la langue
et qui introduisent de nouvelles definitions pour des mots
existants ou de nouveaux mots...
Charlie Gordon a écrit :Dans les faits, strcmp est majoritairement utilisée pour déterminer
si 2 chaines ont le même contenu, avec l'un des deux idiomes
``!strcmp(a,b)'' ou ``strcmp(a,b) == 0''.
Alors ça, ce n'est pas vrai du tout.
Habituellement, ce sont les dictionnaires qui se plient aux usages de
la langue
et qui introduisent de nouvelles definitions pour des mots
existants ou de nouveaux mots...
Charlie Gordon a écrit :
Dans les faits, strcmp est majoritairement utilisée pour déterminer
si 2 chaines ont le même contenu, avec l'un des deux idiomes
``!strcmp(a,b)'' ou ``strcmp(a,b) == 0''.
Alors ça, ce n'est pas vrai du tout.
Habituellement, ce sont les dictionnaires qui se plient aux usages de
la langue
et qui introduisent de nouvelles definitions pour des mots
existants ou de nouveaux mots...
Charlie Gordon a écrit :Dans les faits, strcmp est majoritairement utilisée pour déterminer
si 2 chaines ont le même contenu, avec l'un des deux idiomes
``!strcmp(a,b)'' ou ``strcmp(a,b) == 0''.
Alors ça, ce n'est pas vrai du tout.
En news:489a101f$0$906$, Wykaaa va escriure:Habituellement, ce sont les dictionnaires qui se plient aux usages de
la langue
Oui.et qui introduisent de nouvelles definitions pour des mots
existants ou de nouveaux mots...
Non. Le rôle des dictionnaires n'est pas et n'a jamais été d'inventer des
mots (néologismes) : ceci est le propos des travaux publiés (au sens très
large, incluant par exemple les chansons) par les utilisateurs de la langue
; à partir du moment où un néologisme devient accepté, il est repris par les
dictionnaires et donc consacré.
Charlie Gordon a écrit :Dans les faits, strcmp est majoritairement utilisée pour déterminer
si 2 chaines ont le même contenu, avec l'un des deux idiomes
``!strcmp(a,b)'' ou ``strcmp(a,b) == 0''.
Alors ça, ce n'est pas vrai du tout.
Euh si : l'utilisation la plus courante --celle que je vois le plus
souvent-- de strcmp(), c'est un test d'égalité contre 0; et ce n'est pas
avec un exemple qui va à l'encontre de beaucoup d'exemples que tu vas
prouver ton point de vue : il faudrait plutôt montrer un exemple
d'implémentation où la fonction strcmp() aurait été spécialement programmée
pour fournir plus rapidement le signe du résultat /plutôt/ que l'indication
de sa nullité ; et je sais bien qu'avec les processeurs actuels les deux ont
sensiblement le même coût ; mais j'ai la sensation qu'il devrait être plus
facile de rencontrer une implémentation en ligne qui se contenterait du test
de la non égalité du Nième terme, sans s'inquiéter de l'ordre des valeurs,
dans le cas où le résultat de strcmp() est évalué ==0 ou !=0.
Par ailleurs, il est clair qu'une optimisation courante (et payante) de
strcmp() consiste à comparer la valeur des pointeurs à l'entrée, et à
renvoyer de suite 0 dans le cas de coïncidence :
if( p == q )
return 0; /* les deux chaînes sont égales, ne perdons pas de temps
*/
Antoine
En news:489a101f$0$906$ba4acef3@news.orange.fr, Wykaaa va escriure:
Habituellement, ce sont les dictionnaires qui se plient aux usages de
la langue
Oui.
et qui introduisent de nouvelles definitions pour des mots
existants ou de nouveaux mots...
Non. Le rôle des dictionnaires n'est pas et n'a jamais été d'inventer des
mots (néologismes) : ceci est le propos des travaux publiés (au sens très
large, incluant par exemple les chansons) par les utilisateurs de la langue
; à partir du moment où un néologisme devient accepté, il est repris par les
dictionnaires et donc consacré.
Charlie Gordon a écrit :
Dans les faits, strcmp est majoritairement utilisée pour déterminer
si 2 chaines ont le même contenu, avec l'un des deux idiomes
``!strcmp(a,b)'' ou ``strcmp(a,b) == 0''.
Alors ça, ce n'est pas vrai du tout.
Euh si : l'utilisation la plus courante --celle que je vois le plus
souvent-- de strcmp(), c'est un test d'égalité contre 0; et ce n'est pas
avec un exemple qui va à l'encontre de beaucoup d'exemples que tu vas
prouver ton point de vue : il faudrait plutôt montrer un exemple
d'implémentation où la fonction strcmp() aurait été spécialement programmée
pour fournir plus rapidement le signe du résultat /plutôt/ que l'indication
de sa nullité ; et je sais bien qu'avec les processeurs actuels les deux ont
sensiblement le même coût ; mais j'ai la sensation qu'il devrait être plus
facile de rencontrer une implémentation en ligne qui se contenterait du test
de la non égalité du Nième terme, sans s'inquiéter de l'ordre des valeurs,
dans le cas où le résultat de strcmp() est évalué ==0 ou !=0.
Par ailleurs, il est clair qu'une optimisation courante (et payante) de
strcmp() consiste à comparer la valeur des pointeurs à l'entrée, et à
renvoyer de suite 0 dans le cas de coïncidence :
if( p == q )
return 0; /* les deux chaînes sont égales, ne perdons pas de temps
*/
Antoine
En news:489a101f$0$906$, Wykaaa va escriure:Habituellement, ce sont les dictionnaires qui se plient aux usages de
la langue
Oui.et qui introduisent de nouvelles definitions pour des mots
existants ou de nouveaux mots...
Non. Le rôle des dictionnaires n'est pas et n'a jamais été d'inventer des
mots (néologismes) : ceci est le propos des travaux publiés (au sens très
large, incluant par exemple les chansons) par les utilisateurs de la langue
; à partir du moment où un néologisme devient accepté, il est repris par les
dictionnaires et donc consacré.
Charlie Gordon a écrit :Dans les faits, strcmp est majoritairement utilisée pour déterminer
si 2 chaines ont le même contenu, avec l'un des deux idiomes
``!strcmp(a,b)'' ou ``strcmp(a,b) == 0''.
Alors ça, ce n'est pas vrai du tout.
Euh si : l'utilisation la plus courante --celle que je vois le plus
souvent-- de strcmp(), c'est un test d'égalité contre 0; et ce n'est pas
avec un exemple qui va à l'encontre de beaucoup d'exemples que tu vas
prouver ton point de vue : il faudrait plutôt montrer un exemple
d'implémentation où la fonction strcmp() aurait été spécialement programmée
pour fournir plus rapidement le signe du résultat /plutôt/ que l'indication
de sa nullité ; et je sais bien qu'avec les processeurs actuels les deux ont
sensiblement le même coût ; mais j'ai la sensation qu'il devrait être plus
facile de rencontrer une implémentation en ligne qui se contenterait du test
de la non égalité du Nième terme, sans s'inquiéter de l'ordre des valeurs,
dans le cas où le résultat de strcmp() est évalué ==0 ou !=0.
Par ailleurs, il est clair qu'une optimisation courante (et payante) de
strcmp() consiste à comparer la valeur des pointeurs à l'entrée, et à
renvoyer de suite 0 dans le cas de coïncidence :
if( p == q )
return 0; /* les deux chaînes sont égales, ne perdons pas de temps
*/
Antoine
En news:4899f553$0$952$, Wykaaa va escriure:Antoine Leca a écrit :En news:48956e6b$0$945$, Wykaaa va escriure:Par rapport à l'ordre lexicographique (codage des caractères).
Mmmm, ce n'est pas la même chose...
LEXICOGRAPHIQUE adj. XIXe siècle. [...]
Sauf à faire volontairement le naïf ou être réellement ignorant, tout
informaticien sait ce qu'est l'ordre lexicographique
Je n'avais pas l'intention d'être particulièrement naïf sur ce coup ; donc
j'en conclus que tu m'exclus de la catégorie des informaticiens.
Ce qui est probablement adéquat, puisque contrairement à vous le plus clair
de mon travail n'est pas de concevoir des programmes, mais plutôt de faire
marcher ceux qui existent (certains appellent cela de l'exploitation) ; et
effectivement je ne fréquente pas les spécialistes des langages (dont j'ai
découvert l'existence en travaillant sur la norme C99).
Pour moi, l'ordre de tri tel qu'utilisé en informatique est une chose, et
c'est effectivement normalement l'ordre du codage, la notion de jeu de
caractères etc. Tout cela désigne une seule et même chose pour moi, et
depuis des années je sais que cela implique que les majuscules vont d'un
côté, et les minuscules de l'autre.
Depuis un peu moins d'années (mais plusieurs quand même ;-) ), je sais aussi
que l'on peut faire des tris plus perfectionnés, avec des traitements
incorporés, par exemple pour faire que la distinction de la casse soit
abolie, voire (c'est plus récent) amenuïe --il s'agit alors de tris à
plusieurs passes.
Évidemment, la mise en ouvre de ces nouveaux ordres a un coût, ce qui fait
que pour moi, je réserve le nom de tri informatique à celui qui précède (le
plus rapide et le plus simple à programmer), et j'ai entendu divers noms
pour qualifier ces tris plus élaborés.
Depuis quelques années, j'ai appris que « l'ordre du dictionnaire », qui
n'était que l'un de ces qualificatifs sus-mentionnés, possédait d'une part
un nom, « lexicographique » (dont la liaison avec l'éthymologie me paraît
limpide), et aussi des définitions plus ou moins normalisées ; en ce qui
concerne le français on a ainsi des règles plus ou moins abscons sur l'ordre
des accents (cf. l'algorithme officiel de Unicode) ; en espagnol, il y a des
discussions sans fin sur le fait que CH et LL soient (vision européenne), ou
pas (vision américaine), des lettres séparées de l'alphabet. Etc.
J'en étais donc arrivé à considérer que d'un côté l'ordre lexicographique
désignait des règles de tri particulières et souvent complexes, associées à
des notions à géométrie variable comme celle de locale, et impliquait des
temps de traitement important ; l'archétype de ce phénomène est pour moi la
fonction strcoll().
Et que d'un ordre côté on avait toujours l'ordre lié au codage des
caractères, très souvent utilisé par les informaticiens même s'il n'est pas
toujours adéquat pour la présentation, et symbolisé par la fonction strcmp()
dont il est question dans cette discussion.
Il me semblait donc que ta remarque induisait une confusion qu'il eût été
bon de dissiper.
Cependant, à lire ta réaction et celle de plusieurs autres, il semblerait
que je me trompai, et que pour les informaticiens (qui à par moi doivent
constituer l'essentiel du public de ce forum) la notion de «
lexicographique » a un sens particulier, différent de celui généralement /
antérieurement accepté (et repris par le dictionnaire de l'Académie).
et ne confie pas sont interprétation à un dictionnaire littéraire
Le dictionnaire de l'Académis N'a PAS vocation à être un dictionnaire
littéraire ; si l'est, c'est que les Sages se sont fourvoyés. Pour moi, il a
l'avantage d'être doté d'un certain prestige, d'être indépendant des
querelles mercantiles liées aux éditeurs (L. contre R., etc.), et surtout
d'être lié à un signet sur mon navigateur. Je ne pense pas que les autres
dictionnaires « généraux » (c'est-à-dire ceux qui ne sont pas des
dictionnaires techniques d'informatique) aient des définitions sensiblement
différentes pour « lexicographique », mais il est vrai que je n'ai pas été
vérifié.
Antoine
En news:4899f553$0$952$ba4acef3@news.orange.fr, Wykaaa va escriure:
Antoine Leca a écrit :
En news:48956e6b$0$945$ba4acef3@news.orange.fr, Wykaaa va escriure:
Par rapport à l'ordre lexicographique (codage des caractères).
Mmmm, ce n'est pas la même chose...
LEXICOGRAPHIQUE adj. XIXe siècle. [...]
Sauf à faire volontairement le naïf ou être réellement ignorant, tout
informaticien sait ce qu'est l'ordre lexicographique
Je n'avais pas l'intention d'être particulièrement naïf sur ce coup ; donc
j'en conclus que tu m'exclus de la catégorie des informaticiens.
Ce qui est probablement adéquat, puisque contrairement à vous le plus clair
de mon travail n'est pas de concevoir des programmes, mais plutôt de faire
marcher ceux qui existent (certains appellent cela de l'exploitation) ; et
effectivement je ne fréquente pas les spécialistes des langages (dont j'ai
découvert l'existence en travaillant sur la norme C99).
Pour moi, l'ordre de tri tel qu'utilisé en informatique est une chose, et
c'est effectivement normalement l'ordre du codage, la notion de jeu de
caractères etc. Tout cela désigne une seule et même chose pour moi, et
depuis des années je sais que cela implique que les majuscules vont d'un
côté, et les minuscules de l'autre.
Depuis un peu moins d'années (mais plusieurs quand même ;-) ), je sais aussi
que l'on peut faire des tris plus perfectionnés, avec des traitements
incorporés, par exemple pour faire que la distinction de la casse soit
abolie, voire (c'est plus récent) amenuïe --il s'agit alors de tris à
plusieurs passes.
Évidemment, la mise en ouvre de ces nouveaux ordres a un coût, ce qui fait
que pour moi, je réserve le nom de tri informatique à celui qui précède (le
plus rapide et le plus simple à programmer), et j'ai entendu divers noms
pour qualifier ces tris plus élaborés.
Depuis quelques années, j'ai appris que « l'ordre du dictionnaire », qui
n'était que l'un de ces qualificatifs sus-mentionnés, possédait d'une part
un nom, « lexicographique » (dont la liaison avec l'éthymologie me paraît
limpide), et aussi des définitions plus ou moins normalisées ; en ce qui
concerne le français on a ainsi des règles plus ou moins abscons sur l'ordre
des accents (cf. l'algorithme officiel de Unicode) ; en espagnol, il y a des
discussions sans fin sur le fait que CH et LL soient (vision européenne), ou
pas (vision américaine), des lettres séparées de l'alphabet. Etc.
J'en étais donc arrivé à considérer que d'un côté l'ordre lexicographique
désignait des règles de tri particulières et souvent complexes, associées à
des notions à géométrie variable comme celle de locale, et impliquait des
temps de traitement important ; l'archétype de ce phénomène est pour moi la
fonction strcoll().
Et que d'un ordre côté on avait toujours l'ordre lié au codage des
caractères, très souvent utilisé par les informaticiens même s'il n'est pas
toujours adéquat pour la présentation, et symbolisé par la fonction strcmp()
dont il est question dans cette discussion.
Il me semblait donc que ta remarque induisait une confusion qu'il eût été
bon de dissiper.
Cependant, à lire ta réaction et celle de plusieurs autres, il semblerait
que je me trompai, et que pour les informaticiens (qui à par moi doivent
constituer l'essentiel du public de ce forum) la notion de «
lexicographique » a un sens particulier, différent de celui généralement /
antérieurement accepté (et repris par le dictionnaire de l'Académie).
et ne confie pas sont interprétation à un dictionnaire littéraire
Le dictionnaire de l'Académis N'a PAS vocation à être un dictionnaire
littéraire ; si l'est, c'est que les Sages se sont fourvoyés. Pour moi, il a
l'avantage d'être doté d'un certain prestige, d'être indépendant des
querelles mercantiles liées aux éditeurs (L. contre R., etc.), et surtout
d'être lié à un signet sur mon navigateur. Je ne pense pas que les autres
dictionnaires « généraux » (c'est-à-dire ceux qui ne sont pas des
dictionnaires techniques d'informatique) aient des définitions sensiblement
différentes pour « lexicographique », mais il est vrai que je n'ai pas été
vérifié.
Antoine
En news:4899f553$0$952$, Wykaaa va escriure:Antoine Leca a écrit :En news:48956e6b$0$945$, Wykaaa va escriure:Par rapport à l'ordre lexicographique (codage des caractères).
Mmmm, ce n'est pas la même chose...
LEXICOGRAPHIQUE adj. XIXe siècle. [...]
Sauf à faire volontairement le naïf ou être réellement ignorant, tout
informaticien sait ce qu'est l'ordre lexicographique
Je n'avais pas l'intention d'être particulièrement naïf sur ce coup ; donc
j'en conclus que tu m'exclus de la catégorie des informaticiens.
Ce qui est probablement adéquat, puisque contrairement à vous le plus clair
de mon travail n'est pas de concevoir des programmes, mais plutôt de faire
marcher ceux qui existent (certains appellent cela de l'exploitation) ; et
effectivement je ne fréquente pas les spécialistes des langages (dont j'ai
découvert l'existence en travaillant sur la norme C99).
Pour moi, l'ordre de tri tel qu'utilisé en informatique est une chose, et
c'est effectivement normalement l'ordre du codage, la notion de jeu de
caractères etc. Tout cela désigne une seule et même chose pour moi, et
depuis des années je sais que cela implique que les majuscules vont d'un
côté, et les minuscules de l'autre.
Depuis un peu moins d'années (mais plusieurs quand même ;-) ), je sais aussi
que l'on peut faire des tris plus perfectionnés, avec des traitements
incorporés, par exemple pour faire que la distinction de la casse soit
abolie, voire (c'est plus récent) amenuïe --il s'agit alors de tris à
plusieurs passes.
Évidemment, la mise en ouvre de ces nouveaux ordres a un coût, ce qui fait
que pour moi, je réserve le nom de tri informatique à celui qui précède (le
plus rapide et le plus simple à programmer), et j'ai entendu divers noms
pour qualifier ces tris plus élaborés.
Depuis quelques années, j'ai appris que « l'ordre du dictionnaire », qui
n'était que l'un de ces qualificatifs sus-mentionnés, possédait d'une part
un nom, « lexicographique » (dont la liaison avec l'éthymologie me paraît
limpide), et aussi des définitions plus ou moins normalisées ; en ce qui
concerne le français on a ainsi des règles plus ou moins abscons sur l'ordre
des accents (cf. l'algorithme officiel de Unicode) ; en espagnol, il y a des
discussions sans fin sur le fait que CH et LL soient (vision européenne), ou
pas (vision américaine), des lettres séparées de l'alphabet. Etc.
J'en étais donc arrivé à considérer que d'un côté l'ordre lexicographique
désignait des règles de tri particulières et souvent complexes, associées à
des notions à géométrie variable comme celle de locale, et impliquait des
temps de traitement important ; l'archétype de ce phénomène est pour moi la
fonction strcoll().
Et que d'un ordre côté on avait toujours l'ordre lié au codage des
caractères, très souvent utilisé par les informaticiens même s'il n'est pas
toujours adéquat pour la présentation, et symbolisé par la fonction strcmp()
dont il est question dans cette discussion.
Il me semblait donc que ta remarque induisait une confusion qu'il eût été
bon de dissiper.
Cependant, à lire ta réaction et celle de plusieurs autres, il semblerait
que je me trompai, et que pour les informaticiens (qui à par moi doivent
constituer l'essentiel du public de ce forum) la notion de «
lexicographique » a un sens particulier, différent de celui généralement /
antérieurement accepté (et repris par le dictionnaire de l'Académie).
et ne confie pas sont interprétation à un dictionnaire littéraire
Le dictionnaire de l'Académis N'a PAS vocation à être un dictionnaire
littéraire ; si l'est, c'est que les Sages se sont fourvoyés. Pour moi, il a
l'avantage d'être doté d'un certain prestige, d'être indépendant des
querelles mercantiles liées aux éditeurs (L. contre R., etc.), et surtout
d'être lié à un signet sur mon navigateur. Je ne pense pas que les autres
dictionnaires « généraux » (c'est-à-dire ceux qui ne sont pas des
dictionnaires techniques d'informatique) aient des définitions sensiblement
différentes pour « lexicographique », mais il est vrai que je n'ai pas été
vérifié.
Antoine
Wykaaa a écrit :Sauf à faire volontairement le naïf ou être réellement ignorant, tout
informaticien sait ce qu'est l'ordre lexicographique et ne confie pas
sont interprétation à un dictionnaire littéraire :-((
Ben non, moi je ne sais pas. C'est certainement parce que je n'ai
jamais eu de cours de théorie du langage ?
explications de Charlie, j'utilises l'anglicisme collation (miam) ou
interclassement en lieu et place de « ordre lexicographique ».
Wykaaa a écrit :
Sauf à faire volontairement le naïf ou être réellement ignorant, tout
informaticien sait ce qu'est l'ordre lexicographique et ne confie pas
sont interprétation à un dictionnaire littéraire :-((
Ben non, moi je ne sais pas. C'est certainement parce que je n'ai
jamais eu de cours de théorie du langage ?
explications de Charlie, j'utilises l'anglicisme collation (miam) ou
interclassement en lieu et place de « ordre lexicographique ».
Wykaaa a écrit :Sauf à faire volontairement le naïf ou être réellement ignorant, tout
informaticien sait ce qu'est l'ordre lexicographique et ne confie pas
sont interprétation à un dictionnaire littéraire :-((
Ben non, moi je ne sais pas. C'est certainement parce que je n'ai
jamais eu de cours de théorie du langage ?
explications de Charlie, j'utilises l'anglicisme collation (miam) ou
interclassement en lieu et place de « ordre lexicographique ».
Ces termes sont inadéquats
Afin d'enfoncer le clou, en langage Cobol, il y a une directive qui
permet d'indiquer l'encodage des caractères pour le tri interne Cobol.
Cet ordre est :
collating sequence is
Derrière "is", on peut indiquer ASCII, EBCDIC, etc...
Ces termes sont inadéquats
Afin d'enfoncer le clou, en langage Cobol, il y a une directive qui
permet d'indiquer l'encodage des caractères pour le tri interne Cobol.
Cet ordre est :
collating sequence is
Derrière "is", on peut indiquer ASCII, EBCDIC, etc...
Ces termes sont inadéquats
Afin d'enfoncer le clou, en langage Cobol, il y a une directive qui
permet d'indiquer l'encodage des caractères pour le tri interne Cobol.
Cet ordre est :
collating sequence is
Derrière "is", on peut indiquer ASCII, EBCDIC, etc...
Nous sommes en désaccord ici : pour moi on a une spécification complète de
la relation d'ordre, en gros il n'est pas possible d'avoir d'ambiguité (et
je pense que la fameuse remarque dans 7.1.1 sur la valeur a été ajoutée dans
C99 justement dans l'optique d'améliorer cette spécification).
En fait, si tu trouves une ambiguité dans la formulation, il te faut remplir
un rapport d'anomalie contre C99.
Nous sommes en désaccord ici : pour moi on a une spécification complète de
la relation d'ordre, en gros il n'est pas possible d'avoir d'ambiguité (et
je pense que la fameuse remarque dans 7.1.1 sur la valeur a été ajoutée dans
C99 justement dans l'optique d'améliorer cette spécification).
En fait, si tu trouves une ambiguité dans la formulation, il te faut remplir
un rapport d'anomalie contre C99.
Nous sommes en désaccord ici : pour moi on a une spécification complète de
la relation d'ordre, en gros il n'est pas possible d'avoir d'ambiguité (et
je pense que la fameuse remarque dans 7.1.1 sur la valeur a été ajoutée dans
C99 justement dans l'optique d'améliorer cette spécification).
En fait, si tu trouves une ambiguité dans la formulation, il te faut remplir
un rapport d'anomalie contre C99.
Ainsi, je trouve quand même curieux qu'on ramène une comparaison
d'entiers à un calcul de différence d'entiers (*). Pour savoir si -44
(comment fait un processeur par exemple pour comparer deux entiers ?
Ainsi, je trouve quand même curieux qu'on ramène une comparaison
d'entiers à un calcul de différence d'entiers (*). Pour savoir si -44
(comment fait un processeur par exemple pour comparer deux entiers ?
Ainsi, je trouve quand même curieux qu'on ramène une comparaison
d'entiers à un calcul de différence d'entiers (*). Pour savoir si -44
(comment fait un processeur par exemple pour comparer deux entiers ?
Ça a peut-être ses avantages mais je suis un peu perplexe
(comment fait un processeur par exemple pour comparer deux entiers ? il
calcule la différence ? je dirais que non, il fait comme un gamin au CE2).
Ça a peut-être ses avantages mais je suis un peu perplexe
(comment fait un processeur par exemple pour comparer deux entiers ? il
calcule la différence ? je dirais que non, il fait comme un gamin au CE2).
Ça a peut-être ses avantages mais je suis un peu perplexe
(comment fait un processeur par exemple pour comparer deux entiers ? il
calcule la différence ? je dirais que non, il fait comme un gamin au CE2).
Non, la notion d'ordre lexicographique est d'abord une notion
mathématique. Les mathématiciens parlent d'ordre lexicographique sur
R x R, par exemple.
Consulter : http://www.dicosmo.org/CourseNotes/IF242/Preliminaires.pdf
(page 4)
et http://www.ltam.lu/Tutoriel_Ansi_C/prg-c78.htm
Ces termes sont inadéquats
Tu vois, ça ne date pas d'hier l'ordre lexicographique et c'est, encore
une fois, le terme consacré et le seul utilisable (interclassement ne
veut strictement rien dire car il y a une infinité de manières
d'interclasser alors qu'il n'existe qu'une seule définition de l'ordre
lexicographique).
Quant à "collation", j'aime mieux ne rien dire ....
Non, la notion d'ordre lexicographique est d'abord une notion
mathématique. Les mathématiciens parlent d'ordre lexicographique sur
R x R, par exemple.
Consulter : http://www.dicosmo.org/CourseNotes/IF242/Preliminaires.pdf
(page 4)
et http://www.ltam.lu/Tutoriel_Ansi_C/prg-c78.htm
Ces termes sont inadéquats
Tu vois, ça ne date pas d'hier l'ordre lexicographique et c'est, encore
une fois, le terme consacré et le seul utilisable (interclassement ne
veut strictement rien dire car il y a une infinité de manières
d'interclasser alors qu'il n'existe qu'une seule définition de l'ordre
lexicographique).
Quant à "collation", j'aime mieux ne rien dire ....
Non, la notion d'ordre lexicographique est d'abord une notion
mathématique. Les mathématiciens parlent d'ordre lexicographique sur
R x R, par exemple.
Consulter : http://www.dicosmo.org/CourseNotes/IF242/Preliminaires.pdf
(page 4)
et http://www.ltam.lu/Tutoriel_Ansi_C/prg-c78.htm
Ces termes sont inadéquats
Tu vois, ça ne date pas d'hier l'ordre lexicographique et c'est, encore
une fois, le terme consacré et le seul utilisable (interclassement ne
veut strictement rien dire car il y a une infinité de manières
d'interclasser alors qu'il n'existe qu'une seule définition de l'ordre
lexicographique).
Quant à "collation", j'aime mieux ne rien dire ....