« Les six fonctions des langages informatiques | Accueil | »

25 septembre 2008 - Divers

La double articulation des langages informatiques

La double articulation est le phénomène qui explique comment le langage, avec quelques dizaines de signes différents seulement, peut décrire le monde entier et exprimer une infinité d'idées différentes.

On verra ici :
- la double articulation en linguistique
- la double articulation dans les langages informatiques

On se posera à la fin une question à laquelle, par paresse, on n'essaiera même pas d'apporter une réponse.

La double articulation en linguistique

D'après André Martinet, un discours peut se découper en éléments plus petits à deux niveaux différents :

- d'abord, une phrase est une succession d'unités de signification minimales ou monèmes. Un monème a un son et un sens. Il s'agit le plus souvent de mots ou de parties de mots. Par exemple, footballeur contient deux monèmes : football et la terminaison -eur.

Les mots ont un sens mais ils n'apportent aucune information. Les mots Web, chaise, récent évoquent une invention, un type d'objet, un qualificatif, mais personne n'apprend quoi que ce soit en les entendant prononcer séparément. Pour transmettre une information et amorcer une communication, il faut combiner (articuler) les unités minimales de sens et produire une phrase, qui est une unité minimale de transmission de l'information : Le Web est plus récent que les chaises. On peut être d'accord ou pas avec une phrase.

- ensuite, le monème lui-même se décompose en unités phonologiques minimales ou phonèmes. Les phonèmes ont un son mais pas de sens. Ils correspondent souvent à une lettre dans la langue écrite. Le monème lettre contient 6 lettres mais seulement 4 phonèmes, car tt correspond à un seul phonème et le dernier e est muet. Au contraire, axe contient plus de phonèmes que de lettres à cause de la lettre x ([ks]). Certains, comme Mallarmé pour la langue anglaise, ont tenté d'associer des significations partielles, en tout cas des connotations, aux sons ou aux syllabes, mais d'une manière générale Saussure a raison : « le signe est arbitraire », le mot est formé de phonèmes qui n'ont pas de rapport avec le sens du mot.

La puissance d'un tel système lui permet d'exprimer toutes les nuances imaginables de la pensée à partir d'une quarantaine de sons élémentaires.

Tous les systèmes de codes ne sont pas pourvus de la double articulation. En vérité, la double articulation est une qualité rare dans le monde des symboles.

Ainsi dans le code de la route, le nombre de messages possibles est non pas infini, mais limité au nombre de panneaux définis dans le « langage ». Le panneau est, comme la phrase dans les langues humaines, l'unité minimale de transmission de l'information. En l'occurrence, il possède une fonction conative ou référentielle : « arrêtez-vous », « cette rue est une impasse », « des cervidés traversent souvent cette route ». Ce code n'a qu'une articulation embryonnaire. Les couleurs du panneau, sa forme, les symboles qui occupent sa partie centrale ont un certain sens minimal et s'assemblent entre eux d'un panneau à l'autre, mais ces combinaisons sont très limitées et le code de la route a un pouvoir expressif très limité.

Certaines langues, sous leur forme écrite, ne possèdent pas la double articulation. La langue française écrite articule les lettres en mots et les mots en phrases, de même que la langue française parlée articule les phonèmes en monèmes et les monèmes en discours. En chinois et en japonais, la langue parlée utilise comme chez nous la double articulation (phonèmes, mots, discours). Dans la langue écrite, en revanche, la situation est plus ambigüe. À première vue, les idéogrammes seraient les unités minimales porteuses de sens et n'auraient pas d'articulation interne : d'où la nécessité de milliers et de milliers de signes, afin de représenter les milliers et les milliers de mots. En réalité, les mots sont souvent écrits avec deux ou plusieurs idéogrammes ; et les idéogrammes eux-mêmes, comme l'atome de Thomson, s'analysent graphiquement en éléments tels que la « clé », pourvue d'un peu de sens qui peut concourir au sens de l'idéogramme. L'unité minimale de sens est, dans ces langues, particulièrement difficile à isoler.

