Algorithmes, Langages et Information

Sommaire

Présentation du groupe ALI

Le groupe ALI fait suite au groupe ADI, et s'est constitué vers la fin 2005 à partir de membres du groupe ADI et de nouveaux membres travaillant sur le thème des langages de programmation.

Le logiciel et le traitement numérique d'informations tendent à remplacer, assister ou créer de nouveaux systèmes matériels et processus physiques. Si le coût de duplication du logiciel est négligeable en comparaison avec celui de la production de systèmes physiques, la fiabilité et la sécurité des système logiciels peuvent être plus difficiles à établir que celles des matériels qu'ils remplacent. C'est précisément à ces notions de fiabilité du logiciel, de protection de l'information et de sécurité que s'intéressent les membres du groupe Algorithmes, Langages et Information.

Membres

Activités de recherche

Protection de l'information

La protection de l'information recouvre aussi bien les théories et techniques de codage à utiliser afin qu'elle résiste aux bruits qui viennent en perturber la transmission, que les techniques à mettre en œuvre pour en préserver l'authenticité ou la confidentialité, et leurs fondements mathématiques. Il y a dans ce domaine une distance très faible et une interaction très forte entre les fondements mathématiques et les applications: les objets généralement étudiés en cryptographie proviennent directement des mathématiques (algèbre discrète, théorie algébrique des nombres, combinatoire, etc.), et les avancées mathématiques ou algorithmiques influent directement sur la sécurité ou la performance des systèmes en question.

Les recherches menées dans ce thème sont généralement effectuées en collaboration avec le projet Codes de l'INRIA-Rocquencourt et le laboratoire XLIM de l'université de Limoges.

Résultats récents sur le thème de la protection de l'information.

Langages de programmation

Les langages de programmation sont à la base du développement de tout composant logiciel, et, afin de minimiser les coûts associés à ces développements, on leur demande d'être à la fois expressifs, fiables, efficaces, et à même de produire des logiciels dont le coût de maintenance est minimisé. Dans cette optique, la sémantique précise des langages, et des analyses comme le typage statique contribuent de façon essentielle à chacun de ces objectifs.

Nous nous intéressons plus spécifiquement aux langages fonctionnels de la famille ML. Cette famille contient au moins une implémentation de qualité industrielle (Objective Caml, développé à l'INRIA), à laquelle nous contribuons. Le langage ML est aussi un excellent représentant des langages de programmation algorithmiques utilisable comme support d'études de concepts de programmation très variés. Sa sémantique formelle, tant statique que dynamique, est bien étudiée et sert de cadre mathématique à la formalisation d'extensions visant à améliorer l'expressivité, la fiabilité, ou l'efficacité des langages de programmation.

Les recherches menées dans ce thème sont généralement effectuées en collaboration avec le projet Gallium (ex-Cristal) de l'INRIA-Rocquencourt, le laboratoire Preuves, Programmation et Systèmes (PPS) réunissant l'université Paris 7 et le CNRS, ainsi que le Laboratoire d'Informatique de l'université Paris 6 (LIP6).

Résultats récents sur le thème des langages de programmation.

Domaines d'application

Protection de l'information

La protection de l'information numérique trouve ses racines dans des besoins issus de divers domaines. Dans le domaine des télécommunications, on cherche à protéger le canal de transmission contre le bruit ambiant, à résoudre des problèmes de synchronisation de séquences, ainsi qu'à protéger la confidentialité des échanges dans des environnements fortement contraints (par exemple le cas de la téléphonie mobile). Dans le domaine audiovisuel, on souhaite protéger les images ainsi que les séquences audio et vidéo contre une utilisation frauduleuse. Dans le domaine du stockage des données numériques, on veut cette fois préserver l'intégrité des données malgré une dégradation du support d'enregistrement (CD-ROM, mémoire ECC). Dans le cadre du commerce électronique, enfin, on cherche à contrôler les accès, à garantir l'authenticité de documents et l'identité des personnes, ainsi qu'à s'assurer de la validité de transactions au moyen de signatures numériques.

Langages de programmation

Le domaine général du développement logiciel est le domaine d'application de ce thème au sens large. Le typage statique fournissant une détection précoce d'erreurs qui auraient sinon lieu à l'exécution, les domaines où la fiabilité du logiciel est importante constituent des champs d'application de ces travaux. Les capacités d'abstraction et la discipline de programmation apportées par le typage tendent à renforcer la qualité, et donc la fiabilité, des logiciels. L'enseignement de la programmation et de la théorie des langages de programmation constituent un autre champ d'application: le langage Caml, au travers de l'implémentation Caml-Light, utilisée dans les classes préparatoires, en est un exemple tout à fait caractéristique. Enfin, le langage Objective Caml et plus particulièrement les outils syntaxiques qui l'entourent pourraient être exploités plus intensivement dans les domaines d'application généralement couverts par ce qu'on appelle les «langages dédiés» ou DSL(Domain specific languages): des langages de programmation conçus spécialement pour remplir une tâche donnée, par opposition aux langages généralistes tels les langages de programmation classiques.


Ce document a été traduit de LATEX par HEVEA