OVH Cloud OVH Cloud

Midterm mailing

74 réponses
Avatar
Gabriel Dos Reis
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/#mailing2005-06

-- Gaby

4 réponses

4 5 6 7 8
Avatar
Gabriel Dos Reis
writes:

| Stan ( remove the dots ) wrote:
| > a écrit dans le message de news:
| >
| > >> (La fonction "CloseHandle()" de l'API Win32 est une
| > >> fonction fourre-tout capable de fermer des fichiers,
| > >> libérer des ressources système, etc.)
|
| > > En somme, une fonction virtuelle:-).
|
| > Tu me fais peur.
| > Et si M$ avait déposé un brevet sur la virtualité des fonctions ?
| > ;-)
|
| Ils en auraient du mal. L'OS que j'ai écrit pour le 8086, en
| 1979, avait aussi des fonctions « fourre-toute », dont le
| comportement exact dépendait du type de l'objet. Alors, c'est à
| moi, ce brevêt, et je dois toucher quelque chose pour chaque
| license de Windows:-).

et Simula (1967) dont C++ tire les fonctions virtuelles ?

|
| En fait, j'ai rarement vu un OS sans l'équivalent des fonctions
| virtuelles. Quand j'écris dans une pipe, le comportement est
| bien différent que quand j'écris à un socket ou dans un fichier.
| Autre fois, évidemment, il était question plutôt d'écrire dans
| un fichier ou d'écrire vers l'imprimante ou vers un perforateur
| de ruban, mais le principe était le même.
|
| --
| James Kanze GABI Software
| Conseils en informatique orientée objet/
| Beratung in objektorientierter Datenverarbeitung
| 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|

--
Gabriel Dos Reis

Avatar
kanze
Stan ( remove the dots ) wrote:
a écrit dans le message de news:

Stan ( remove the dots ) wrote:
a écrit dans le message de news:

(La fonction "CloseHandle()" de l'API Win32 est une
fonction fourre-tout capable de fermer des fichiers,
libérer des ressources système, etc.)


En somme, une fonction virtuelle:-).


Tu me fais peur. Et si M$ avait déposé un brevet sur la
virtualité des fonctions ? ;-)

Ils en auraient du mal. L'OS que j'ai écrit pour le 8086,
en 1979, avait aussi des fonctions « fourre-toute », dont
le



De quel OS s'agit-il ?


Celui que j'ai écrit. Il n'a jamais eu un nom ; on l'a écrit
pour des besoins internes, étant donné qu'à l'époque, il n'y en
avait pas pour le 8086. C'était surtout pour les applications
temps-réel ; on pouvait l'utiliser sans périphériques
classiques, par exemple.

Le polymorphisme avait sa source dans la gestion du timer ; une
entrée dans la queue du timer contenait un identificateur
d'objet, et un paramètre ; quand l'heure d'éveil arrivé, on
appelait la fonction « fourre-tout », avec l'objet et le
paramètre, qui, selon le type de l'objet, démarrer un processus,
envoyer un message à une boîte à lettres, positionner un
évenemment, incrémenter un sémaphore...

Par la suite, j'ai rendu cet appel publique. Il servait dans la
gestion des pilotes de périphérique, par exemple : le client
envoyé un bloc de paramètres à une boîte à lettres prédéfinie
pour la périphérique ; il y avait un paramètre dans le bloc qui
précisé un objet de réponse, et quand le pilote avait fini de
traiter la réponse, il positionnait le status dans le bloc de
paramètres, et l'envoyer à la réponse, sans savoir s'il envoyait
un message dans une boîte à lettre (le cas habituel), démarrer
une tâche, positionner un évenement ou ... ne faisait rien --
parce que j'avais introduit un objet particulier qui ne faisait
rien, pour le cas où le client voulait ignorer la réponse.

Malheureusement, quand IBM cherchait un OS pour leur PC, ils
sont allé chez Microsoft, et non à la boîte où je travaillais à
l'époque.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34




Avatar
Stan
a écrit dans le message de news:

Stan ( remove the dots ) wrote:
a écrit dans le message de news:

Stan ( remove the dots ) wrote:
a écrit dans le message de news:

(La fonction "CloseHandle()" de l'API Win32 est une
fonction fourre-tout capable de fermer des fichiers,
libérer des ressources système, etc.)


En somme, une fonction virtuelle:-).


Tu me fais peur. Et si M$ avait déposé un brevet sur la
virtualité des fonctions ? ;-)

