• Aucun résultat trouvé

Informatique (et logique et linguistique)

1.1 Pour une histoire croisée

1.1.3 Informatique (et logique et linguistique)

C’est à cette même période, et souvent avec les mêmes influences, qu’on voit émer-ger les scientifiques définissant la science de l’informatique. Nous avons conclu la partie précédente avec David Hilbert qui est connu pour avoir proposé en 1900 au congrès in-ternational des mathématiciens à Paris, 23 problèmes, dont certains ne sont toujours pas résolus (Hilbert 1902). L’un d’entre eux est le problème de la décision : le fait de déter-miner de façon mécanique, par un algorithme, si un énoncé se dérive dans un système de déduction sans autre axiome que ceux de l’égalité. Peut-on écrire un algorithme qui décide si un énoncé en logique du premier ordre est valide ? La réponse est négative, mais il faut être en mesure de définir précisément une opération et un calcul.

En fait, il faudra attendre 1936 pour avoir les prémisses d’une réponse à cette question de Hilbert par Alan Mathison Turing (Londres 1912 - Wilmslow 1954). Les travaux de Turing sont aujourd’hui largement connus et diffusés, et ils sont considérés comme fondateurs pour l’informatique. Pour répondre au problème de Hilbert, Turing démontre

1.1 Pour une histoire croisée

(a) Gottfried Leibniz (b) Gottlob Frege (c) Bertrand Russel

(d) Giuseppe Peano (e) Rudolf Carnap (f) Hans Reichenbach

Figure 1.1 – Quelques figures d’une histoire de la logique

qu’il existe des problèmes indécidables (nous ne sommes pas capables de décider s’il est possible de donner une réponse) (Turing 1937 ; Newman et Turing 1942). De manière très schématique, pour y parvenir il introduit un objet abstrait de calcul. Il est défini comme devant simuler un humain calculant, ce qui devra conduire à la construction d’une véritable machine à calculer. Dans le même temps, il introduit l’idée d’une différence entre programmation et programme. Ces principes sont à l’origine de la définition des algorithmes et de la calculabilité, sans lesquels nous ne pourrions avoir d’ordinateur.

Un autre chercheur également à l’origine des ordinateurs est Von Neumann. Il a donné son nom à l’architecture utilisée dans la quasi-totalité des ordinateurs modernes. Il dis-tingue quatre parties : l’unité des traitements, l’unité de séquençage des opérations, la mémoire qui contient à la fois le programme et les données, et un système d’entrée et de sortie (Birkhoff et Von Neumann 1936). Von Neumann est largement influencé par les mathématiques de l’époque, mais a également travaillé sur les aspects d’ingénierie. Van Neumann n’était pas un logicien et c’est là qu’on voit apparaître la nécessaire complé-mentarité entre spécialistes de la description des calculs formels et ingénieurs capables de les incarner afin de construire une véritable machine de calcul.

Turing est aussi largement cité pour son immense capacité à ouvrir des champs entiers de recherche. Ses travaux, tant en cryptographie qu’en morphogénèse restent fondateurs. Dans notre contexte Turing revêt une autre importance. Il est en effet considéré comme le fondateur de l’intelligence artificielle (IA) avec sa définition du test de Turing (Turing 1950). Ce qui est intéressant est que pour définir l’IA, Turing présuppose le traitement de la langue pour s’attaquer à la question de l’IA. Nous savons aujourd’hui qu’il n’en est

Chapitre 1. Pour une histoire croisée : linguistique, informatique et logique

rien, et qu’il convient de redéfinir ce type de test en dehors de la langue naturelle pour ne pas superposer les difficultés.

En 1936, Alonzo Church (Washington 1903 - Hudson 1995) apporte la réponse au problème de Hilbert (Church 1940 ; Church 1951). Church était le directeur de thèse de Turing et c’est lui qui donne le nom de « machine de Turing » à la proposition de Turing. Pour Church, le problème de l’indécidabilité s’incarne dans leλ-calcul, et le corollaire est l’indécidabilité dans le calcul des prédicats. Ce calcul se définit par la notion d’abstraction (l’opérateurλ) et par l’application fonctionnelle :

— λx.M est une fonction sans nom sur le paramètre x et le corps M (abstraction) — MN est l’appel de la fonction M avec le paramètre N (application)

Le calcul se définit à partir d’une unique règle basée sur la substitution : la β-réduction :

(λx.M )N→β M [x := N ]

Cette proposition est à l’origine de la programmation fonctionnelle. Il est intéressant de noter que les réponses différentes à la même question sont à l’origine de paradigmes de programmation très différents et toujours en vigueur (programmation impérative et fonctionnelle).

Ces deux propositions sont également à la base de travaux majeurs pour l’informa-tique qui ont donné la « thèse de Church » (appellation introduite par Stephen Kleene (Hartford 1909 - Madison 1994), (Kleene 1943), puis devenue « thèse de Church-Turing »). Cette proposition est une définition mathématique du concept intuitif de fonction cal-culable. Turing a montré l’équivalence entre les machines de Turing et le λ-calcul en 1937 (Turing 1937). Ainsi, tout problème de calcul qui peut être résolu par une machine de Turing, peut également l’être par le λ-calcul. Une version plus explicite de sa thèse est que ce qui est explicitement calculable, et en particulier par un système informatique, peut l’être par une machine de Turing. Cette propriété a deux conséquences intéressantes, d’une part tous les langages de programmation sont équivalents et d’autre part que toute théorie suffisante pour capturer les raisonnements mathématiques est incomplète (il existe des énoncés qu’on ne peut ni démontrer, ni réfuter).

Les mathématiques et la logique jouent un rôle important dans la définition de l’in-formatique théorique. Dans le même temps, la question des langages est intrinsèque à cette science. Elle se décale par rapport aux questions de la linguistique puisqu’elle se concentre sur les langages (non-naturels), mais elle n’exclut pas la question de la langue, comme le montre la définition du test de Turing pour l’IA. Mais plus encore, nous savons que les travaux de Turing furent d’une grande importance pendant la seconde guerre mondiale autour de la cryptographie pour la traduction automatique. Il ne faudrait pas oublier qu’après cette guerre le traitement de la langue va lui aussi être largement in-fluencé par Turing et utiliser des approches analogues aux traitements cryptographiques. Ce type de traduction systématique sera fortement critiqué dans le rapport Alpac en 1966, (Committee 1966). Ce dernier permettra de déplacer le centre d’intérêt de la traduction automatique à la linguistique informatique.

Un autre chercheur généralement considéré comme fondateur de l’informatique est Claude Elwood Shannon (Petoskey 1916 - Medford 2001). Sa proposition principale est