Le système hangeul utilisé pour écrire la langue coréenne est un cas encore plus particulier. Non seulement le hangeul, contrairement à ses voisins, adopte résolument la double articulation (lettres, mots, phrases), mais il va plus loin et propose une sorte de troisième articulation. Les 24 jamo (lettres) sont construits par application de règles logiques et visuelles (certains imitent la position de la langue et de la bouche), en partant d'un tout petit nombre d'éléments graphiques disposés à l'intérieur du caractère : segments, cercles qui sont les véritables unités graphiques minimales. Ces trois ou quatre traits de base, par une combinaison de combinaisons de combinaisons, suffisent à exprimer toute la richesse du monde et des concepts humains.

La double articulation dans les langages informatiques

Les langages informatiques, je ne l'ai vu nulle part exprimé clairement jusqu'à présent (cela serait-il trop évident ?), sont pourvus de la double articulation. Soit l'exemple suivant :

  printf("Hello, world");

Humains comme ordinateurs vont, consciemment ou pas, lire ce programme en suivant une procédure à deux niveaux :

1. l'analyse lexicale.

L'analyse lexicale est une étape de l'interprétation des programmes par les ordinateurs. Elle peut être réalisée par un outil tel que lex.

L'analyse lexicale regroupe les lettres en « mots », c'est à dire en unités minimales dotées d'une signification ou d'un rôle dans le langage considéré. Les « lettres » sont définies par le langage ; il s'agit des caractères (A à Z) mais également des chiffres et des signes de ponctuation. Les mots sont pour certains définis dans le langage ou (variables) par le programmeur lui-même à l'intérieur du programme. Les signes de ponctuation peuvent être considérés comme des mots, car ils jouent un rôle sémantique déterminant dans les langages informatiques. Les mots du programme ci-dessus seront donc les suivants :

  printf
(
"
Hello, world
"
)
 ;

Par exemple :
- printf est une fonction : ce mot sert à l'affichage d'un message sur l'écran ;
- les guillemets (") indiquent le début ou la fin d'une chaîne de caractères.

2. L'analyse syntaxique.

Isolés, ces mots ne produiraient aucune action. Le code printf n'est pas suffisant, il ne serait même pas accepté tel quel par l'ordinateur.

Il faut combiner les mots entre eux afin de produire des instructions, équivalents des phrases. L'instruction printf("Bonjour"); aura un effet concret : elle affichera un message sur l'écran de l'ordinateur.

Cette seconde étape est l'analyse syntaxique, qu'un ordinateur peut réaliser à l'aide d'un outil tel que yacc.

Pour les langages informatiques sont-ils pourvus de la double articulation ?

Les concepteurs de langages informatiques ont peut-être, directement ou indirectement (via des ouvrages théoriques sur l'informatique), entendu parler du principe de double articulation des langues humaines.

Plus probablement, ils se sont trouvés face à des ordinateurs pourvus de claviers. Ces claviers, qui servaient également à saisir du texte classique (noms de personne, chiffres comptables, voire œuvres littéraires), avaient des touches correspondant à des lettres, chiffres, signes de ponctuation. Ils ont donc, par facilité, conçu des langages qui utilisaient ces signes. Le nombre de programmes a réaliser était très supérieur au nombre de touches du clavier (contrairement à une cabine de pilotage d'avion, où il y a à peu près autant de touches que de commandes possibles) et l'utilisation des lettres du clavier encourageait à comparer les « textes » informatiques aux productions des langues humaines : dès lors la double articulation a dû s'imposer naturellement.

Cela a fonctionné tellement bien que personne n'a jamais trouvé une meilleure manière de fournir des instructions à un ordinateur. Des premiers langages des années 50 (Fortran, Lisp) aux plus récents et répandus aujourd'hui (C, Java, C#), jusqu'aux codes descriptifs tels que HTML et XML, la quasi-totalité des langages utiles et utilisés reposent sur ce principe.

Il faut toutefois s'interroger : si la programmation informatique avait été inventée non aux États-Unis, mais en Chine ou au Japon, qui sait à quoi auraient ressemblé les langages informatiques ? Des informaticiens habitués à des langues écrites où le rapport entre le sens et la forme est radicalement différent du quasi-mimétisme qui existe chez nous entre l'écrit et l'oral n'auraient-il pas, sans doute, mis au point des langages informatiques dont nous n'avons pas même idée ?

Précédent : les six fonctions du langage ;
Suivant : le style du programmeur.

Publié par thbz le 25 septembre 2008

0 commentaire(s)

Publier un commentaire :




Se souvenir de moi ?


Textes et photos (sauf mention contraire) : Thierry Bézecourt - Mentions légales