Il existe des liens extrêmement profonds et omniprésents entre la logique et l'informatique. Pour comprendre ce qu'ils peuvent être, gardez à l'esprit que l'informatique est également appelée «technologie de l'information» ou «informatique», ce qui signifie que les systèmes informatiques capturent, traitent et fournissent des informations. Eh bien, la logique est une chose similaire. Il étudie comment les informations sont capturées dans les phrases et comment il est possible qu'une déclaration soit la conséquence d'une autre, c'est-à-dire comment son contenu d'information est déjà présent dans une autre déclaration (ou collection de déclarations). En ce sens, la logique et l'informatique sont essentiellement les mêmesdiscipline, en se concentrant sur différents aspects. Les logiciens (Church, Kleene, Turing, Post et leurs étudiants et collègues) ont créé la discipline de l'informatique, et de nombreux logiciens continuent de contribuer à l'informatique, notamment Jean-Yves Girard et ses étudiants.
Voici quelques applications standard de la logique en informatique:
La conception des circuits numériques est entièrement basée sur la logique de proposition, à tel point que ses ingénieurs l'appellent "conception logique" plutôt que "conception de circuits". Même l'écriture d'un programme informatique implique souvent de concevoir sa «logique». (Notez que la "logique" dans ce dernier sens est une idée informelle plutôt qu'une logique formelle, utilisée pour faire référence au flux d'informations à travers le programme et si elles sont traitées correctement.)
La logique des prédicats et son cousin mathématique, la théorie des ensembles, sont utilisés dans divers langages informatiques , par exemple le langage SQL pour les requêtes de bases de données relationnelles. Il existe également des langages de programmation basés sur la logique, appelés "langages de programmation logiques".
La représentation des connaissances , que vous avez déjà mentionnée, a de nombreux formalismes basés sur la logique. Même s'il utilise des formalismes non logiques, beaucoup d'entre eux ont encore une signification logique et sont donc basés sur la logique.
La logique probabiliste, où les énoncés n'ont pas seulement des valeurs vraies / fausses, mais des niveaux de certitude / incertitude, est de plus en plus le fondement des systèmes d'apprentissage automatique .
Si vous voulez déclarer formellement ce que fait un programme, c'est-à-dire donner une spécification de programme , vous finirez par utiliser une certaine forme de langage logique. En effet, il existe de nombreux langages de spécification de programme, comme Z et B, qui sont basés sur la logique des prédicats et la théorie des ensembles. Il existe également des langages de spécification basés sur la logique équationnelle, comme le mélèze. Les informaticiens inventent souvent de nouvelles logiques pour représenter les besoins de l'informatique, par exemple, la logique de Hoare et la logique de séparation, ou ils prennent et développent diverses formes sous-utilisées de logiques traditionnelles, telles que la logique temporelle et la logique modale, et les développent davantage.
Si vous voulez vérifier si un programme fait ce qu'il est censé faire, vous finissez par utiliser non seulement le langage de la logique, mais l'ensemble de la machinerie de la logique: théorie des preuves, théorie des modèles et procédures de décision. La technologie de vérification se développe maintenant à pas de géant et je m'attends à ce que, dans une dizaine d'années environ, elle soit utilisée de façon routinière pour presque tous les développements logiciels.
En fait, les liens entre la logique et l'informatique sont si profonds et omniprésents que je dirais qu'il est difficile d'être un bon informaticien sans une compréhension approfondie de la logique.
La raison pour laquelle certains scientifiques de l'IA sous-estiment la logique à ce moment-ci est que certains des premiers développeurs de l'IA avaient proposé la logique standard comme outilplutôt qu’une fondation. L'IA, de par sa nature même, promet de délivrer de la magie. Nous n'avons pas à faire le dur travail de programmation des systèmes pour produire des résultats. Ils seraient en mesure de déterminer par eux-mêmes comment produire des solutions car ils seraient «intelligents». La logique semblait montrer la voie car si les systèmes informatiques comprenaient la logique et savaient comment traiter les informations en utilisant les règles de la logique, ils seraient capables de fournir de la magie. Ce genre de foi dans la logique était, rétrospectivement, déplacé. En premier lieu, la logique standard est trop forte et trop faible à la fois. Elle est trop forte en ce sens que les règles de logique sont trop générales pour concevoir des procédures efficaces. C'est aussi trop faible parce que c'est la logique conçue par les mathématiciens pour les besoins des mathématiques et ça ne marche pas. Nous n'avons pas le vocabulaire nécessaire pour traiter de nombreux autres types d'informations du monde réel que les systèmes d'IA doivent gérer (tels que l'incertitude, les informations contextuelles telles que le temps, le changement, les connaissances, l'agence, etc.). Ainsi, l'IA subit actuellement un contrecoup contre la logique. Mais je pense que, quand ils surmonteront ce contrecoup, les scientifiques de l'IA se rendront compte que toutes les nouvelles méthodes sont toujours basées surlogique, au sens large .