|
PrincipeSi nous pouvons écrire des caractères dans un fichier texte, bien évidemment
nous pouvons écrire du code source, qui pourra être ensuite compilé,
interprété,
envoyé en tant que courrier électronique, affiché dans un navigateur, etc.
Ce peut être du code HTML (page web), du code LaTeX (éditeur de texte), des
ordres SMTP (envoi d'email), le code SQL (bases de données) permettant de créer
une table avec ses variables. Il nous appartient soit de faire appel à
des analyseurs lexicaux (Lex, Flex), soit d'écrire le parser,
un programme qui va parcourir (to parse en anglais) le fichier en entrée.
Nous pouvons par exemple partir d'un fichier de définition de données issues du travail avec un utilisateur exprimant ses besoins, et générer avec le même programme une classe C++, une structure C, une classe Java, une table SQL ou autre, à partir d'un seul fichier d'origine écrit dans un méta-langage (méta = au-dessus) spécifique de notre application, style:
DEBUT_DATA
NOM = mastructure
DEBUT_ITEM
NOM = Nom
TYPE = chaine
TAILLE = 512
DEFAUT = "trucmachin"
FIN_ITEM
DEBUT_ITEM
NOM = Age
TYPE = entier
TAILLE = 4
DEFAUT = 0
FIN_ITEM
FIN_DATA
Les plus pragmatiques intègreront dans le process la fabrication
automatique des fonctions (méthodes) de base que sont la lecture et
l'écriture des données membres, par exemple
LireNom, EcrireNom, LireAge et
EcrireAge.
Citons deux autres applications pratiques. La première consiste à décrire une application API Win32 au moyen d'une liste d'items (variables, fonctions, constantes, contrôles) pour ensuite faire écrire, par un programme générateur de code, les fichiers de base (source, en-tête, ressource, makefile, etc.) prêts à compiler (ou presque). L'autre application, que nous allons voir plus en détails, consiste à se servir de fichiers de référence d'une classification, pour produire un ensemble de pages HTML reliées entre elles et organisées en chapitres, sous-chapitres, paragraphes et autres niveaux, le tout permettant de parcourir la classification à l'aide d'un navigateur.
Exemple HTMLDans le contexte médical français (hospitalier en particulier) il est demandé aux médecins de coder leur activité et l'état des patients. Pour coder l'activité (radiographie, intervention chirurgicale, endoscopie, électrocardiogramme...) il convient de se servir de la Classification Commune des Actes Médicaux ou CCAM. Pour coder l'état des patients (maladies diagnostiquées, symptômes, syndromes, motifs de recours aux soins...) il est fait appel à la Classification Internationale des Maladies ou CIM. La CCAM est française et tourne en routine depuis 2004, la CIM comme son nom l'indique est internationale, traduite dans plusieurs langues et gérée depuis 1948 par l'Organisation Mondiale de la Santé ou OMS (aka World Health Organization, WHO) (http://www.who.int/fr/index.html).
Des sources contenant ces deux classifications sont proposées gratuitement (voyez quand même les notions de copyright sous le lien "légal") sous la forme de fichiers texte avec séparateurs pour les 19000 codes de la CIM, via le site web de l'Agence Technique de l'Information sur l'Hospitalisation ou ATIH (http://www.atih.sante.fr/), et sous forme d'un énorme export de lignes de 128 caractères pour les 7500 codes de la CCAM, via l'Assurance Maladie (http://www.codage.ext.cnamts.fr/codif/ccam/). En l'état, ces classifications sont très peu accessibles au cerveau humain, en tous cas il est impensable de s'en servir au quotidien pour trouver le bon code dans une situation clinique donnée. Les structures responsables des classifications en proposent des versions papier, PDF ou fichiers MS Excel, dont la facilité d'utilisation est toute relative.
L'ergonomie présentée ici est un jeu de pages web, donnant l'illusion de déplier et de replier la classification, en d'autres termes de descendre dans l'arborescence (chapitre, sous-chapitre, rubrique, code) ou de remonter. Les deux classifications, une fois transformées, comportent de 1650 pages HTML (CCAM) à 2300 pages HTML (CIM) générées automatiquement, ainsi qu'un fichier CSS (style) et un fichier Javascript (recherche de code) pour chacune. À cela s'ajoutent les pages d'accueil et d'aide, les seules à être écrites à la main. Pour des raisons de propriété intellectuelle (celle de mon employeur), je peux proposer en ligne sur ce site les classifications générées exprès pour cette utilisation, mais pas le code source des générateurs de code. Cela dit nous verrons des détails sur les programmes en question - cliquez sur le sous-menu (CCAM, CIM).
[màj 15 mars 2008]