Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1500 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Déterminer si un programme s'arrête ou non ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Déterminer si un programme s'arrête ou non ?

n°2238016
Onexion
Posté le 15-09-2014 à 20:10:25  profilanswer
 

Bonjour à tous !  
Je m'appelle Nicolas et je démarre ma première année de DUT informatique.
Il y a pas longtemps mon prof de Mathématiques discrètes nous a parler d'une chose qui a titiller ma curiosité.
Nous parlions des ensembles, et de relation d'appartenance et dans un exemple il a dit qu'il était impossible de créer un programme qui détermine si un autre programme s'arrête ou non. Clairement j'ai pas bien compris en quoi c'est impossible, même dans le contexte.  
 
Il a également fait référence au paradoxe du barbier : "Le conseil municipal d'un village arrête une ordonnance qui enjoint à son barbier (masculin) de raser tous les habitants masculins du village qui ne se rasent pas eux-mêmes et seulement ceux-ci."  
 
Bon maintenant que je suis allé chercher ça sur wikipedia j'ai un bout de réponse pour le barbier (illustation à but didactique du paradoxe de Russell).
 
Mais qu'en est-il de l'infaisabilité d'un tel programme ?  
Merci à qui perdra la raison en répondant à ma question  :)


Message édité par Onexion le 15-09-2014 à 20:10:59
mood
Publicité
Posté le 15-09-2014 à 20:10:25  profilanswer
 

n°2238018
flo850
moi je
Posté le 15-09-2014 à 21:09:05  profilanswer
 

Pour le premier, je n'ai pas d'"explication simple
 
pour le second:

  • si le barbier se rase lui même, alors il ne doit pas se raser (il ne doit raser QUE ceux qui ne se rasent pas eux même)
  • si il ne se rase pas alors il doit se raser ( il doit raser TOUS les homme qui ne se rasent pas)


---------------

n°2238019
czh
Posté le 15-09-2014 à 21:27:25  profilanswer
 

Salut,
 
Sur Wikipédia il y a ça aussi : http://fr.wikipedia.org/wiki/Probl [...] arr%C3%AAt (Problème de l'arrêt)
Il y a le coin discussion pour débattre : http://fr.wikipedia.org/wiki/Discu [...] arr%C3%AAt
 
Dans le premier paragraphe, il y a écrit qu'il y a des cas de boucle infinie bien identifiables où le programme pourra répondre catégoriquement oui.  
 
La programmation ce n'est pas toujours des algorithmes simples.
Et quand on commence à utiliser la récursivité, les structures de données dynamiques, le programme capable de répondre à la question "ce programme a-t-il une fin ?" n'existe pas.
 
Edit : d'autres trucs intéressants
http://fr.wikipedia.org/wiki/Analy [...] programmes (Analyse statique de programmes)
http://fr.wikipedia.org/wiki/M%C3% [...] ormatique) (Méthode formelle)


Message édité par czh le 15-09-2014 à 22:07:45
n°2238020
flo850
moi je
Posté le 15-09-2014 à 21:41:51  profilanswer
 

Pas besoin de structures complexes,  il faut du non deterministe
 

Code :
  1. while(rand() > 0.5){
  2.     sleep(1);
  3. }
  4. exit();


toute les seconde , ton programme à une chance sur deux de s'arreter, mais avec un  beaucoup  de chance, il peut continuere indefiniment


---------------

n°2238034
rufo
Pas me confondre avec Lycos!
Posté le 16-09-2014 à 11:33:42  profilanswer
 

ca rejoint une problématique similaire : écrire un programme de déterminer si un autre programme est un virus ou pas. C'est pas déterministe. En effet, une combinaison d'actions effectuées peut très bien l'être dans le cadre d'un programme "normal", mais effectuées dans un autre contexte, ça peut être malveillant (ex : suppression de fichiers, envoi d'un carnet d'adresses par mail...).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2238100
Onexion
Posté le 16-09-2014 à 18:10:58  profilanswer
 

Merci à tous d'avoir répondu aussi vite ! C'est passionnant tout ça :)
Je vais surement avoir besoin de plusieurs années pour assimiler correctement cette notion mais je pense avoir compris le problème de l'arrêt dans les grandes lignes.
J'ai quand même du mal a faire le rapprochement avec ceci dans l'étude des ensembles :
X ∈ X et sa "cause à effet"  : X ∉ X


Message édité par Onexion le 16-09-2014 à 18:12:14

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Déterminer si un programme s'arrête ou non ?

 

Sujets relatifs
Programme (comme grep) capable de lire depuis stdinrécupération programme xilinx xc8536xl
aide pour un programme en cDifficulté à compiler un programme
Programme .bat invisibleProgramme qui utilise un autre programme
[HELP ] Explication d'un Programmetemps d'exécution d'un programme et messages d'affichage
Besoin d'aide pour mon programme javascriptHelp pour un programme java
Plus de sujets relatifs à : Déterminer si un programme s'arrête ou non ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR