Relation entre langage et mathématique

Des standards de logique, il en existe certes une panoplie, ce sont les langages de programmation tel que C, C++, C#, Java, Javascript, PHP, Perl, VB, Cobol, LISP, Prolog, SQL, etc ... Mais tous ces systèmes exigent qu'un expert en programmation les utilise. Le commun des mortel, ou même un expert scientifique, s'il est ignare en programmation, ne peut se servir de ces outils sans l'aide d'un programmeur. Il serait cependant merveilleux de pouvoir exprimer cette logique dans un langage le plus près possible du langage naturel, afin de minimiser l'apprentissage nécessaire à l'utilisation de l'outil de programmation. Bien que les langages de programmation tentent de s'approcher le plus possible du langage naturel, ces outils restent une curiosité ésotérique pour la plupart des gens, principalement à cause de la rigueur que cela exigent pour programmer correctement. Le langage naturel est un outil de communication très peu rigoureux qui tolère un tas de manquements aux règles de base. La programmation par contre, est tout le contraire et exige une rigueur mathématique pour que l'ordinateur comprenne les instructions. Programmer l'ordinateur en langage naturel exigerait donc de réconcilier le langage naturel avec le langage mathématique.

Le langage naturel contient plusieurs types de mots. Dans la langue française, nous en dénombrons onze, que je classerai ici selon quatre grandes catégories:

Les entités:   noms communs, noms propres, pronoms
Les relations:   verbes, prépositions, conjonctions
Les attributs:   déterminants, adjectifs, adverbes
Les perceptions:   interjections et onomatopées

En fait, les trois premières catégories (entités, relations et attributs) sont aussi des perceptions, mais elles sont abstraites et doivent être combinées pour exprimer la percepton originale tandis que les interjections et les onomatopées sont la perception sans mentalisation. Ces perceptions amènent souvent de façon implicite une émotion ou sentiment propre à la situation, difficilement exprimable en d'autres mots des trois premières catégories.

De même, les langages informatiques utilisent des mots, le terme le plus souvent utilisé pour désigner ces objets étant donnée. Comme les mots, les données peuvent être regroupés en types genéraux dont je présente ici une catégorisation possible:

Les données texte:   caractères, chaînes de caractères, champs mémo
Les données numériques:   octets, entiers, réels, booleéns
Les données groupées:   listes, tableaux, tables, enregistrements, structures, objets
Les expressions:   procédures, opérateurs, fonctions, algorythmes
Les données sensorielles:   couleurs, images, sons

