ACCUEIL

Consignes aux
auteurs et coordonnateurs
Nos règles d'éthique
Auteurs : soumettez
votre article en ligne
Autres revues >>

Technique et Science Informatiques

0752-4072
Revue des sciences et technologies de l'information
 

 ARTICLE VOL 21/7 - 2002  - pp.1009-1032
TITRE
Une approche pour réduire la complexité du flot de contrôle dans les programmes C

RÉSUMÉ
La conception de compilateurs effectuant de la parallélisation ou de l’optimisation est, en général, plus simple et plus efficace si le flot de contrôle est bien structuré. La méthode proposée dans cet article, appelée Calipso analyse un programme en langage C afin de transformer toute instruction rompant la compositionnalité du flot de contrôle (break, return, switch...) en branchements et de suprimer tous les branchements. Basée sur la technique de suppression des branchements mise en oeuvre dans le compilateur Mc CAT, Calipso exploite certaines propriétés détectées sur l’arbre syntaxique pour supprimer tous les branchements d’un sousprogramme en seulement trois passes. Calipso éliminant la grande majorité des redondances de la méthode Mc CAT, le code produit est plus efficace. Initialement appliqué à C, elle peut se transposer facilement à d’autres langages, notamment à Fortran. Sa mise en oeuvre est très simple puisqu’elle est complètement exprimée par une grammaire attribuée.

ABSTRACT
Static analysis is simpler and more efficient if the control flow is well structured. The method proposed in this paper, called Calipso, analyzes programs in order to replace all nonstructured instructions (i.e., break, return, switch...) by branches and, then, remove all branches. Based on the technique used in McCAT, Calipso uses some properties exposed by the syntactic tree in order to remove all branches in only three passes. The code which is produced is then more efficient because some redundancies are avoided. The implementation of Calipso is straightforward because it is completely defined by an attribute grammar.

AUTEUR(S)
Hugues CASSÉ, Louis FÉRAUD, Christine ROCHANGE, Pascal SAINRAT

MOTS-CLÉS
compilation, transformation de programme, élimination des branchements, langages impératifs.

KEYWORDS
compilation, program transformation, branch removal, imperative languages.

LANGUE DE L'ARTICLE
Français

 PRIX
• Abonné (hors accès direct) : 12.5 €
• Non abonné : 25.0 €
|
|
--> Tous les articles sont dans un format PDF protégé par tatouage 
   
ACCÉDER A L'ARTICLE COMPLET  (199 Ko)



Mot de passe oublié ?

ABONNEZ-VOUS !

CONTACTS
Comité de
rédaction
Conditions
générales de vente

 English version >> 
Lavoisier