Les machines de Turing ont été l'un des premiers modèles de calcul, c'est-à-dire qu'elles ont été développées lorsque le calcul lui-même n'était pas très bien compris (vers 1940). Je veux me concentrer sur deux aspects qui (sans doute) ont conduit à ce qu'ils soient le modèle préféré à l'époque, ce qui a conduit à être le modèle le plus établi et donc finalement standard.
Simplicité des preuves
En tant que modèle théorique, les machines de Turing ont le charme d'être "simples" dans le sens où l'état actuel de la machine n'a qu'une taille constante. Toutes les informations dont vous avez besoin pour déterminer l'état suivant de la machine sont un symbole et un numéro d'état (de contrôle). La modification de l'état de la machine est également faible, ajoutant uniquement le mouvement de la tête de la machine. Cela simplifie considérablement les preuves (formelles), en particulier le nombre de cas à distinguer.
Comparez cet aspect avec le modèle RAM (lorsqu'il n'est pas utilisé dans sa forme minimaliste): la prochaine opération peut être n'importe laquelle de plusieurs opérations, qui peuvent accéder à n'importe quel (deux) registres. Il existe également plusieurs structures de contrôle.
Temps d'exécution et utilisation de l'espace
Il y avait (seulement) deux modèles majeurs de calcul qui ont émergé presque simultanément avec Turing Machines, à savoir les fonctions -calculus de Church et recursive de Kleene . Ils ont répondu à la même question que Turing a posée - le Entscheidungsproblem de Hilbert - mais se prêtent beaucoup moins facilement (voire pas du tout) à la définition du temps d'exécution et de l'utilisation de l'espace. En un sens, ils sont trop abstraits pour être ainsi liés à des modèles de machines plus réalistes.λμ
Pour les machines Turing, cependant, les deux notions sont facilement définies (et étaient dans le tout premier article de Turing sur son modèle, si je me souviens bien). Étant donné que les considérations d' efficacité étaient rapidement très importantes pour faire des choses, c'était un avantage certain des machines Turing.
Ainsi, les machines de Turing ont été établies comme le modèle de calcul, qui pourrait être considéré comme une combinaison d '«accident» historique et de certaines de ses propriétés clés. Néanmoins, de nombreux modèles ont été définis depuis et sont très utilisés, notamment pour pallier les défauts des machines Turing; par exemple, ils sont fastidieux à "programmer" (c'est-à-dire définir).
Je n'ai connaissance d'aucune application directe dans la pratique. En particulier, la pratique du calcul a évolué parallèlement (et, au début, principalement indépendamment) à la théorie du calcul. Les langages de programmation ont été développés sans modèles de machine formels. Cependant, il est clair (avec le recul) que de nombreuses avancées dans la pratique du calcul ont été permises par la théorie.
En outre, gardez à l'esprit que la valeur d'un concept théorique pour la pratique doit être mesurée en considérant tous les descendants, c'est-à-dire le travail de suivi, les résultats et les nouvelles idées rendues possibles par ce concept. Et à cet égard, je pense qu'il est juste de dire que le concept de machines Turing (entre autres) a révolutionné le monde.
Les machines de Turing sont un bon exercice mental avec peu d'utilisation pratique. Il n'y a aucun mal à ne pas en avoir. Toutes les applications d'une machine de Turing sont soit intuitives soit une question de religion car elles ne peuvent être ni prouvées ni réfutées.
la source