Ils en auraient du mal. L'OS que j'ai écrit pour le 8086,
en 1979, avait aussi des fonctions « fourre-toute », dont
le



De quel OS s'agit-il ?

Celui que j'ai écrit. Il n'a jamais eu un nom ; on l'a écrit
pour des besoins internes, étant donné qu'à l'époque, il n'y en
avait pas pour le 8086. C'était surtout pour les applications
temps-réel ; on pouvait l'utiliser sans périphériques
classiques, par exemple.

Le polymorphisme avait sa source dans la gestion du timer ; une
entrée dans la queue du timer contenait un identificateur
d'objet, et un paramètre ; quand l'heure d'éveil arrivé, on
appelait la fonction « fourre-tout », avec l'objet et le
paramètre, qui, selon le type de l'objet, démarrer un processus,
envoyer un message à une boîte à lettres, positionner un
évenemment, incrémenter un sémaphore...



[...]

Les sources sont-ils tombés dans le domaine public ? ;-)
J'aurais bien aimé jeter un oeil dedans...
Typiquement, j'aimerai améliorer un projet :
c'est un superviseur de serveur en réseau ( sous Windows ) dans lequel des
tâches sont placées
dans une queue et lancées quand l'heure est arrivée.
Ces tâches peuvent être très variées, certaines étant synchrones d'autres
pas.
J'étais assez content de la conception sauf que certaines tâches mettaient
du temps
à rendre la main. La prochaine version devra lancer les tâches dans un
thread
et permettre une gestion asynchrone des réponses.

Globalement je pense qu'il y a des idées à prendre d'un OS multi-tâche
conçu avec une approche objet.

--
-Stan




Avatar
kanze
Stan ( remove the dots ) wrote:
a écrit dans le message de news:

Stan ( remove the dots ) wrote:
a écrit dans le message de news:

Stan ( remove the dots ) wrote:
a écrit dans le message de news:

(La fonction "CloseHandle()" de l'API Win32 est une
fonction fourre-tout capable de fermer des fichiers,
libérer des ressources système, etc.)


En somme, une fonction virtuelle:-).


Tu me fais peur. Et si M$ avait déposé un brevet sur la
virtualité des fonctions ? ;-)

Ils en auraient du mal. L'OS que j'ai écrit pour le 8086,
en 1979, avait aussi des fonctions « fourre-toute », dont
le



De quel OS s'agit-il ?

Celui que j'ai écrit. Il n'a jamais eu un nom ; on l'a
écrit pour des besoins internes, étant donné qu'à l'époque,
il n'y en avait pas pour le 8086. C'était surtout pour les
applications temps-réel ; on pouvait l'utiliser sans
périphériques classiques, par exemple.

Le polymorphisme avait sa source dans la gestion du timer ;
une entrée dans la queue du timer contenait un
identificateur d'objet, et un paramètre ; quand l'heure
d'éveil arrivé, on appelait la fonction « fourre-tout »,
avec l'objet et le paramètre, qui, selon le type de
l'objet, démarrer un processus, envoyer un message à une
boîte à lettres, positionner un évenemment, incrémenter un
sémaphore...



[...]

Les sources sont-ils tombés dans le domaine public ? ;-)


Pas ce que je sache. C'est du code que j'ai écris en 1979,
n'oublie pas. À l'époque, le mouvement Open Source n'était pas
qu'il est aujourd'hui.

J'aurais bien aimé jeter un oeil dedans...
Typiquement, j'aimerai améliorer un projet :

c'est un superviseur de serveur en réseau ( sous Windows )
dans lequel des tâches sont placées dans une queue et lancées
quand l'heure est arrivée.

Ces tâches peuvent être très variées, certaines étant
synchrones d'autres pas. J'étais assez content de la
conception sauf que certaines tâches mettaient du temps à
rendre la main. La prochaine version devra lancer les tâches
dans un thread et permettre une gestion asynchrone des
réponses.

Globalement je pense qu'il y a des idées à prendre d'un OS
multi-tâche conçu avec une approche objet.


La conception n'était pas réelement ce qu'on appelle objet. Je
n'en avais jamais entendu parlé à l'époque. Mais les problèmes
sont souvent précisement ceux que l'objet résoud le mieux.
Alors, une bonne conception va fatalement avoir un peu de
l'objet avant la lettre. (Tu ne dirais pas que Unix est de
conception objet parce que quand tu appelles write sur /dev/tty,
il se comporte différement que quand tu l'appelles sur un
fichier disque.)

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34





4 5 6 7 8