Abstract de la publi numéro 3116

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 sous-programme 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.