OVH Cloud OVH Cloud

signification de mutable et volatile

83 réponses
Avatar
Stephane Wirtel
Bonjour à tous,

Lisant parfois du code avec ces mots réservés, je me demande maintenant
quelles sont les fonctionnalités de ces deux mots.

Une petite explication ou une doc m'expliquant clairement le but de ces
deux mots réservés.

Merci,

Stéphane.

10 réponses

5 6 7 8 9
Avatar
James Kanze
Gabriel Dos Reis wrote:
writes:


[...]


| qu'ils lui donnent. Mais le C et le C++ ne sont pas conçu pour


Il est aussi à préciser que dans le cas de C++, son concepteur
n'a pas estimé que « volatile » (du moins dans sa sémantique
C) est une fonctionnalité fiable et n'a pas senti le besoin
d'élaborer plus dans cette voie.


Et le comité C++ non plus.


Ça veut dire quoi, « fonctionnement fiable », dans cette
contexte ? Je peux dire que dans certains types d'applications,
j'étais bien content qu'il y avait volatile -- si tu en es
contre, il faudrait bien en proposer un alternatif qui marche
mieux, parce qu'il s'adresse à un besoin réel.

Et puis, volatile s'applique à un niveau où le C++ essaie de
maintenir la compatibilité avec le C. Le C l'a très bien défini,
et je ne vois pas un besoin que le C++ fasse quelque chose de
plus. (En fait, il fait du plus, puisque je peux declarer une
fonction membre volatile.)

--
James Kanze home: www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34

Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| "Gabriel Dos Reis" a écrit dans le message
| news:
|
| > J'ai dit que tu tournes en rond.
| >
| > Bah non.
| >
| >
| > Quel est-il ? Comment est-il défini ? Suivant quelles règles ?
|
| Tu ne fais que renvoyer des questions,

Je ne renvoie pas de questions : je pose des questions concernant tes
affirmations que je ne comprends pas. Tu peux décider de ne pas
répondre. Tu auras seulement manqué une occasion d'éclaircir tes propos.

| sans jamais
| donner d'éléments, on dirait que tu te caricatures
| toi-même.

Au lieu de répondre aux questions destinée à obtenir plus
d'éclaircissements sur tes propos, tu choisis de te concentrer sur ma
personne. Là tu saisis une occasion de te ridiculiser.

-- Gaby
Avatar
Gabriel Dos Reis
James Kanze writes:

| Gabriel Dos Reis wrote:
| > writes:
|
| > [...]
|
| > | qu'ils lui donnent. Mais le C et le C++ ne sont pas conçu pour
|
| > Il est aussi à préciser que dans le cas de C++, son concepteur
| > n'a pas estimé que « volatile » (du moins dans sa sémantique
| > C) est une fonctionnalité fiable et n'a pas senti le besoin
| > d'élaborer plus dans cette voie.
|
| > Et le comité C++ non plus.
|
| Ça veut dire quoi, « fonctionnement fiable », dans cette

Dans le sens où il soit possible de vérifier par des méthodes
rationnelles que l'exécutable généré par le traducteur est conforme à
la sémantique du programme source. C'est un sujet de base quand on
fait de la vérification de programmes qui contrôlent des systèmes
(embarqués) de survie (imagine par exemple que tu envoies un
astronaute sur Mars, tu as envie de savoir que les divers programmes
à bord sont au moins corrects, non ?) -- ou pour ce qui
m'intéresse, la vérification de compilateurs optimisants.

| contexte ? Je peux dire que dans certains types d'applications,
| j'étais bien content qu'il y avait volatile -- si tu en es
| contre, il faudrait bien en proposer un alternatif qui marche
| mieux, parce qu'il s'adresse à un besoin réel.

Je suis heureux pour toi que tu sois content. Mon problème n'est pas
être pour ou contre. C'est celui d'avoir une sémantique vérifiable.
Mais je suppose que c'est trop subtile ?

-- Gaby
Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| "Gabriel Dos Reis" a écrit dans le message
| news:
|
| > "Alain Naigeon" writes:
| >
| > | "Gabriel Dos Reis" a écrit dans le
| message
| > | news:
| > | > writes:
| > | >
| > | > | d'écriture. D'une côté, c'est une définition sans la moindre
| > | > | utilité,
| > | >
| > | > et, en pratique, sans aucun sens utilisable. Tu viens de comprendre
| > | > « volatile ».
| > |
| > | Et tu n'as toujours pas proposé qu'on le supprime ?
| >
| > Il manquerait une excuse pour que tu puisses envoyer ce message.
| >
| > -- Gaby
|
| Je ne comprends pas cette phrase,

Je me demande s'il n'y a que cette phrase.

| de quelle excuse parles-tu ?

Si j'avais proposé d'enlever volatile aurais-tu quand même enovyé le
même message ?

-- Gaby
Avatar
M. B.
"Gabriel Dos Reis" a écrit dans le message de
news:

.... (imagine par exemple que tu envoies un
astronaute sur Mars, tu as envie de savoir que les divers programmes
à bord sont au moins corrects, non ?)


Je doute fort que les developpeurs de ce type d'application
consultent ce forum nombriliste.

Il faudrait peut etre un jour revenir sur terre (toi, pas les
astronautes).

MB

Avatar
Alain Naigeon
"Gabriel Dos Reis" a écrit dans le message
news:
"Alain Naigeon" writes:

