Langage formel Linguistique Logique mathématique Raisonnement mathématique Dans de nombreux contextes (scientifique, légal, etc.) l'on désigne par langage formel un mode d'expression plus formalisé et plus précis (les deux n'allant pas nécessairement de pair) que le langage de tous les jours (voir langage naturel).
En mathématiques, logique et informatique, un langage formel est formé :
L'inconvénient est évident : ne pas connaître le sens de l'énoncé empêche de savoir quelles sont les transformations pertinentes et nuit à l'intuition du raisonnement. Ainsi, il est bon de savoir lire rapidement un énoncé en langage formel et de le traduire tout aussi rapidement en un ou plusieurs énoncés du langage naturel, plus significatif.
Dès le début de l'informatique les chercheurs ont développés des outils d'aide à la traduction des langages, afin de passer du format externe qui est fondamentalement linéaire au format interne de l'ordinateur qui est fondamentalement arborescent. Les outils les plus connus sont Lex et Yacc. Lex est un outil d'aide à la construction d'analyseurs lexicaux et Yacc est un outil d'aide à la construction d'analyseurs syntaxiques.
Afin de faire une analyse sémantique, on doit utiliser un assistant de preuve, car l'ordinateur n'a pas d'intuition. Qui dit sémantique dit que l'on veut donner un sens au langage formel. Définir le sens des expressions langage de programmation en vue d'exécuter ses programmes est relativement aisé, du fait que ces langages formels ont été conçus pour signifier des suites d'actions élémentaires de la machine.
Pour démontrer la correction d'un programme, il faut démontrer qu'il satisfait certaines propriétes, ce qui revient à démontrer un théorème de mathématiques, il n'y a, en revanche, aucune méthode infaillible, car la correction d'un programme est un problème de décision indécidable. Ainsi le prouveur doit se contenter d'appliquer certaines heuristiques et souvent demander l'aide de l'utilisateur humain. Cependant, grâce à ses heuristiques et à sa puissance de calcul, l'ordinateur explore des milliers de voies que l'utilisateur humain n'aurait pas pu tester en plusieurs années, accélérant ainsi le travail du mathématicien.
Voir l'article assistant de preuve.
Comme pour toute discipline, le langage de la discipline ne préexiste évidemment pas à la discipline elle-même. Il a donc fallu utiliser des langues qui n'ont pas été construites pour les mathématiques, qui peu à peu se sont enrichies d'un jargon spécifique.
Ainsi, bien des énoncés mathématiques anciens nous paraissent aujourd'hui avoir une formulation plutôt alambiquée, surchargée de périphrases quand il n'existe pas de mots pour désigner certains concepts.
Le jargon s'est donc enrichi au cours des siècles et continue encore d'évoluer.
Parallèlement à ce phénomène, s'est progressivement formé le langage formel qui est devenu celui que nous connaissons, le jargon naturel ne s'étant montré ni assez précis ni assez concis.
Cette vision des mathématiques fut mise à mal en 1931 lorsque le logicien Kurt Gödel annonça son célèbre théorème d'incomplétude qui stipule que dans tout système formel contenant l'arithmétique, il existe au moins une proposition indécidable.
Pour revenir aux langages formels, la conséquence de ce théorème est la suivante : étant donné un langage formel, ses axiomes, et son système de déduction formel capables d'exprimer l'arithmétique, on peut énoncer une proposition de ce langage qui ne peut pas être prouvée dans ce système, ainsi que sa négation. On aura beau formaliser les mathématiques, on trouvera toujours un énoncé formel dont la démonstration oblige à quitter ou élargir ce formalisme en ajoutant de nouveaux axiomes, ce qui introduira immanquablement de nouveaux énoncés indécidables. Ainsi l'approche formaliste, qui reste pourtant valable, a désormais des limites connues.
Dans la seconde moitié du XX siècle, l'avènement des ordinateurs et de l'informatique a donné une place particulière aux langages formels en tant qu'outils et en tant qu'objets d'étude, ce qui était relativement nouveau.
Le langage formel mathématique contemporain est décrit dans cet article.
Les langages formels sont aussi l'objet d'étude d'une branche à part entière de la logique et de l'informatique théorique. Cette étude est fortement liée à la théorie de la calculabilité. En effet le propre d'un langage formel, en tant que langage, c'est de pouvoir être traité par un ordinateur, ou par son modèle formel : la machine de Turing.
Typiquement, un alphabet serait : {a, b}, et un mot sur cet alphabet serait : ababba.
Un langage typique sur cet alphabet, et qui contiendrait ce mot, serait l'ensemble de tous les mots qui contiennent le même nombre de symboles a et b.
Le mot vide (le mot de longueur nulle) est autorisé et est noté ε. Bien que l'alphabet soit un ensemble fini et que chaque mot ait une longueur finie, un langage peut très bien contenir une infinité de mots (parce que la longueur de ses mots peut ne pas être bornée).
Plusieurs opérations peuvent être utilisées pour fabriquer de nouveaux langages à partir de ceux qu'on connaît. Supposons que L1 et L2 soient des langages sur un certain alphabet commun.
Формален език | Formální jazyk | Formale Sprache | Formal language | Lenguaje formal | Formaali kieli | Linguaggio formale (matematica) | 形式言語 | 형식 언어 | Formele taal | Język formalny | Linguagem formal | Limbaje formale | Формальный язык | Formálny jazyk | Biçimsel dil kuramı | 形式语言
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Langage formel".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world