🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #88

Re: [HS] conception (was: question 9.6 de la FAQ)

#88
From: Emmanuel Delahaye
Date: Sun, 06 Oct 2002 15:46
51 lines
3859 bytes
In 'fr.comp.lang.c', "Enoch@Earth" <enochatearth@wanagrodoudou.fr> wrote:
[x-post fr.comp.developpement]
[fu-2 fr.comp.developpement]

> Emmanuel, j'ai une question qui n'est pas directement li�e au C, mais 
> qui m'int�resse. Je suis en train de faire chauffer la cervelle pour 
> tenter de lire un fichier ayant un format complexe, d'en tirer les infos 
> que je veux. C'est assez compliqu� (plusieurs boucles while imbriqu�es).
> Quelle est la m�thode que tu utilises pour programmer un algorithme 
> 'relativement' complexe? Est-ce qu'il faut syst�matiquement tout faire 
> sur le papier avant, ou bien passer apr�s quelques r�flexions au 
> programme, quitte � passer dans le debugger tr�s rapidement? Je trouve 
> aussi que la r�tro-action avec le debugger permet de voir des choses 
> qu'on n'aurait pas pu voir sur le papier.
> 
> Tu vas me dire d'aller le plus loin possible sur le papier, mais bon, ce 
> que je veux savoir, c'est est-ce qu'on peut aller vers le clavier alors 
> qu'on sait pertinemment qu'on a pass� certaines difficult�s sous silence?

Je pense que la reflexion 'papier' est bonne pour mettre en place 
l'algorithme principal. Il faut d�terminer tr�s vite si on a affaire � une 
simple logique combinatoire (un �v�nement, une action), ou � une logique 
s�quencielle (un �venement dans un etat donn� donne une action et un 
�ventuel changement d'�tat). 

Dans la plupart des cas, il s'agit de logique s�quencielle. On entre donc 
dans une phase de conception bien pr�cise bas�e sur la description d'une 
machine � �tats finis. (aka FSM ou Finite State Machine).

La difficult� consiste alors � d�finir la machine, c'est � dire : 

Les �v�nements (les entr�es)
Les �tats
Les transitions (changement d'�tats ou non)
Les actions (sorties activ�es par les transitions)

Une fois qu'on a �a, le fonctionnement du syst�me est mod�lis�, et le 
codage devient trivial (j'ai �crit un 'noyau' FSM en C-ISO qui permet de 
coder n'importe quelle machine � �tats finis).

R�sultat : on peut enfin se concentrer sur l'essentiel (reflechir sur le 
fonctionnement de la machine).

-- 
-ed- emdel at noos.fr ~]=[o
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
C-library: http://www.dinkumware.com/htm_cl/index.html

"I would like a cup of coffee, without cream."
"Sorry, we're out of cream."
"Then I'll have a cup of coffee without milk."
Technical Details
Message-ID: <Xns929FB4BF9C0C2hsnoservernet@130.133.1.4>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!uni-berlin.de!e118.dhcp212-198-96.noos.FR!not-for-mail
References: <annd29$9js$1@wanadoo.fr> <Xns929EDF640AB7Dhsnoservernet@130.133.1.4> <annl37$8db$1@wanadoo.fr> <3D9F5CC5.6030807@nospam.fr> <annnve$722$1@wanadoo.fr> <Xns929FAAD1E6D4hsnoservernet@130.133.1.4> <anotiu$60r$1@news-reader10.wanadoo.fr> <Xns929F7A7AC60FFhsnoservernet@130.133.1.4> <anpk3r$r89$1@wanadoo.fr>

Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII
X-Google-Thread: 102e15,e2bde2194e352904,start
X-Google-Attributes: gid102e15,public
X-Google-Thread: f9822,9327bb78a680e737
X-Google-Attributes: gidf9822,public
X-Google-ArrivalTime: 2002-10-06 08:46:07 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!uni-berlin.de!e118.dhcp212-198-96.noos.FR!not-for-mail
From: Emmanuel Delahaye <emdelNOSPAM@noos.fr>
Newsgroups: fr.comp.lang.c,fr.comp.developpement
Subject: Re: [HS] conception (was: question 9.6 de la FAQ)
Followup-To: fr.comp.developpement
Date: 6 Oct 2002 15:46:06 GMT
Organization: World Company
Lines: 51
Message-ID: <Xns929FB4BF9C0C2hsnoservernet@130.133.1.4>
References: <annd29$9js$1@wanadoo.fr> <Xns929EDF640AB7Dhsnoservernet@130.133.1.4> <annl37$8db$1@wanadoo.fr> <3D9F5CC5.6030807@nospam.fr> <annnve$722$1@wanadoo.fr> <Xns929FAAD1E6D4hsnoservernet@130.133.1.4> <anotiu$60r$1@news-reader10.wanadoo.fr> <Xns929F7A7AC60FFhsnoservernet@130.133.1.4> <anpk3r$r89$1@wanadoo.fr>
NNTP-Posting-Host: e118.dhcp212-198-96.noos.fr (212.198.96.118)
X-Trace: fu-berlin.de 1033919166 16787028 212.198.96.118 (16 [98276])
User-Agent: Xnews/5.04.25
X-face: &^QSr'ztO>vp64+s[Gbcxojr0l\;9Xx9**b0B^{6:(mEW?9fU}\rU]rdLYEKSD9a0ok=\,iXcNFm{qN_}nFV8#m+pQyV-g3kLi0+?]0RS@`jDAE[QlWO}I2|eq6#M~%iuJO2xz