Tu dois leur parler des adresses de la pile ?
Moi pas parler, moi écrire. Je me suis un peu occupé d'assembleur.
Ben moi, je lui explique pas. Il apprend à programmer sans
savoir comment est implanté la pile sur son OS/proc.
Oui. De plus, pas de référence explicite à la pile d'un quelconque
Tu dois leur parler des adresses de la pile ?
Moi pas parler, moi écrire. Je me suis un peu occupé d'assembleur.
Ben moi, je lui explique pas. Il apprend à programmer sans
savoir comment est implanté la pile sur son OS/proc.
Oui. De plus, pas de référence explicite à la pile d'un quelconque
Tu dois leur parler des adresses de la pile ?
Moi pas parler, moi écrire. Je me suis un peu occupé d'assembleur.
Ben moi, je lui explique pas. Il apprend à programmer sans
savoir comment est implanté la pile sur son OS/proc.
Oui. De plus, pas de référence explicite à la pile d'un quelconque
"Marc Boyer" a écritTu dois leur parler des adresses de la pile ?
Moi pas parler, moi écrire. Je me suis un peu occupé d'assembleur.
Ben moi, je lui explique pas. Il apprend à programmer sans
savoir comment est implanté la pile sur son OS/proc.
Oui. De plus, pas de référence explicite à la pile d'un quelconque
processeur dans la norme.
Mais prenons un prof. Fatalement, un jour, peut-être à l'occasion d'une
présentation d'un appel récursif, quelques élèves manifesteront leur
incompréhension. Les autres élèves n'étant majoritairement pas ceux qui ont
compris, mais ceux qui s'en fichent. Implantation unique du code, plusieurs
jeux de données, ne revenons pas là-dessus, les causes de ce flou sont
connues.
Ou alors, notre prof aura donné en exercice une fonction récursive. Il
passera rapidement sur les excellentes solutions proposées par ceux parmi
les élèves (de futurs commerciauux) qui auront réussi à se faire coder le
bouzin sur fclc ou fclc++. Et il tombera une fois de plus sur le troupeau
des honnêtes. Certains auront codé un truc invraisemblable, truffé de
static. Ça marche vaguement au premier appel, puis plante ou renvoie
n'importe quoi au second. Forcément. Et de plus, si un appel récursif par
définition figure dans la fonction, l'algo ne l'est pas. Donc,
incompréhension. Donc, explication.
Prof attaque, la norme, conservation des variables automatiques d'un appel à
l'autre, etc. X% de réussite. Donc (100-X)% d'échecs. Ceux qui disent en
boucle "oui, mais comment le programme retrouve ses variables ? c'est pas
possible, votre machin".
Ce sera alors le bon moment de passer au tableau, et d'attaquer : "Bon, nous
allons voir en détail comment ça POURRAIT se passer sur une machine
particulière. etc.".
Bien entendu, il serait tout à fait criminel à ce moment-là de parler de
pile qui pousse à l'envers ;-).
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr.invalid> a écrit
Tu dois leur parler des adresses de la pile ?
Moi pas parler, moi écrire. Je me suis un peu occupé d'assembleur.
Ben moi, je lui explique pas. Il apprend à programmer sans
savoir comment est implanté la pile sur son OS/proc.
Oui. De plus, pas de référence explicite à la pile d'un quelconque
processeur dans la norme.
Mais prenons un prof. Fatalement, un jour, peut-être à l'occasion d'une
présentation d'un appel récursif, quelques élèves manifesteront leur
incompréhension. Les autres élèves n'étant majoritairement pas ceux qui ont
compris, mais ceux qui s'en fichent. Implantation unique du code, plusieurs
jeux de données, ne revenons pas là-dessus, les causes de ce flou sont
connues.
Ou alors, notre prof aura donné en exercice une fonction récursive. Il
passera rapidement sur les excellentes solutions proposées par ceux parmi
les élèves (de futurs commerciauux) qui auront réussi à se faire coder le
bouzin sur fclc ou fclc++. Et il tombera une fois de plus sur le troupeau
des honnêtes. Certains auront codé un truc invraisemblable, truffé de
static. Ça marche vaguement au premier appel, puis plante ou renvoie
n'importe quoi au second. Forcément. Et de plus, si un appel récursif par
définition figure dans la fonction, l'algo ne l'est pas. Donc,
incompréhension. Donc, explication.
Prof attaque, la norme, conservation des variables automatiques d'un appel à
l'autre, etc. X% de réussite. Donc (100-X)% d'échecs. Ceux qui disent en
boucle "oui, mais comment le programme retrouve ses variables ? c'est pas
possible, votre machin".
Ce sera alors le bon moment de passer au tableau, et d'attaquer : "Bon, nous
allons voir en détail comment ça POURRAIT se passer sur une machine
particulière. etc.".
Bien entendu, il serait tout à fait criminel à ce moment-là de parler de
pile qui pousse à l'envers ;-).
"Marc Boyer" a écritTu dois leur parler des adresses de la pile ?
Moi pas parler, moi écrire. Je me suis un peu occupé d'assembleur.
Ben moi, je lui explique pas. Il apprend à programmer sans
savoir comment est implanté la pile sur son OS/proc.
Oui. De plus, pas de référence explicite à la pile d'un quelconque
processeur dans la norme.
Mais prenons un prof. Fatalement, un jour, peut-être à l'occasion d'une
présentation d'un appel récursif, quelques élèves manifesteront leur
incompréhension. Les autres élèves n'étant majoritairement pas ceux qui ont
compris, mais ceux qui s'en fichent. Implantation unique du code, plusieurs
jeux de données, ne revenons pas là-dessus, les causes de ce flou sont
connues.
Ou alors, notre prof aura donné en exercice une fonction récursive. Il
passera rapidement sur les excellentes solutions proposées par ceux parmi
les élèves (de futurs commerciauux) qui auront réussi à se faire coder le
bouzin sur fclc ou fclc++. Et il tombera une fois de plus sur le troupeau
des honnêtes. Certains auront codé un truc invraisemblable, truffé de
static. Ça marche vaguement au premier appel, puis plante ou renvoie
n'importe quoi au second. Forcément. Et de plus, si un appel récursif par
définition figure dans la fonction, l'algo ne l'est pas. Donc,
incompréhension. Donc, explication.
Prof attaque, la norme, conservation des variables automatiques d'un appel à
l'autre, etc. X% de réussite. Donc (100-X)% d'échecs. Ceux qui disent en
boucle "oui, mais comment le programme retrouve ses variables ? c'est pas
possible, votre machin".
Ce sera alors le bon moment de passer au tableau, et d'attaquer : "Bon, nous
allons voir en détail comment ça POURRAIT se passer sur une machine
particulière. etc.".
Bien entendu, il serait tout à fait criminel à ce moment-là de parler de
pile qui pousse à l'envers ;-).
a écrit
[...]La réincarnation, c'est quand tu as quitté une fonction, et que tu
appelles une autre fonction, qui n'initialise pas ses variables locales,
et que tu te rétrouves avec les variables de la fonction que tu as
quitté.
Comme technique de programmation, c'est à peu près aussi sûr que ne
l'est notre réincarnation à nous.
De la métempsychose au service de la programmation !
Sur la "technique de programmation", je me souviens d'un fil là-dessus il y
a quelque temps (ici ou chez les collègues du --). Le gars partait du
principe que les variables locales étaient bien "quelque part", et qu'en s'y
prenant suffisamment tôt, on devait pouvoir les "attraper". (intérêt ?).
Pour une implémentation l' "Aspect Oriented Programming" non ?
<kanze@gabi-soft.fr> a écrit
[...]
La réincarnation, c'est quand tu as quitté une fonction, et que tu
appelles une autre fonction, qui n'initialise pas ses variables locales,
et que tu te rétrouves avec les variables de la fonction que tu as
quitté.
Comme technique de programmation, c'est à peu près aussi sûr que ne
l'est notre réincarnation à nous.
De la métempsychose au service de la programmation !
Sur la "technique de programmation", je me souviens d'un fil là-dessus il y
a quelque temps (ici ou chez les collègues du --). Le gars partait du
principe que les variables locales étaient bien "quelque part", et qu'en s'y
prenant suffisamment tôt, on devait pouvoir les "attraper". (intérêt ?).
Pour une implémentation l' "Aspect Oriented Programming" non ?
a écrit
[...]La réincarnation, c'est quand tu as quitté une fonction, et que tu
appelles une autre fonction, qui n'initialise pas ses variables locales,
et que tu te rétrouves avec les variables de la fonction que tu as
quitté.
Comme technique de programmation, c'est à peu près aussi sûr que ne
l'est notre réincarnation à nous.
De la métempsychose au service de la programmation !
Sur la "technique de programmation", je me souviens d'un fil là-dessus il y
a quelque temps (ici ou chez les collègues du --). Le gars partait du
principe que les variables locales étaient bien "quelque part", et qu'en s'y
prenant suffisamment tôt, on devait pouvoir les "attraper". (intérêt ?).
Pour une implémentation l' "Aspect Oriented Programming" non ?
Après, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Après, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Après, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Dans news:brru0c$jvt$, MarcAprès, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien. Ça fonctionne tout autant et de la même
façon. En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.). Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels). Évidemment je parle de l'assembleur d'un
processeur utilisant une pile, pour les autres, effectivement
c'est bien plus complexe.
Dans news:brru0c$jvt$1@news.cict.fr, Marc
Après, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien. Ça fonctionne tout autant et de la même
façon. En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.). Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels). Évidemment je parle de l'assembleur d'un
processeur utilisant une pile, pour les autres, effectivement
c'est bien plus complexe.
Dans news:brru0c$jvt$, MarcAprès, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien. Ça fonctionne tout autant et de la même
façon. En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.). Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels). Évidemment je parle de l'assembleur d'un
processeur utilisant une pile, pour les autres, effectivement
c'est bien plus complexe.
Dans news:brru0c$jvt$, MarcAprès, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien.
Ça fonctionne tout autant et de la même façon.
En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.).
Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels). Évidemment je parle de l'assembleur d'un
processeur utilisant une pile, pour les autres, effectivement
c'est bien plus complexe.
Dans news:brru0c$jvt$1@news.cict.fr, Marc
Après, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien.
Ça fonctionne tout autant et de la même façon.
En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.).
Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels). Évidemment je parle de l'assembleur d'un
processeur utilisant une pile, pour les autres, effectivement
c'est bien plus complexe.
Dans news:brru0c$jvt$, MarcAprès, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien.
Ça fonctionne tout autant et de la même façon.
En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.).
Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels). Évidemment je parle de l'assembleur d'un
processeur utilisant une pile, pour les autres, effectivement
c'est bien plus complexe.
Dans news:brru0c$jvt$, MarcAprès, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien. Ça fonctionne tout autant et de la même
façon. En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.). Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels).
Dans news:brru0c$jvt$1@news.cict.fr, Marc
Après, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien. Ça fonctionne tout autant et de la même
façon. En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.). Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels).
Dans news:brru0c$jvt$, MarcAprès, si un élève découvre la récursivité avec l'assembleur,
c'est un autre niveau de difficulté (et j'aimerais pas être
le prof ce jour là).
Ça ne change rien. Ça fonctionne tout autant et de la même
façon. En fait, c'est peut-être même plus facile à comprendre,
en autant évidemment qu'on ait d'abord compris le principe
des fonctions en assembleur (empilage des paramètres, espaces
pour variables locales, « stack frame », etc.). Là, clairement
on voit ce que sont vraiment les variables locales (et les
paramètres actuels).
"Michel Michaud" a écrit .Dans news:brru0c$jvt$, Marc
Moins HS, puisque que les formateurs sont nombreux sur ce groupe :
Il me semble qu'il y a au moins deux types d'élèves face à un problème de
compréhension. Ceux du premier type ne pourront pas oublier qu'il y a une
machine hébergeant le programme, et auront besoin de savoir au moins en gros
comment ça peut marcher. Les autres se contenteront de ce que dit la norme.
Je fais de toute évidence partie de la première catégorie, mais j'admets
volontiers que ceux de la seconde seront sans doute plus productifs, dans
les situations de programmation les plus courantes.
"Michel Michaud" <mm@gdzid.com> a écrit .
Dans news:brru0c$jvt$1@news.cict.fr, Marc
Moins HS, puisque que les formateurs sont nombreux sur ce groupe :
Il me semble qu'il y a au moins deux types d'élèves face à un problème de
compréhension. Ceux du premier type ne pourront pas oublier qu'il y a une
machine hébergeant le programme, et auront besoin de savoir au moins en gros
comment ça peut marcher. Les autres se contenteront de ce que dit la norme.
Je fais de toute évidence partie de la première catégorie, mais j'admets
volontiers que ceux de la seconde seront sans doute plus productifs, dans
les situations de programmation les plus courantes.
"Michel Michaud" a écrit .Dans news:brru0c$jvt$, Marc
Moins HS, puisque que les formateurs sont nombreux sur ce groupe :
Il me semble qu'il y a au moins deux types d'élèves face à un problème de
compréhension. Ceux du premier type ne pourront pas oublier qu'il y a une
machine hébergeant le programme, et auront besoin de savoir au moins en gros
comment ça peut marcher. Les autres se contenteront de ce que dit la norme.
Je fais de toute évidence partie de la première catégorie, mais j'admets
volontiers que ceux de la seconde seront sans doute plus productifs, dans
les situations de programmation les plus courantes.