Contribution à l'efficacité des programmes orientés objet pour processeurs embarqués
| Auteur / Autrice : | Olivier Sallenave |
| Direction : | Roland Ducournau |
| Type : | Thèse de doctorat |
| Discipline(s) : | Informatique |
| Date : | Soutenance le 23/11/2012 |
| Etablissement(s) : | Montpellier 2 |
| Ecole(s) doctorale(s) : | Information, Structures, Systèmes (Montpellier ; École Doctorale ; 2009-2014) |
| Partenaire(s) de recherche : | Laboratoire : Laboratoire d'informatique, de robotique et de micro-électronique (Montpellier ; 1992-....) |
| Jury : | Examinateurs / Examinatrices : Roland Ducournau, Christian Queinnec, Christophe Dony, Floréal Morandat, Olivier Zendra |
| Rapporteurs / Rapporteuses : Christian Queinnec, Erven Rohou | |
| DOI : | 10.70675/edcbe3ebz6a61z48d6z9dcdzd797661d3afd |
Mots clés
Mots clés contrôlés
Résumé
Les systèmes embarqués sont largement utilisés de nos jours. Pour des raisons d'efficacité, les plus contraints en termes de ressources sont toujours programmés en C et en assembleur. L'adoption de langages de plus haut niveau tels que C# ou Java offrirait plus d'abstraction au programmeur, ce qui réduirait les temps de développement et par conséquent le coût de ces systèmes. Certains d'entre eux ont déjà migré vers de tels langages, comme les téléphones mobiles ou les tablettes tactiles, mais ils sont équipés d'une grande quantité de mémoire externe et ne reflètent pas la majorité des systèmes embarqués.Cette thèse s'intéresse à l'implémentation de Java et .NET pour l'embarqué, et plus spécifiquement à la compilation efficace du polymorphisme. Ce polymorphisme génère un certain coût à l'exécution, comme des indirections dans le cas des appels de méthodes (polymorphisme d'inclusion), ou de la duplication de code dans le cas de la généricité (polymorphisme paramétrique). De nombreuses techniques d'implémentation ont été proposées, notamment pour Java. Il reste cependant à identifier lesquelles sont applicables pour le type de systèmes que nous ciblons, et à en concevoir de nouvelles pour certains aspects comme la généricité. Nous partons du principe que les techniques globales (hypothèse du monde clos) sont les mieux adaptées. Par l'analyse de types, nous détectons qu'une partie importante des programmes est monomorphe et qu'elle peut donc être compilée sans surcoût. Pour implémenter le polymorphisme restant, nous choisissons la technique la mieux adaptée au matériel cible. Nous proposons également une implémentation de la généricité qui est adaptée aux systèmes embarqués. D'après nos évaluations, l'impact négatif du polymorphisme sur l'efficacité est largement réduit. L'efficacité du code optimisé devrait s'approcher de celle du C, et les techniques que nous employons pourraient être applicables dans le contexte plus général du chargement dynamique.