On 26 Jul 2005 01:14:38 -0700, :Mais j'avoue que le seul mot qui me convient vraiment, c'est
« sous-programme ». Est-ce du à mon âge ?
Peut-être. J'appartiens à une génération où "sous-programme" signifie
"BASIC" -- je n'ai pas connu d'autre langage qui parle de
sous-programme.
On 26 Jul 2005 01:14:38 -0700, kanze@gabi-soft.fr:
Mais j'avoue que le seul mot qui me convient vraiment, c'est
« sous-programme ». Est-ce du à mon âge ?
Peut-être. J'appartiens à une génération où "sous-programme" signifie
"BASIC" -- je n'ai pas connu d'autre langage qui parle de
sous-programme.
On 26 Jul 2005 01:14:38 -0700, :Mais j'avoue que le seul mot qui me convient vraiment, c'est
« sous-programme ». Est-ce du à mon âge ?
Peut-être. J'appartiens à une génération où "sous-programme" signifie
"BASIC" -- je n'ai pas connu d'autre langage qui parle de
sous-programme.
Fabien LE LEZ wrote:Peut-être. J'appartiens à une génération où "sous-programme" signifie
"BASIC" -- je n'ai pas connu d'autre langage qui parle de
sous-programme.
L'assembleur, peut-être.
Pas ceux que je connais (voir plus bas quand même). En fait, on peut
Je me souviens qu'il fut un temps où l'on parlait aussi de routine et de
subroutine...
Fortran connait les procédures, qu'il sépare en sous-programmes et
Fabien LE LEZ wrote:
Peut-être. J'appartiens à une génération où "sous-programme" signifie
"BASIC" -- je n'ai pas connu d'autre langage qui parle de
sous-programme.
L'assembleur, peut-être.
Pas ceux que je connais (voir plus bas quand même). En fait, on peut
Je me souviens qu'il fut un temps où l'on parlait aussi de routine et de
subroutine...
Fortran connait les procédures, qu'il sépare en sous-programmes et
Fabien LE LEZ wrote:Peut-être. J'appartiens à une génération où "sous-programme" signifie
"BASIC" -- je n'ai pas connu d'autre langage qui parle de
sous-programme.
L'assembleur, peut-être.
Pas ceux que je connais (voir plus bas quand même). En fait, on peut
Je me souviens qu'il fut un temps où l'on parlait aussi de routine et de
subroutine...
Fortran connait les procédures, qu'il sépare en sous-programmes et
Fabien LE LEZ wrote:Peut-être. J'appartiens à une génération où
"sous-programme" signifie "BASIC" -- je n'ai pas connu
d'autre langage qui parle de sous-programme.
L'assembleur, peut-être.
Pas ceux que je connais (voir plus bas quand même).
En fait, on peut parler de procédure à cause de la directive
PROC d'un macro assembleur.
L'assembleur peut répondre à toutes les conventions d'appel.
C'est quand même le vocabulaire du C qui domine.
Fabien LE LEZ wrote:
Peut-être. J'appartiens à une génération où
"sous-programme" signifie "BASIC" -- je n'ai pas connu
d'autre langage qui parle de sous-programme.
L'assembleur, peut-être.
Pas ceux que je connais (voir plus bas quand même).
En fait, on peut parler de procédure à cause de la directive
PROC d'un macro assembleur.
L'assembleur peut répondre à toutes les conventions d'appel.
C'est quand même le vocabulaire du C qui domine.
Fabien LE LEZ wrote:Peut-être. J'appartiens à une génération où
"sous-programme" signifie "BASIC" -- je n'ai pas connu
d'autre langage qui parle de sous-programme.
L'assembleur, peut-être.
Pas ceux que je connais (voir plus bas quand même).
En fait, on peut parler de procédure à cause de la directive
PROC d'un macro assembleur.
L'assembleur peut répondre à toutes les conventions d'appel.
C'est quand même le vocabulaire du C qui domine.
wrote:Laurent Deniau wrote:
[...]En principe, quand il n'y a pas d'abus de langage on a:
fonction = resolution statique = appel direct
methode = resolution tardive = appel indirect (pointeur de fonction)
message = resolution dynamique = appel dynamique (dictionnaire +
pointeur de fonction)
Selon qui ? Je ne savais pas que c'était toi qui définissait
ce qui est abus de langage, et ce qui ne l'est pas. Le
problème
Ce n'est pas moi qui definit ces termes, meme si j'essaye ici
de les presenter de maniere "unifiee".
C'est un consensus observe dans la terminologie de plusieurs
langages, C++ inclu.
réel, c'est justement qu'il n'y a pas de consensus. : avant
l'apparition de Java, pour moi, une « méthode », c'était
quelque chose invoquée par « l'envoi d'un message », tandis
qu'une fonction, c'était quelque chose invoquée par un «
appel de fonction ». Mais c'est une définition un peu
circulaire. Enfin, en Java, il n'y a que des méthodes, y
compris les méthodes statiques. Certains donc utilisent «
méthode » pour toute fonction membre ; je crois même que
c'est l'utilisation la plus
La difference, c'est qu'en Java, toutes les fonctions
(membres) ont une invocation virtuelle, y compris les static.
Cf JVM Specs.
répandue. D'autres, dont moi-même, adjustent les définitions
selon la communité ciblée -- je n'utilise jamais le mot
méthode à propos de C++, mais je n'utilise que le mot
méthode quand je parle de Java.
Tu es libre de porter des oeilleres.
TC++PL3, 12.2.6 virtual function
[...] A virtual member function is sometimes called a method.
C'est ajuste', non?
Le probleme, c'est que l'emploi de ces termes impliques une
connaissance (limitee) de la resolution d'appel et donc de
l'implementation, ce qui n'est generalement pas le but.
Le problème, surtout, c'est que cet emploi implique une
connaissance de tes définitions, qui ne sont pas celles des
autres.
Le probleme, c'est que plusieurs communautes essayent de
partager leur culture informatique alors que d'autres
orientees marketing cherche a vendre en utilisant les termes
les plus a la mode, par necessairement approprie dans leur
cas. Ajoute a cela le changement de terminologie entre la
definition et l'invocation dans certains langages (SmallTalk
et Objective-C par exemple) et tu as l'etat de l'art de la
confusion regnante.
kanze@gabi-soft.fr wrote:
Laurent Deniau wrote:
[...]
En principe, quand il n'y a pas d'abus de langage on a:
fonction = resolution statique = appel direct
methode = resolution tardive = appel indirect (pointeur de fonction)
message = resolution dynamique = appel dynamique (dictionnaire +
pointeur de fonction)
Selon qui ? Je ne savais pas que c'était toi qui définissait
ce qui est abus de langage, et ce qui ne l'est pas. Le
problème
Ce n'est pas moi qui definit ces termes, meme si j'essaye ici
de les presenter de maniere "unifiee".
C'est un consensus observe dans la terminologie de plusieurs
langages, C++ inclu.
réel, c'est justement qu'il n'y a pas de consensus. : avant
l'apparition de Java, pour moi, une « méthode », c'était
quelque chose invoquée par « l'envoi d'un message », tandis
qu'une fonction, c'était quelque chose invoquée par un «
appel de fonction ». Mais c'est une définition un peu
circulaire. Enfin, en Java, il n'y a que des méthodes, y
compris les méthodes statiques. Certains donc utilisent «
méthode » pour toute fonction membre ; je crois même que
c'est l'utilisation la plus
La difference, c'est qu'en Java, toutes les fonctions
(membres) ont une invocation virtuelle, y compris les static.
Cf JVM Specs.
répandue. D'autres, dont moi-même, adjustent les définitions
selon la communité ciblée -- je n'utilise jamais le mot
méthode à propos de C++, mais je n'utilise que le mot
méthode quand je parle de Java.
Tu es libre de porter des oeilleres.
TC++PL3, 12.2.6 virtual function
[...] A virtual member function is sometimes called a method.
C'est ajuste', non?
Le probleme, c'est que l'emploi de ces termes impliques une
connaissance (limitee) de la resolution d'appel et donc de
l'implementation, ce qui n'est generalement pas le but.
Le problème, surtout, c'est que cet emploi implique une
connaissance de tes définitions, qui ne sont pas celles des
autres.
Le probleme, c'est que plusieurs communautes essayent de
partager leur culture informatique alors que d'autres
orientees marketing cherche a vendre en utilisant les termes
les plus a la mode, par necessairement approprie dans leur
cas. Ajoute a cela le changement de terminologie entre la
definition et l'invocation dans certains langages (SmallTalk
et Objective-C par exemple) et tu as l'etat de l'art de la
confusion regnante.
wrote:Laurent Deniau wrote:
[...]En principe, quand il n'y a pas d'abus de langage on a:
fonction = resolution statique = appel direct
methode = resolution tardive = appel indirect (pointeur de fonction)
message = resolution dynamique = appel dynamique (dictionnaire +
pointeur de fonction)
Selon qui ? Je ne savais pas que c'était toi qui définissait
ce qui est abus de langage, et ce qui ne l'est pas. Le
problème
Ce n'est pas moi qui definit ces termes, meme si j'essaye ici
de les presenter de maniere "unifiee".
C'est un consensus observe dans la terminologie de plusieurs
langages, C++ inclu.
réel, c'est justement qu'il n'y a pas de consensus. : avant
l'apparition de Java, pour moi, une « méthode », c'était
quelque chose invoquée par « l'envoi d'un message », tandis
qu'une fonction, c'était quelque chose invoquée par un «
appel de fonction ». Mais c'est une définition un peu
circulaire. Enfin, en Java, il n'y a que des méthodes, y
compris les méthodes statiques. Certains donc utilisent «
méthode » pour toute fonction membre ; je crois même que
c'est l'utilisation la plus
La difference, c'est qu'en Java, toutes les fonctions
(membres) ont une invocation virtuelle, y compris les static.
Cf JVM Specs.
répandue. D'autres, dont moi-même, adjustent les définitions
selon la communité ciblée -- je n'utilise jamais le mot
méthode à propos de C++, mais je n'utilise que le mot
méthode quand je parle de Java.
Tu es libre de porter des oeilleres.
TC++PL3, 12.2.6 virtual function
[...] A virtual member function is sometimes called a method.
C'est ajuste', non?
Le probleme, c'est que l'emploi de ces termes impliques une
connaissance (limitee) de la resolution d'appel et donc de
l'implementation, ce qui n'est generalement pas le but.
Le problème, surtout, c'est que cet emploi implique une
connaissance de tes définitions, qui ne sont pas celles des
autres.
Le probleme, c'est que plusieurs communautes essayent de
partager leur culture informatique alors que d'autres
orientees marketing cherche a vendre en utilisant les termes
les plus a la mode, par necessairement approprie dans leur
cas. Ajoute a cela le changement de terminologie entre la
definition et l'invocation dans certains langages (SmallTalk
et Objective-C par exemple) et tu as l'etat de l'art de la
confusion regnante.
wrote:Fabien LE LEZ wrote:D'autant que C# concerne principalement le service
marketing. Les gus qui font tout à fait autre chose
(développement de Office par exemple) n'ont rien à voir
là-dedans.
Au moins qu'on lui impose C# d'en haut. Ou simplement que MS
se désintéresse de C++ au point à laisser moribonder le
compilateur (comme fait Sun) ;
Qu'est-ce qui te fais penser que Sun laisse leur compilo C++
mourir ?
Récemment, le dit compilo a fait des progrès considérables
dans la gestion des templates, des fonctions inline, etc. Sun
permet également l'utilisation d'une bibliothèque standard
bien plus performante et complète que celle apparue avec C++
5.0 (d'origine Roguewave) : STLport.
Et un des objectifs affichés est que C++ 5.7 puisse compiler
boost.
Le compilateur évolue rapidement dans ce sens, et Sun
contribue à la mise au point des fichiers de configuration de
boost. cf. les messages de Steve Clamage sur le forum du
compilo:
http://forum.sun.com/thread.jspa?threadID#793&tstart=0
kanze@gabi-soft.fr wrote:
Fabien LE LEZ wrote:
D'autant que C# concerne principalement le service
marketing. Les gus qui font tout à fait autre chose
(développement de Office par exemple) n'ont rien à voir
là-dedans.
Au moins qu'on lui impose C# d'en haut. Ou simplement que MS
se désintéresse de C++ au point à laisser moribonder le
compilateur (comme fait Sun) ;
Qu'est-ce qui te fais penser que Sun laisse leur compilo C++
mourir ?
Récemment, le dit compilo a fait des progrès considérables
dans la gestion des templates, des fonctions inline, etc. Sun
permet également l'utilisation d'une bibliothèque standard
bien plus performante et complète que celle apparue avec C++
5.0 (d'origine Roguewave) : STLport.
Et un des objectifs affichés est que C++ 5.7 puisse compiler
boost.
Le compilateur évolue rapidement dans ce sens, et Sun
contribue à la mise au point des fichiers de configuration de
boost. cf. les messages de Steve Clamage sur le forum du
compilo:
http://forum.sun.com/thread.jspa?threadID=23793&tstart=0
wrote:Fabien LE LEZ wrote:D'autant que C# concerne principalement le service
marketing. Les gus qui font tout à fait autre chose
(développement de Office par exemple) n'ont rien à voir
là-dedans.
Au moins qu'on lui impose C# d'en haut. Ou simplement que MS
se désintéresse de C++ au point à laisser moribonder le
compilateur (comme fait Sun) ;
Qu'est-ce qui te fais penser que Sun laisse leur compilo C++
mourir ?
Récemment, le dit compilo a fait des progrès considérables
dans la gestion des templates, des fonctions inline, etc. Sun
permet également l'utilisation d'une bibliothèque standard
bien plus performante et complète que celle apparue avec C++
5.0 (d'origine Roguewave) : STLport.
Et un des objectifs affichés est que C++ 5.7 puisse compiler
boost.
Le compilateur évolue rapidement dans ce sens, et Sun
contribue à la mise au point des fichiers de configuration de
boost. cf. les messages de Steve Clamage sur le forum du
compilo:
http://forum.sun.com/thread.jspa?threadID#793&tstart=0
Laurent Deniau wrote:Ce n'est pas moi qui definit ces termes, meme si j'essaye ici
de les presenter de maniere "unifiee".
Je m'en doutais un peu. Mais j'aurais voulu savoir tes sources.
Parce que tes définitions ne correspond à rien de ce que j'ai
jamais vu.
C'est un consensus observe dans la terminologie de plusieurs
langages, C++ inclu.
Ce n'est pas la terminologie de C++ (où il n'y a que des
fonctions, virtuelles ou non), ni de Java (où il n'y a que des
méthodes, statiques ou non). Smalltalk parle d'« envoyer un
message » qui est traité par une méthode -- ce n'est donc pas de
là non plus. Lisp (au moins Scheme) parle des fonctions, alors
que la resolution est plutôt dynamique.
Je trouve que des définitions plus ou moins universelles
seraient une bonne chose (et les tiennes sont aussi bien que
n'importe quoi d'autre). Mais actuellement, j'ai l'impression
que c'est le bordel complet.
réel, c'est justement qu'il n'y a pas de consensus. : avant
l'apparition de Java, pour moi, une « méthode », c'était
quelque chose invoquée par « l'envoi d'un message », tandis
qu'une fonction, c'était quelque chose invoquée par un «
appel de fonction ». Mais c'est une définition un peu
circulaire. Enfin, en Java, il n'y a que des méthodes, y
compris les méthodes statiques. Certains donc utilisent «
méthode » pour toute fonction membre ; je crois même que
c'est l'utilisation la plusLa difference, c'est qu'en Java, toutes les fonctions
(membres) ont une invocation virtuelle, y compris les static.
Cf JVM Specs.
Dans la spécification du langage, il y a bien une différence.
C'est ce que voit l'utilisateur.
Si on considère Smalltalk, la plupart des compilateurs arrivent
à résoudre certains envois de message en appel direct de
fonction. Est-ce que la terminologie correcte dépend de l'état
d'optimisation ? À mon avis, non -- elle doit dépendre
uniquement de ce que perçoit l'utilisateur, selon la définition
du langage.
Le probleme, c'est que plusieurs communautes essayent de
partager leur culture informatique alors que d'autres
orientees marketing cherche a vendre en utilisant les termes
les plus a la mode, par necessairement approprie dans leur
cas. Ajoute a cela le changement de terminologie entre la
definition et l'invocation dans certains langages (SmallTalk
et Objective-C par exemple) et tu as l'etat de l'art de la
confusion regnante.
Tout à fait. C'est tout ce que je voulais dire.
Laurent Deniau wrote:
Ce n'est pas moi qui definit ces termes, meme si j'essaye ici
de les presenter de maniere "unifiee".
Je m'en doutais un peu. Mais j'aurais voulu savoir tes sources.
Parce que tes définitions ne correspond à rien de ce que j'ai
jamais vu.
C'est un consensus observe dans la terminologie de plusieurs
langages, C++ inclu.
Ce n'est pas la terminologie de C++ (où il n'y a que des
fonctions, virtuelles ou non), ni de Java (où il n'y a que des
méthodes, statiques ou non). Smalltalk parle d'« envoyer un
message » qui est traité par une méthode -- ce n'est donc pas de
là non plus. Lisp (au moins Scheme) parle des fonctions, alors
que la resolution est plutôt dynamique.
Je trouve que des définitions plus ou moins universelles
seraient une bonne chose (et les tiennes sont aussi bien que
n'importe quoi d'autre). Mais actuellement, j'ai l'impression
que c'est le bordel complet.
réel, c'est justement qu'il n'y a pas de consensus. : avant
l'apparition de Java, pour moi, une « méthode », c'était
quelque chose invoquée par « l'envoi d'un message », tandis
qu'une fonction, c'était quelque chose invoquée par un «
appel de fonction ». Mais c'est une définition un peu
circulaire. Enfin, en Java, il n'y a que des méthodes, y
compris les méthodes statiques. Certains donc utilisent «
méthode » pour toute fonction membre ; je crois même que
c'est l'utilisation la plus
La difference, c'est qu'en Java, toutes les fonctions
(membres) ont une invocation virtuelle, y compris les static.
Cf JVM Specs.
Dans la spécification du langage, il y a bien une différence.
C'est ce que voit l'utilisateur.
Si on considère Smalltalk, la plupart des compilateurs arrivent
à résoudre certains envois de message en appel direct de
fonction. Est-ce que la terminologie correcte dépend de l'état
d'optimisation ? À mon avis, non -- elle doit dépendre
uniquement de ce que perçoit l'utilisateur, selon la définition
du langage.
Le probleme, c'est que plusieurs communautes essayent de
partager leur culture informatique alors que d'autres
orientees marketing cherche a vendre en utilisant les termes
les plus a la mode, par necessairement approprie dans leur
cas. Ajoute a cela le changement de terminologie entre la
definition et l'invocation dans certains langages (SmallTalk
et Objective-C par exemple) et tu as l'etat de l'art de la
confusion regnante.
Tout à fait. C'est tout ce que je voulais dire.
Laurent Deniau wrote:Ce n'est pas moi qui definit ces termes, meme si j'essaye ici
de les presenter de maniere "unifiee".
Je m'en doutais un peu. Mais j'aurais voulu savoir tes sources.
Parce que tes définitions ne correspond à rien de ce que j'ai
jamais vu.
C'est un consensus observe dans la terminologie de plusieurs
langages, C++ inclu.
Ce n'est pas la terminologie de C++ (où il n'y a que des
fonctions, virtuelles ou non), ni de Java (où il n'y a que des
méthodes, statiques ou non). Smalltalk parle d'« envoyer un
message » qui est traité par une méthode -- ce n'est donc pas de
là non plus. Lisp (au moins Scheme) parle des fonctions, alors
que la resolution est plutôt dynamique.
Je trouve que des définitions plus ou moins universelles
seraient une bonne chose (et les tiennes sont aussi bien que
n'importe quoi d'autre). Mais actuellement, j'ai l'impression
que c'est le bordel complet.
réel, c'est justement qu'il n'y a pas de consensus. : avant
l'apparition de Java, pour moi, une « méthode », c'était
quelque chose invoquée par « l'envoi d'un message », tandis
qu'une fonction, c'était quelque chose invoquée par un «
appel de fonction ». Mais c'est une définition un peu
circulaire. Enfin, en Java, il n'y a que des méthodes, y
compris les méthodes statiques. Certains donc utilisent «
méthode » pour toute fonction membre ; je crois même que
c'est l'utilisation la plusLa difference, c'est qu'en Java, toutes les fonctions
(membres) ont une invocation virtuelle, y compris les static.
Cf JVM Specs.
Dans la spécification du langage, il y a bien une différence.
C'est ce que voit l'utilisateur.
Si on considère Smalltalk, la plupart des compilateurs arrivent
à résoudre certains envois de message en appel direct de
fonction. Est-ce que la terminologie correcte dépend de l'état
d'optimisation ? À mon avis, non -- elle doit dépendre
uniquement de ce que perçoit l'utilisateur, selon la définition
du langage.
Le probleme, c'est que plusieurs communautes essayent de
partager leur culture informatique alors que d'autres
orientees marketing cherche a vendre en utilisant les termes
les plus a la mode, par necessairement approprie dans leur
cas. Ajoute a cela le changement de terminologie entre la
definition et l'invocation dans certains langages (SmallTalk
et Objective-C par exemple) et tu as l'etat de l'art de la
confusion regnante.
Tout à fait. C'est tout ce que je voulais dire.