j'apprends C++, et je suis confronté à ce pb : passer un tableau à une
fonction, voilà un code sans utilité mais qui permet de mettre mon pb en
avant : je reçois le message d'erreur suivant: Unresolved external
'ChangerVal(int)' referenced from module prog1.cpp
#include <iostream.h>
#include <conio.h>
| > > ET cela manque a bien des programmeurs. | | > Je suis d'accord qu'il est bien de savoir, par exemple, comment une | > machine représente les entiers en binaire, mais pour bien de domaines | > d'application, ce savoir ne me semble pas indispensable. Il s'agit de | > savoir se placer sur le niveau d'abstraction approprié, qui n'est pas | > le même si on écrit un driver pour un composant réseau (gestion des | > registres, de la DMA, des interruptions ...) que dans le cas d'une | > application qui traite des ordres d'achat / vente à la bourse... | | En effet. Si on fait le calcul numérique (ce que font intensemment les | programmes du marché),
hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le calcul numérique représente une minorité. Cela a-t-il changé ?
-- Gaby
kanze@gabi-soft.fr writes:
[...]
| > > ET cela manque a bien des programmeurs.
|
| > Je suis d'accord qu'il est bien de savoir, par exemple, comment une
| > machine représente les entiers en binaire, mais pour bien de domaines
| > d'application, ce savoir ne me semble pas indispensable. Il s'agit de
| > savoir se placer sur le niveau d'abstraction approprié, qui n'est pas
| > le même si on écrit un driver pour un composant réseau (gestion des
| > registres, de la DMA, des interruptions ...) que dans le cas d'une
| > application qui traite des ordres d'achat / vente à la bourse...
|
| En effet. Si on fait le calcul numérique (ce que font intensemment les
| programmes du marché),
hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le
calcul numérique représente une minorité. Cela a-t-il changé ?
| > > ET cela manque a bien des programmeurs. | | > Je suis d'accord qu'il est bien de savoir, par exemple, comment une | > machine représente les entiers en binaire, mais pour bien de domaines | > d'application, ce savoir ne me semble pas indispensable. Il s'agit de | > savoir se placer sur le niveau d'abstraction approprié, qui n'est pas | > le même si on écrit un driver pour un composant réseau (gestion des | > registres, de la DMA, des interruptions ...) que dans le cas d'une | > application qui traite des ordres d'achat / vente à la bourse... | | En effet. Si on fait le calcul numérique (ce que font intensemment les | programmes du marché),
hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le calcul numérique représente une minorité. Cela a-t-il changé ?
-- Gaby
Marc Boyer
M.B. wrote:
"Jean-Marc Bourguet" a écrit dans le message news:
"M.B." writes: A penser a trop bas niveau, on fini par croire que faire des soustractions pour mettre en minuscule ou mettre un decalage quand on veut faire une multiplication est savoir bien programmer.
Oui mettre un decalage pour multiplier par une puissance de 2, c'est savoir programmer avec la connaissance de la machine qu'on programme. ET cela manque a bien des programmeurs.
Tu connais toutes les machines sur lesquelles ton code vas pouvoir s'exécuter ? Moi, si j'ai besoin d'une multiplication par 2, je multiplie par deux, en laissant au compilateur (qui connait le processeur) le choix de l'instruction à utiliser. A lui de voir ensuite ce qu'il en fait.
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
M.B. wrote:
"Jean-Marc Bourguet" <jm@bourguet.org> a écrit dans le message news:
pxboex0apg4.fsf@news.bourguet.org...
"M.B." <mbinder@magicnet.com> writes:
A penser a trop bas niveau, on fini par croire que faire des
soustractions pour mettre en minuscule ou mettre un decalage quand on
veut faire une multiplication est savoir bien programmer.
Oui mettre un decalage pour multiplier par une puissance de 2, c'est
savoir programmer avec la connaissance de la machine qu'on programme.
ET cela manque a bien des programmeurs.
Tu connais toutes les machines sur lesquelles ton code
vas pouvoir s'exécuter ?
Moi, si j'ai besoin d'une multiplication par 2, je multiplie
par deux, en laissant au compilateur (qui connait le processeur)
le choix de l'instruction à utiliser. A lui de voir ensuite
ce qu'il en fait.
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
"Jean-Marc Bourguet" a écrit dans le message news:
"M.B." writes: A penser a trop bas niveau, on fini par croire que faire des soustractions pour mettre en minuscule ou mettre un decalage quand on veut faire une multiplication est savoir bien programmer.
Oui mettre un decalage pour multiplier par une puissance de 2, c'est savoir programmer avec la connaissance de la machine qu'on programme. ET cela manque a bien des programmeurs.
Tu connais toutes les machines sur lesquelles ton code vas pouvoir s'exécuter ? Moi, si j'ai besoin d'une multiplication par 2, je multiplie par deux, en laissant au compilateur (qui connait le processeur) le choix de l'instruction à utiliser. A lui de voir ensuite ce qu'il en fait.
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Christophe Lephay
"Samuel Krempp" a écrit dans le message de news:3f7bef44$0$20617$
le Wednesday 01 October 2003 20:52, écrivit :
Non c'est pas faux. Une pile ou une serie de registres speciaux, c'est du pareil au meme.
alors quel est l'interêt pour le programmeur de connaître des détails sur le
passage des fonctions, si le mécanisme concret peut varier tout en restant "du pareil au même" ?
Argument décisif, il me semble...
Chris
"Samuel Krempp" <krempp@crans.truc.en.trop.ens-cachan.fr> a écrit dans le
message de news:3f7bef44$0$20617$626a54ce@news.free.fr...
le Wednesday 01 October 2003 20:52, mbinder@magicnet.com écrivit :
Non c'est pas faux. Une pile ou une serie de registres speciaux,
c'est du pareil au meme.
alors quel est l'interêt pour le programmeur de connaître des détails sur
le
passage des fonctions, si le mécanisme concret peut varier tout en restant
"du pareil au même" ?
"Samuel Krempp" a écrit dans le message de news:3f7bef44$0$20617$
le Wednesday 01 October 2003 20:52, écrivit :
Non c'est pas faux. Une pile ou une serie de registres speciaux, c'est du pareil au meme.
alors quel est l'interêt pour le programmeur de connaître des détails sur le
passage des fonctions, si le mécanisme concret peut varier tout en restant "du pareil au même" ?
Argument décisif, il me semble...
Chris
kanze
Gabriel Dos Reis wrote in message news:...
writes:
[...]
| > > ET cela manque a bien des programmeurs.
| > Je suis d'accord qu'il est bien de savoir, par exemple, comment | > une machine représente les entiers en binaire, mais pour bien de | > domaines d'application, ce savoir ne me semble pas indispensable. | > Il s'agit de savoir se placer sur le niveau d'abstraction | > approprié, qui n'est pas le même si on écrit un driver pour un | > composant réseau (gestion des registres, de la DMA, des | > interruptions ...) que dans le cas d'une application qui traite | > des ordres d'achat / vente à la bourse...
| En effet. Si on fait le calcul numérique (ce que font intensemment | les programmes du marché),
hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le calcul numérique représente une minorité. Cela a-t-il changé ?
Et tu crois que ceux qui font les programmes des marchés sont la majorité des programmeurs ?
Je ne sais pas ce que font la majorité des programmeurs, mais je vois certains types d'applications qui en utilisent beaucoup : les applications du reseau ; la gestion classique : suivi des ordres, facturation, etc. ; les télécoms ; les applications industrielles...
Bien sûr, je connais aussi des domaines où le calcul numérique est important -- le traitement d'image, les jeux, les programmes du marché... Mais ils sont loin d'employer le même nombre de programmeurs que les télécoms, les sites de Web ou de la gestion classique. Enfin, si je peux en juger d'après les offres d'emploi.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> wrote in message
news:<flvfr87yw9.fsf@sel.cmla.ens-cachan.fr>...
kanze@gabi-soft.fr writes:
[...]
| > > ET cela manque a bien des programmeurs.
| > Je suis d'accord qu'il est bien de savoir, par exemple, comment
| > une machine représente les entiers en binaire, mais pour bien de
| > domaines d'application, ce savoir ne me semble pas indispensable.
| > Il s'agit de savoir se placer sur le niveau d'abstraction
| > approprié, qui n'est pas le même si on écrit un driver pour un
| > composant réseau (gestion des registres, de la DMA, des
| > interruptions ...) que dans le cas d'une application qui traite
| > des ordres d'achat / vente à la bourse...
| En effet. Si on fait le calcul numérique (ce que font intensemment
| les programmes du marché),
hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le
calcul numérique représente une minorité. Cela a-t-il changé ?
Et tu crois que ceux qui font les programmes des marchés sont la
majorité des programmeurs ?
Je ne sais pas ce que font la majorité des programmeurs, mais je vois
certains types d'applications qui en utilisent beaucoup : les
applications du reseau ; la gestion classique : suivi des ordres,
facturation, etc. ; les télécoms ; les applications industrielles...
Bien sûr, je connais aussi des domaines où le calcul numérique est
important -- le traitement d'image, les jeux, les programmes du
marché... Mais ils sont loin d'employer le même nombre de programmeurs
que les télécoms, les sites de Web ou de la gestion classique. Enfin, si
je peux en juger d'après les offres d'emploi.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
| > Je suis d'accord qu'il est bien de savoir, par exemple, comment | > une machine représente les entiers en binaire, mais pour bien de | > domaines d'application, ce savoir ne me semble pas indispensable. | > Il s'agit de savoir se placer sur le niveau d'abstraction | > approprié, qui n'est pas le même si on écrit un driver pour un | > composant réseau (gestion des registres, de la DMA, des | > interruptions ...) que dans le cas d'une application qui traite | > des ordres d'achat / vente à la bourse...
| En effet. Si on fait le calcul numérique (ce que font intensemment | les programmes du marché),
hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le calcul numérique représente une minorité. Cela a-t-il changé ?
Et tu crois que ceux qui font les programmes des marchés sont la majorité des programmeurs ?
Je ne sais pas ce que font la majorité des programmeurs, mais je vois certains types d'applications qui en utilisent beaucoup : les applications du reseau ; la gestion classique : suivi des ordres, facturation, etc. ; les télécoms ; les applications industrielles...
Bien sûr, je connais aussi des domaines où le calcul numérique est important -- le traitement d'image, les jeux, les programmes du marché... Mais ils sont loin d'employer le même nombre de programmeurs que les télécoms, les sites de Web ou de la gestion classique. Enfin, si je peux en juger d'après les offres d'emploi.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
M.B.
a écrit dans le message news:
Alors, non seulement tu ne connais pas l'architecture des ordinateurs modernes, mais tu ne comprends même pas le concept de pile.
Cette mauvaise foi ... J'en reviens pas.
MB
<kanze@gabi-soft.fr> a écrit dans le message news:
d6652001.0310020110.2c3a38f2@posting.google.com...
Alors, non seulement tu ne connais pas l'architecture des ordinateurs
modernes, mais tu ne comprends même pas le concept de pile.
Alors, non seulement tu ne connais pas l'architecture des ordinateurs modernes, mais tu ne comprends même pas le concept de pile.
Cette mauvaise foi ... J'en reviens pas.
MB
M.B.
"Samuel Krempp" a écrit dans le message news: 3f7bef44$0$20617$
le Wednesday 01 October 2003 20:52, écrivit :
Non c'est pas faux. Une pile ou une serie de registres speciaux, c'est du pareil au meme.
alors quel est l'interêt pour le programmeur de connaître des détails sur le
passage des fonctions, si le mécanisme concret peut varier tout en restant "du pareil au même" ?
C'est bien le signe que ce qui est important, c'est de connaître les propriétés du passage d'arguments, qu'on le voit en terme d'abstraction -de
boîte noire-, ou bien modélisé d'une certaine façon, en termes d'abstractions plus bas niveau (registres, pile, ...) La connaissance d'une modélisation détaillée ou d'une autre n'a pas bcp d'interêt pour le programmeur (si ce n'est de pouvoir fournir une explication historique à pourquoi la boîte noire a telle ou telle propriété). Il devrait pouvoir raisonner sur l'abstraction elle même jusqu'à s'en faire une image plus précise qu'en raisonnant par analogie avec une modélisation donnée.
Non, je ne crois pas.
Pas besoin donc d'imposer plus de connaissances aux étudiants qui découvrent
la programmation.
Si, tout comme des notions elementaires de mecanique au permis de conduire
Si ils demandent pourquoi c'est comme ça, la réponse est simple : parceque au moment où le langage est conçu, il l'est de manière à être aussi performant que possible sur les machines existantes, et les choix sont donc
fait en fonctions de propriétés de l'architecture des ordinateurs à ce moment. références disponibles pour ceux qui veulent des détails, et zou on continue.
MB
"Samuel Krempp" <krempp@crans.truc.en.trop.ens-cachan.fr> a écrit dans le
message news: 3f7bef44$0$20617$626a54ce@news.free.fr...
le Wednesday 01 October 2003 20:52, mbinder@magicnet.com écrivit :
Non c'est pas faux. Une pile ou une serie de registres speciaux,
c'est du pareil au meme.
alors quel est l'interêt pour le programmeur de connaître des détails sur
le
passage des fonctions, si le mécanisme concret peut varier tout en restant
"du pareil au même" ?
C'est bien le signe que ce qui est important, c'est de connaître les
propriétés du passage d'arguments, qu'on le voit en terme
d'abstraction -de
boîte noire-, ou bien modélisé d'une certaine façon, en termes
d'abstractions plus bas niveau (registres, pile, ...)
La connaissance d'une modélisation détaillée ou d'une autre n'a pas bcp
d'interêt pour le programmeur (si ce n'est de pouvoir fournir une
explication historique à pourquoi la boîte noire a telle ou telle
propriété). Il devrait pouvoir raisonner sur l'abstraction elle même
jusqu'à s'en faire une image plus précise qu'en raisonnant par analogie
avec une modélisation donnée.
Non, je ne crois pas.
Pas besoin donc d'imposer plus de connaissances aux étudiants qui
découvrent
la programmation.
Si, tout comme des notions elementaires de mecanique au
permis de conduire
Si ils demandent pourquoi c'est comme ça, la réponse est simple : parceque
au moment où le langage est conçu, il l'est de manière à être aussi
performant que possible sur les machines existantes, et les choix sont
donc
fait en fonctions de propriétés de l'architecture des ordinateurs à ce
moment.
références disponibles pour ceux qui veulent des détails, et zou on
continue.
"Samuel Krempp" a écrit dans le message news: 3f7bef44$0$20617$
le Wednesday 01 October 2003 20:52, écrivit :
Non c'est pas faux. Une pile ou une serie de registres speciaux, c'est du pareil au meme.
alors quel est l'interêt pour le programmeur de connaître des détails sur le
passage des fonctions, si le mécanisme concret peut varier tout en restant "du pareil au même" ?
C'est bien le signe que ce qui est important, c'est de connaître les propriétés du passage d'arguments, qu'on le voit en terme d'abstraction -de
boîte noire-, ou bien modélisé d'une certaine façon, en termes d'abstractions plus bas niveau (registres, pile, ...) La connaissance d'une modélisation détaillée ou d'une autre n'a pas bcp d'interêt pour le programmeur (si ce n'est de pouvoir fournir une explication historique à pourquoi la boîte noire a telle ou telle propriété). Il devrait pouvoir raisonner sur l'abstraction elle même jusqu'à s'en faire une image plus précise qu'en raisonnant par analogie avec une modélisation donnée.
Non, je ne crois pas.
Pas besoin donc d'imposer plus de connaissances aux étudiants qui découvrent
la programmation.
Si, tout comme des notions elementaires de mecanique au permis de conduire
Si ils demandent pourquoi c'est comme ça, la réponse est simple : parceque au moment où le langage est conçu, il l'est de manière à être aussi performant que possible sur les machines existantes, et les choix sont donc
fait en fonctions de propriétés de l'architecture des ordinateurs à ce moment. références disponibles pour ceux qui veulent des détails, et zou on continue.
MB
M.B.
a écrit dans le message news:
En fait, même sur Intel, quand j'écrivais un noyau temps-réel (où la performance était critique, et qu'on travaillait en assembleur), je passais les paramètres par les régistres. Beaucoup plus rapide.
Oui, personne n'a dit le contraire.
MB
<kanze@gabi-soft.fr> a écrit dans le message news:
d6652001.0310020106.5428afb5@posting.google.com...
En fait, même sur Intel, quand j'écrivais un noyau temps-réel (où la
performance était critique, et qu'on travaillait en assembleur), je
passais les paramètres par les régistres. Beaucoup plus rapide.
En fait, même sur Intel, quand j'écrivais un noyau temps-réel (où la performance était critique, et qu'on travaillait en assembleur), je passais les paramètres par les régistres. Beaucoup plus rapide.
Oui, personne n'a dit le contraire.
MB
M.B.
a écrit dans le message news:
L'architecture date de 1946, d'un certain Mr Von Neumann. Rien de fondamentalement neuf depuis.
Tu veux nous faire rire, ou quoi ?
Non, pas vraiment. Rien de fondamentalement nouveau, disais-je.
La connaissance du fonctionnement de la pile me parait indispensable pour comprendre les differents types de passage d'arguments.
Le passage des arguments est une fonctionalite abstraite definie par le langage, la maniere de l'implementer sur ton architecture n'a aucune importance. Et je ne vois pas l'utilite d'une pile pour passer les arguments, on essaie plutot meme de l'eviter. (Je vois l'utilite de la pile pour garder un contexte quand des appels recursifs sont possibles, mais tous les langages n'autorisent pas le recursivite).
Les arguments des fonctions passent TOUJOURS par la pile. Je suis surpris qu'un programmeur C++ ne sache pas ca.
Je me démande alors comment on fait sur les machines sans pile. Et quand je régarde le code généré sur mon Sparc, je trouve que les paramètres simples se trouve dans les régistres, non dans la pile. C'était pareil sur les machines sous HP/UX.
En fait, le passage des paramètres par la pile est plutôt une solution exceptionnelle aujourd'hui, nécessité par l'architecture périmée de certains processeurs, mais à éviter autant que ce peut.
Mais je ne m'attends pas à ce qu'un programmeur des applications en C++ sache ce genre de détail.
D'autant que toutes ces notions sont relativement simples a assimiler et a comprendre.
Il est possible en effet de presenter une architecture simple possible d'ordinateur. Son utilite pour apprendre a bien programmer me semble douteuse. Elle peut avoir l'effet nocif de laisser penser que la maniere evidente d'implementer quelquechose dessus est la seule possible.
Et il est pour moi evident que mieux on connait le fonctionnement interne d'un ordinateur, mieux on peut le programmer.
C'est bizarre, mais j'ai l'impression que la programmation est un exercice qui consiste a batir des abstractions sur d'autres abstractions. Et quand on programme en C++, les abstractions de plus bas niveaux utilisees sont celles fournies par le langage C++, pas celles de l'architecture ni celles de la micro-architecture.
Le B-A-BA du fonctionnement d'un ordinateur n'a rien d'abstrait. On ne peut pas trouver plus concret.
A penser a trop bas niveau, on fini par croire que faire des soustractions pour mettre en minuscule ou mettre un decalage quand on veut faire une multiplication est savoir bien programmer.
Pas trop bas, juste la ou il faut.
Oui mettre un decalage pour multiplier par une puissance de 2, c'est savoir programmer avec la connaissance de la machine qu'on programme.
La tienne ?
MB
<kanze@gabi-soft.fr> a écrit dans le message news:
d6652001.0310020101.46080242@posting.google.com...
L'architecture date de 1946, d'un certain Mr Von Neumann. Rien de
fondamentalement neuf depuis.
Tu veux nous faire rire, ou quoi ?
Non, pas vraiment. Rien de fondamentalement nouveau, disais-je.
La connaissance du fonctionnement de la pile me parait
indispensable pour comprendre les differents types de passage
d'arguments.
Le passage des arguments est une fonctionalite abstraite definie par
le langage, la maniere de l'implementer sur ton architecture n'a
aucune importance. Et je ne vois pas l'utilite d'une pile pour
passer les arguments, on essaie plutot meme de l'eviter. (Je vois
l'utilite de la pile pour garder un contexte quand des appels
recursifs sont possibles, mais tous les langages n'autorisent pas le
recursivite).
Les arguments des fonctions passent TOUJOURS par la pile. Je suis
surpris qu'un programmeur C++ ne sache pas ca.
Je me démande alors comment on fait sur les machines sans pile. Et quand
je régarde le code généré sur mon Sparc, je trouve que les paramètres
simples se trouve dans les régistres, non dans la pile. C'était pareil
sur les machines sous HP/UX.
En fait, le passage des paramètres par la pile est plutôt une solution
exceptionnelle aujourd'hui, nécessité par l'architecture périmée de
certains processeurs, mais à éviter autant que ce peut.
Mais je ne m'attends pas à ce qu'un programmeur des applications en C++
sache ce genre de détail.
D'autant que toutes ces notions sont relativement simples a
assimiler et a comprendre.
Il est possible en effet de presenter une architecture simple
possible d'ordinateur. Son utilite pour apprendre a bien programmer
me semble douteuse. Elle peut avoir l'effet nocif de laisser penser
que la maniere evidente d'implementer quelquechose dessus est la
seule possible.
Et il est pour moi evident que mieux on connait le fonctionnement
interne d'un ordinateur, mieux on peut le programmer.
C'est bizarre, mais j'ai l'impression que la programmation est un
exercice qui consiste a batir des abstractions sur d'autres
abstractions. Et quand on programme en C++, les abstractions de plus
bas niveaux utilisees sont celles fournies par le langage C++, pas
celles de l'architecture ni celles de la micro-architecture.
Le B-A-BA du fonctionnement d'un ordinateur n'a rien d'abstrait. On ne
peut pas trouver plus concret.
A penser a trop bas niveau, on fini par croire que faire des
soustractions pour mettre en minuscule ou mettre un decalage quand
on veut faire une multiplication est savoir bien programmer.
Pas trop bas, juste la ou il faut.
Oui mettre un decalage pour multiplier par une puissance de 2, c'est
savoir programmer avec la connaissance de la machine qu'on programme.
L'architecture date de 1946, d'un certain Mr Von Neumann. Rien de fondamentalement neuf depuis.
Tu veux nous faire rire, ou quoi ?
Non, pas vraiment. Rien de fondamentalement nouveau, disais-je.
La connaissance du fonctionnement de la pile me parait indispensable pour comprendre les differents types de passage d'arguments.
Le passage des arguments est une fonctionalite abstraite definie par le langage, la maniere de l'implementer sur ton architecture n'a aucune importance. Et je ne vois pas l'utilite d'une pile pour passer les arguments, on essaie plutot meme de l'eviter. (Je vois l'utilite de la pile pour garder un contexte quand des appels recursifs sont possibles, mais tous les langages n'autorisent pas le recursivite).
Les arguments des fonctions passent TOUJOURS par la pile. Je suis surpris qu'un programmeur C++ ne sache pas ca.
Je me démande alors comment on fait sur les machines sans pile. Et quand je régarde le code généré sur mon Sparc, je trouve que les paramètres simples se trouve dans les régistres, non dans la pile. C'était pareil sur les machines sous HP/UX.
En fait, le passage des paramètres par la pile est plutôt une solution exceptionnelle aujourd'hui, nécessité par l'architecture périmée de certains processeurs, mais à éviter autant que ce peut.
Mais je ne m'attends pas à ce qu'un programmeur des applications en C++ sache ce genre de détail.
D'autant que toutes ces notions sont relativement simples a assimiler et a comprendre.
Il est possible en effet de presenter une architecture simple possible d'ordinateur. Son utilite pour apprendre a bien programmer me semble douteuse. Elle peut avoir l'effet nocif de laisser penser que la maniere evidente d'implementer quelquechose dessus est la seule possible.
Et il est pour moi evident que mieux on connait le fonctionnement interne d'un ordinateur, mieux on peut le programmer.
C'est bizarre, mais j'ai l'impression que la programmation est un exercice qui consiste a batir des abstractions sur d'autres abstractions. Et quand on programme en C++, les abstractions de plus bas niveaux utilisees sont celles fournies par le langage C++, pas celles de l'architecture ni celles de la micro-architecture.
Le B-A-BA du fonctionnement d'un ordinateur n'a rien d'abstrait. On ne peut pas trouver plus concret.
A penser a trop bas niveau, on fini par croire que faire des soustractions pour mettre en minuscule ou mettre un decalage quand on veut faire une multiplication est savoir bien programmer.
Pas trop bas, juste la ou il faut.
Oui mettre un decalage pour multiplier par une puissance de 2, c'est savoir programmer avec la connaissance de la machine qu'on programme.
La tienne ?
MB
Jonathan Mcdougall
Pas besoin donc d'imposer plus de connaissances aux étudiants qui découvrent
la programmation.
Si, tout comme des notions elementaires de mecanique au permis de conduire
Quoi?? Très mauvais exemple à mon avis.
Jonathan
Pas besoin donc d'imposer plus de connaissances aux étudiants qui
découvrent
la programmation.
Si, tout comme des notions elementaires de mecanique au
permis de conduire
Pas besoin donc d'imposer plus de connaissances aux étudiants qui découvrent
la programmation.
Si, tout comme des notions elementaires de mecanique au permis de conduire
Quoi?? Très mauvais exemple à mon avis.
Jonathan
Gabriel Dos Reis
writes:
| Gabriel Dos Reis wrote in message | news:... | > writes: | | > [...] | | > | > > ET cela manque a bien des programmeurs. | | > | > Je suis d'accord qu'il est bien de savoir, par exemple, comment | > | > une machine représente les entiers en binaire, mais pour bien de | > | > domaines d'application, ce savoir ne me semble pas indispensable. | > | > Il s'agit de savoir se placer sur le niveau d'abstraction | > | > approprié, qui n'est pas le même si on écrit un driver pour un | > | > composant réseau (gestion des registres, de la DMA, des | > | > interruptions ...) que dans le cas d'une application qui traite | > | > des ordres d'achat / vente à la bourse... | | > | En effet. Si on fait le calcul numérique (ce que font intensemment | > | les programmes du marché), | | > hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le | > calcul numérique représente une minorité. Cela a-t-il changé ? | | Et tu crois que ceux qui font les programmes des marchés sont la | majorité des programmeurs ?
Ce qui pose la question : qu'est-ce que tu as voulu dire par « les programmes du marché » ? Parce que la seule signification que je peux lui donner c'est « les programmes professionnels ». Probablement, tu as voulu dire quelque chose d'autre, mais « les programmes du marché » n'est visibelement pas ce que tu as voulu dire.
-- Gaby
kanze@gabi-soft.fr writes:
| Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> wrote in message
| news:<flvfr87yw9.fsf@sel.cmla.ens-cachan.fr>...
| > kanze@gabi-soft.fr writes:
|
| > [...]
|
| > | > > ET cela manque a bien des programmeurs.
|
| > | > Je suis d'accord qu'il est bien de savoir, par exemple, comment
| > | > une machine représente les entiers en binaire, mais pour bien de
| > | > domaines d'application, ce savoir ne me semble pas indispensable.
| > | > Il s'agit de savoir se placer sur le niveau d'abstraction
| > | > approprié, qui n'est pas le même si on écrit un driver pour un
| > | > composant réseau (gestion des registres, de la DMA, des
| > | > interruptions ...) que dans le cas d'une application qui traite
| > | > des ordres d'achat / vente à la bourse...
|
| > | En effet. Si on fait le calcul numérique (ce que font intensemment
| > | les programmes du marché),
|
| > hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le
| > calcul numérique représente une minorité. Cela a-t-il changé ?
|
| Et tu crois que ceux qui font les programmes des marchés sont la
| majorité des programmeurs ?
Ce qui pose la question : qu'est-ce que tu as voulu dire par
« les programmes du marché » ? Parce que la seule signification que je
peux lui donner c'est « les programmes professionnels ».
Probablement, tu as voulu dire quelque chose d'autre, mais
« les programmes du marché » n'est visibelement pas ce que tu as voulu
dire.
| Gabriel Dos Reis wrote in message | news:... | > writes: | | > [...] | | > | > > ET cela manque a bien des programmeurs. | | > | > Je suis d'accord qu'il est bien de savoir, par exemple, comment | > | > une machine représente les entiers en binaire, mais pour bien de | > | > domaines d'application, ce savoir ne me semble pas indispensable. | > | > Il s'agit de savoir se placer sur le niveau d'abstraction | > | > approprié, qui n'est pas le même si on écrit un driver pour un | > | > composant réseau (gestion des registres, de la DMA, des | > | > interruptions ...) que dans le cas d'une application qui traite | > | > des ordres d'achat / vente à la bourse... | | > | En effet. Si on fait le calcul numérique (ce que font intensemment | > | les programmes du marché), | | > hmm, il n'y a pas si longtemps que ça, tu disais sur ce grooupe que le | > calcul numérique représente une minorité. Cela a-t-il changé ? | | Et tu crois que ceux qui font les programmes des marchés sont la | majorité des programmeurs ?
Ce qui pose la question : qu'est-ce que tu as voulu dire par « les programmes du marché » ? Parce que la seule signification que je peux lui donner c'est « les programmes professionnels ». Probablement, tu as voulu dire quelque chose d'autre, mais « les programmes du marché » n'est visibelement pas ce que tu as voulu dire.