Index du site
Google

Générer du code

haut de page  Principe

Si 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.

haut de page  Exemple HTML

Dans 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]

Copyright © 2008 B. Challier • légalcontact Valid XHTML 1.0 Valid CSS 2haut