Migration de langage de programmation

Résumé

L'application Carmel de calcul scientifique a été développée dans les laboratoires de recherche de Lille en collaboration avec les équipes de EDF. Cette application a connu de nombreuses évolutions au fil du temps du fait de son succès en recherche et pour résoudre des problèmes concret dans l'industrie. Les équipes de développement ressentent maintenant la nécessité de moderniser l'application, entre autre en réorganisant le code (Fortran) pour éventuellement utiliser un paradigme de programmation Orienté à Objets (C++).

La connaissance de Fortran ou C++ n'est pas nécessaire pour le stage qui consistera à adapter les outils d'analyse logiciel Moose pour pouvoir analyser l'application Carmel.

Mots-clés

programmation, manipulation de programme,

Équipe

RMod

Encadrants

Nicolas Anquetil, Frédéric Guyomarch, Anne Etien

Présentation détaillée

Contacter les auteurs du sujet

Si vous êtes intéressés, contactez un des auteurs par mail:

Pré-requis

Programmation OO, travail en équipe, pro-activité, envie d'apprendre.

La connaissance de Fortran ou C++ n'est pas nécessaire.

Contexte

La modélisation numérique est un outil important dans tous les domaines de l'ingénierie ou de la science (ex. biologie, automobiles, centrales électriques, etc.). Elle permet de faire des études à un niveau arbitraire de détail ou de proposer et tester des nouvelles solutions plus rapidement et à moindre coût. Mais l’efficacité des solutions repose sur la capacité des ingénieurs de manipuler facilement des abstraction mathématiques complexes dans le code. Malheureusement, pour des raisons historiques, ces solutions sont souvent implémentées en Fortran, un langage conçu dans les années 50 qui manque d'outillage et d'abstractions de haut niveau. Cette situation est vue comme un problème par les scientifiques qui cherchent a transformer les applications Fortran en C ou C++. Ce projet est une collaboration entre deux laboratoires de l'université: L2EP et CRIStAL.

Problématique

Les problématiques sont diverses, mais on commencera par réaliser des outils de restructuration de l'ancien code Fortran. Ces outils permettront de manipuler le code existant pour identifier les dépendances (notamment dépendances circulaires et inter-dépendances) entre les différents modules et proposer (semi-)automatiquement des restructurations qui diminuent ces dépendances.

Travail à effectuer

Il faudra poursuivre le travail déjà entamé de modélisation de programmes Fortran dans la plateforme Moose.

Des visualisations de ce code devront être proposées pour aider les développeurs, qui ne sont pas tous des programmeurs de formation, a construire un code qui réponde aux normes de qualité logicielle.

Bibliographie

  1. S. Ducasse, T. Gîrba, O. Nierstrasz, "Moose: An Agile Reengineering Environment", SIGSOFT Softw. Eng. Notes, 30(5):99-102, Sept. 2005, doi = 10.1145/1095430.1081723
  2. G. Fox, X. Li, Z. Qiang, W. Zhigang, “A prototype of Fortran-to-Java converter”, Concurrency: Practice and Experience, 9(11):1047–1061, 1997.
  3. R.W. Grosse-Kunstleve, T.C. Terwilliger, N.K. Sauter, P.D. Adams, “Automatic Fortran to C++ conversion with FABLE”, Source Code for Biology and Medicine, 7(1):5, May 2012.
  4. J. Brant, D. Roberts, B. Plendl, J. Prince, “Extreme Maintenance: Transforming Delphi into C#”, in Proceedings of the 2010 IEEE International Conference on Software Maintenance, ICSM'10, pp. 1–8, 2010. IEEE Computer Society.