Nous avons examiné la raison d'être de la représentation
informatique des écritures (entre les octets et les polices),
et son évolution historique aboutissant au standard
Unicode. Nous sommes ainsi en mesure de comprendre la relation
entre (par exemple : fichier evam.txt) la séquence d'octets E0A48FE0A4B5E0A48220E0A4AEE0A4AFE0A4BE20E0A4B6E0A58DE0A4B0E0A581E0A4A4E0A4AEE0A58D
203D20657661E1B983206D6179C48120C59B727574616D203D20E5A682E698AFE68891E8819E et le fragment de
texte en deux langues et trois écritures एवं मया श्रुतम् =
evaṃ mayā śrutam = 如是我聞
Nous nous intéressons aujourd'hui à la traduction de ces connaissances
sous forme de programmes,
en d'autres termes à leur mise en œuvre par programme.
On présentera deux sortes de réalisations informatiques, la première
servant d'outil pour réaliser la seconde :
en C, où on manipule des octets, avec des programmes
exécutables sous Unix "en ligne de commande",
destinés principalement à des transformations de fichier à fichier ;
en JavaScript, où on ne voit que des caractères
Unicode,
les programmes étant exécutés par un navigateur Web
et destinés à produire des résultats immédiatement affichables par le
navigateur.
La technique C s'applique immédiatement comme outil de
réalisation pour
une classe de programmes JavaScript,
qui est présentée en détail ici.
Le recours à C a un certain intérêt pédagogique dans le cadre du
présent enseignement.
En
effet, les programmes C mettent explicitement en œuvre toute la chaîne
qui conduit d'une suite d'octets à une suite de caractères
telle qu'elle a été décrite dans les cours n° 1 et 4. Il apparaissent
donc ici comme une mise en pratique directe de la théorie.
Mais
l'utilisation professionnelle de C est réservée à des spécialistes
patentés, et selon toute vraisemblance les lecteurs de ces pages
se serviront plutôt de Perl, de Java ou de PHP - pour se limiter aux
langages enseignés dans le cadre du Master Plurital.
Il est donc utile d'examiner brièvement la manière dont ces langages
traitent la même question.
L'emploi de ces langages modernes et puissants devrait aplanir toutes
difficultés :
c'est vrai tant que l'on reste dans le plan de base,
avec
des numéros Unicode qui ne dépassent pas 16 bits,
mais l'exploration des plans supplémentaires réserve
des
surprises !
Voici donc une page entièrement consacrée à une petite expérience
comparative avec Perl, PHP-5, JavaScript et Java.
La technique
C
est en 3 volets :
Lecture
et écriture octet par octet :
Cette opération de base n'est pas si limpide qu'on pourrait le croire.
Elle est traitée en détail, et mise en œuvre dans le programme lirOct.c.
Application de utf8ToESC au
transcodage automatique des programmes JavaScript visés à la section
suivante.
Notes techniques sur la programmation en C :
Pour retrouver la signature d'une fonction,
l'interface à
laquelle elle appartient,
ou encore la définition des opérateurs "bit à bit", on peut se reporter
à la page documentaire
http://www.space.unibe.ch/comp_doc/c_manual/C/cref.html
Pour s'assurer qu'on écrit du code portable, car
conforme
aux spécifications les plus strictes,
il convient de se prémunir contre le laxisme invétéré des compilateurs C
et de compiler ses programmes avec les options -Wall (= tous les warnings)
et -pedantic (= la norme ANSI la plus stricte)
c'est-à-dire par la commande
gcc
-Wall -pedantic lenom_du_programme.c
en ne tolérant aucun avertissement !
La technique JavaScript
présentée ici
vise la contruction d'instruments de translittération
"au
vol".
L'idée est que les écritures exotiques créent souvent un obstacle aux
yeux des étrangers,
et que l'ordinateur peut parfaitement apporter à qui le désire son aide
en matière de translittération,
dans un sens ou dans l'autre !
Elle est exposée en détail pour un outil annexe à une
page
documentaire sur l'écriture
de l'arménien classique,
qui effectue la translittération suivant le système de
Hübschmann-Meillet-Benveniste (HBM),
celle qu'utilise la Revue
des Études Arméniennes , et qui est considérée
comme officielle par le site armenie.online.