| "Gabriel Dos Reis" a écrit dans le
message

| news:
|
| > J'ai dit que tu tournes en rond.
| >
| > Bah non.
| >
| >
| > Quel est-il ? Comment est-il défini ? Suivant quelles règles ?
|
| Tu ne fais que renvoyer des questions,

Je ne renvoie pas de questions : je pose des questions concernant tes
affirmations que je ne comprends pas. Tu peux décider de ne pas
répondre. Tu auras seulement manqué une occasion d'éclaircir tes propos.


Ou ta compréhension..?

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France

Avatar
Alain Naigeon
"Gabriel Dos Reis" a écrit dans le message
news:

Si j'avais proposé d'enlever volatile aurais-tu quand même enovyé le
même message ?


Non.

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France

Avatar
drkm
"M. B." writes:

"Gabriel Dos Reis" a écrit dans le message de
news:

.... (imagine par exemple que tu envoies un
astronaute sur Mars, tu as envie de savoir que les divers programmes
à bord sont au moins corrects, non ?)


Je doute fort que les developpeurs de ce type d'application
consultent ce forum nombriliste.


Et alors ?

--drkm


Avatar
James Kanze
Gabriel Dos Reis wrote:
James Kanze writes:


| Gabriel Dos Reis wrote:
| > writes:


| > [...]


| > | qu'ils lui donnent. Mais le C et le C++ ne sont pas
| > | conçu pour


| > Il est aussi à préciser que dans le cas de C++, son
| > concepteur n'a pas estimé que « volatile » (du moins dans
| > sa sémantique C) est une fonctionnalité fiable et n'a pas
| > senti le besoin d'élaborer plus dans cette voie.


| > Et le comité C++ non plus.


| Ça veut dire quoi, « fonctionnement fiable », dans cette


Dans le sens où il soit possible de vérifier par des méthodes
rationnelles que l'exécutable généré par le traducteur est
conforme à la sémantique du programme source.


C-à-d que c'est possible d'écrire un programme de test qui
vérifie qu'un compilateur a implémenté volatile selon la norme ?

Dans ce cas-ci, c'est vrai, mais c'est vrai partout où il y a un
comportement défini par l'implémentation. C'est potentiellement
possible, en revanche, de créer un banc de test qui vérifie que
le compilateur est conforme à ses spécifications, à condition
qu'il a défini « accès » comme quelque chose de réelement
vérifiable de l'extérieur.

C'est un sujet de base quand on fait de la vérification de
programmes qui contrôlent des systèmes (embarqués) de survie
(imagine par exemple que tu envoies un astronaute sur Mars, tu
as envie de savoir que les divers programmes à bord sont au
moins corrects, non ?)


C'est plus compliqué que ça. Et en fait, on ne vérifie pas les
compilateurs au moyen des tests externes, au moins, pas
uniquement. De même qu'on ne vérifie pas les programmes au moyen
des tests externes uniquement.

-- ou pour ce qui m'intéresse, la vérification de compilateurs
optimisants.


| contexte ? Je peux dire que dans certains types
| d'applications, j'étais bien content qu'il y avait volatile
| -- si tu en es contre, il faudrait bien en proposer un
| alternatif qui marche mieux, parce qu'il s'adresse à un
| besoin réel.


Je suis heureux pour toi que tu sois content. Mon problème
n'est pas être pour ou contre. C'est celui d'avoir une
sémantique vérifiable. Mais je suppose que c'est trop
subtile ?


D'un certain côté, oui. Parce que je ne sais pas quels méthodes
tu comptes utiliser pour vérifier la sémantique d'un
compilateur.

Maintenant que je comprends à peu près ton point de vue :
qu'est-ce que tu proposes comme alternatif. Je ne dis pas que
volatile soit parfait, mais il me faut d'une part que le
compilateur peut optimiser d'une façon raisonable, mais de
l'autre, qu'il comprenent que certains accès aient des effets de
bord réel (programmer un chip extern, etc.), et que ces
accès-là, il faut qu'il les respecte. (J'ai l'impression que je
me suis pas exprimé très clairement là, mais j'avoue que
j'essaie de décrire un problème pratique que j'ai eu, et que je
n'ai effectivement pas les bases théoriques qu'il faudrait.
Alors, je te démande de la patience, et de poser des questions
si tu ne comprends pas où je veux en venir.)

--
James Kanze home: www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34

Avatar
James Kanze
M. B. wrote:
"Gabriel Dos Reis" a écrit dans
le message de
news:


.... (imagine par exemple que tu envoies un astronaute sur
Mars, tu as envie de savoir que les divers programmes à bord
sont au moins corrects, non ?)



Je doute fort que les developpeurs de ce type d'application
consultent ce forum nombriliste.


C'est probablement vrai, dans la mésure que les seuls qui
risquent d'envoyer les astronautes sur Mars sont anglophones.
J'en connais beaucoup, en revanche, qui lisent regulièrement ce
forum ou les forums équivalents anglophones et qui travaillent
justement sur les systèmes critiques. Je dirais même que c'est
dans les milieux où on développe les systèmes critiques que de
telles reflections sont les plus exigées -- on ne se contente
pas des à peu près et des « il n'a pas crashé au démarrage ». On
démande effectivement le type de vérification dont Gaby parlait.

--
James Kanze home: www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34


5 6 7 8 9