Bien que les données sensorielles soient conservées dans un format de structure, la sémantique de ces données n'est pas la même qu'une structure car elles représentent directement une réalité extérieure à la structure informatique, ce qui n'est pas le cas des données groupées dont chaque élément peut conserver sa sémantique propre s'il est séparé de son groupe.
Autre fait à noter: les expressions ne sont généralement pas considérées comme des données mais plutôt comme le programme lui-même. Pourtant, si j'inscris dans un programme une expression telle que a = b + c, tout le monde s'accordera pour dire que a, b et c sont des données (probablement numériques, quoi que l'on pourrait vouloir joindre deux textes ou listes). Cependant, les opérateurs = et + seront rarement considérés comme des données. Il faut pourtant comprendre que les opérateurs sont généralement implémentés en tant que fonction et peuvent jouer le même rôle. En fait, un opérateur est une fonction à deux paramètres dont la syntaxe diffère d'une fonction normale. On pourrait donc réécrire l'expression ci-dessus de la façon suivante: egal(a, plus(b, c)). De plus, l'expression pourrait être conservée sur disque ou dans une base de données avec une structure comme (=,a,(+,b,c)).

Maintenant, faisons le parallèle entres les mots et les données. Il est certes évident que les données texte représentent une liste de mots qu'il faut pouvoir décomposer en plus petites unités sémantique. C'est le processus d'interprétation du langage naturel qui nous est si cher. Les données sensorielles quand à elles, nous donne le même genre d'information que les interjections et les onomatopées, une conscience pré-sémantique plus concréte et ancrée à la réalité, moins mentalisée. Les types de mots que sont les relations fonctionnent de la même façon en français et en anglais que les opérateurs des langages informatiques. Ils ont le même type de syntaxe et servent la même fonction sémantique de relier deux éléments pour en créer un troisième. Quand aux données groupées, elles représentent en général des entités dont les différents éléments sont les caractéristiques observables et distinctives de ces entités. ILs restent les données numériques qui sont certes très bien assorities aux attributs mais il demeure un très grave problème sémantique avec ce type de données que j'exposerai plus loin. Nous avons donc pour l'instant une correspondance entre mots de la langue et données informatique selon le tableau ci-bas:

Les données texte (langage)tout type de mot
Les données numériques (attributs)déterminants, adjectifs, adverbes
Les données groupées (entités)noms communs, noms propres, pronoms
Les expressions (relations)verbes, prépositions, conjonctions
Les données sensorielles (perceptions)interjections et onomatopées

Ce que les tableaux présentés nous suggérent, c'est que l'utilisation des mots/données peut se faire à un stade pré-sémantique, ou la conscience est encore une perception sans sémantique subsjective, à un stade post-sémantique, lorsque la conscience est entreposée dans ses véhicules que sont les mots, en plus du stade proprement sémantique ou les données s'élaborent et se complexifient pour créer la sémantique, principale activitée du mental. Et je vous ferai remarquer ici que la sémantique s'exprime généralement selon une même syntaxe générale:

entité relation attribut
entité relation entité
attribut relation attribut
nombre opérateur nombre
groupe opérateur groupe

La relation se retrouve toujours au milieu entre deux valeurs, que ce soit une entité ou un attribut. La valeur du résultat obtenu peut alors être utilisée avec un autre opérateur et une autre valeur (entité ou attribut) afin de produire un nouveau résultat. Et la chaîne des opérations peut se poursuivre ainsi à l'infini. Cette syntaxe est valable pour la plupart des langages de programmation, les langues latines et anglosaxonnes. D'autres langues et certains langages informatiques vont modifier l'ordre des types mais les groupements et les enchaînements garderont les mêmes principes. Par example, un langage informatique inscrira l'expression a = b + c de la façon suivante: a (b c +) =. Dans ce type de syntaxe, le verbe ou la relation se trouve après ses deux paramètres.

Quelque soit la syntaxe, c'est à dire l'ordre de paramètres et de la relation, nous avons cepepdant presque toujours cette constante: une relation et ses deux paramètres. Il y a bien quelques excpetion comme les opérateurs unitaires (négation logique et négatif mathématique) mais la majorité de la communication humaine se fait avec la triade présentée ci-haut. L'ordre n'a pas vraiment d'importance pourvu qu'on s'entende sur celui que l'on va utiliser.

La sémantique des nombres

Qu'est-ce que ça signifie un nombre? Si je dis le chiffre 3, tout le monde comprend qu'il faut compter jusqu'à trois pour exprimer cette quantité mais tous se demanderont trois quoi? Trois pommes ou 3 degrés celsius. 3 mètres de hauteur ou 3 secondes. Je viens d'énumérer quatres données numériques qui utilisent toutes le nombre 3 mais aucune n'a la même sémantique. En fait un nombre tout seul est une information coupée de son contexte qui n'a pas plus de sens qu'une phrase de politicien citée hors contexte. De l'autre côté, les adjectifs et les adverbes sont des données très contextuelles mais qui manquent de la précision des nombres. Il est grand, il agit rapidement, deux contextes d'adjectif et d'adverbe respectivement qui bien que notant précisément le contexte de hauteur et de temps, ne nous permette pas d'évaluer précisément l'étendue de l'objet perçu.

En contruction

 - conscience de perception à entité+relation+attribut à mots
 - le processus du mental
 - entité,relation,attribut est la triade de base du mental
 - application de la triade sur le réel devient ETS
 - application de la triade sur chacune des dimensions du réel
      devient position,direction,quantité
 - observation de la variation génère +,=,-

Conclusion En décorticant la programmation informatique et le langage naturel, nous retrouvons: - les phases de la conscience adjacentes à la sémantique - les composantes de base du mental - la limite de la connaissance humaine