Vers une programmation fonctionnelle praticable

La production de logiciels informatiques ne se résume pas à la réalisation de « gros » programmes nécessitant des années d'effort fournies par des équipes imposantes. Bien souvent, on a besoin de petits programmes, dont la durée de vie est assez courte et qui sont écrits par une ou deux personn...

Full description

Bibliographic Details
Main Author: Serrano, Manuel
Language:FRE
Published: Université de Nice Sophia-Antipolis 2000
Subjects:
Online Access:http://tel.archives-ouvertes.fr/tel-00505235
http://tel.archives-ouvertes.fr/docs/00/50/52/35/PDF/Serrano.pdf
id ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-00505235
record_format oai_dc
spelling ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-005052352013-01-07T17:54:16Z http://tel.archives-ouvertes.fr/tel-00505235 http://tel.archives-ouvertes.fr/docs/00/50/52/35/PDF/Serrano.pdf Vers une programmation fonctionnelle praticable Serrano, Manuel [INFO:INFO_SE] Computer Science/Software Engineering Non disponibles La production de logiciels informatiques ne se résume pas à la réalisation de « gros » programmes nécessitant des années d'effort fournies par des équipes imposantes. Bien souvent, on a besoin de petits programmes, dont la durée de vie est assez courte et qui sont écrits par une ou deux personnes. La course incessante à l'innovation des entreprises informatiques les contraint fréquemment à renoncer aux techniques de génie logiciel pour opter pour des techniques légères favorisant un développement court et souple. Pour favoriser ce type de réalisations nous avons conçu un environnement de programmation qui repose sur un langage particulièrement concis et sur quelques outils permettant un développement rapide d'applications réalistes (un compilateur optimisant, des outils de mise au point, de navigation, etc.). Le choix du langage de programmation pour un tel projet est primordial car c'est le langage qui façonne le système. Au risque de paraître hérétique, nous avons choisi Scheme, un langage fonctionnel, parce que cette famille de langages permet une écriture d'une concision presque sans égal. Scheme est un petit langage. C'est parfois un atout (par exemple pour l'enseignement) mais c'est aussi souvent un handicap. Nous avons donc dû lui adjoindre de nombreuses extensions. Nous en présenterons deux au cours de cette soutenance: un langage de module et une couche objet. Nous nous efforcerons de montrer les liens reliant ces deux constructions et nous montrerons l'exploitation que nous avons faite de certaines caractéristiques de Scheme (comme, par exemple, le typage dynamique) pour augmenter encore l'expressivité de ce langage. Scheme est connu pour être difficile à implanter (parce que sa concision repose sur un haut niveau d'abstraction sémantique): c'est pourquoi nous avons consacré une grande partie de nos recherches à la compilation de ce langage. Nous présentons quelques uns de ces travaux dans le mémoire. Notre compilateur Scheme occupe une place privilégiée dans notre environnement car c'est lui qui permet la production d'applications efficaces. Toutefois, il arrive que les programmes doivent être travaillés afin que leur performances soient améliorées. Sur les architectures récentes c'est souvent une mauvaise utilisation de la mémoire (allocation, récupération) qui est la cause de performances moyennes. Lorsque le compilateur seul ne parvient pas à optimiser les programmes sources, les utilisateurs de notre environnement peuvent avoir recours à deux outils permettant l'étude de la gestion de la mémoire dans leurs applications. 2000-09-11 FRE habilitation ࠤiriger des recherches Université de Nice Sophia-Antipolis
collection NDLTD
language FRE
sources NDLTD
topic [INFO:INFO_SE] Computer Science/Software Engineering
Non disponibles
spellingShingle [INFO:INFO_SE] Computer Science/Software Engineering
Non disponibles
Serrano, Manuel
Vers une programmation fonctionnelle praticable
description La production de logiciels informatiques ne se résume pas à la réalisation de « gros » programmes nécessitant des années d'effort fournies par des équipes imposantes. Bien souvent, on a besoin de petits programmes, dont la durée de vie est assez courte et qui sont écrits par une ou deux personnes. La course incessante à l'innovation des entreprises informatiques les contraint fréquemment à renoncer aux techniques de génie logiciel pour opter pour des techniques légères favorisant un développement court et souple. Pour favoriser ce type de réalisations nous avons conçu un environnement de programmation qui repose sur un langage particulièrement concis et sur quelques outils permettant un développement rapide d'applications réalistes (un compilateur optimisant, des outils de mise au point, de navigation, etc.). Le choix du langage de programmation pour un tel projet est primordial car c'est le langage qui façonne le système. Au risque de paraître hérétique, nous avons choisi Scheme, un langage fonctionnel, parce que cette famille de langages permet une écriture d'une concision presque sans égal. Scheme est un petit langage. C'est parfois un atout (par exemple pour l'enseignement) mais c'est aussi souvent un handicap. Nous avons donc dû lui adjoindre de nombreuses extensions. Nous en présenterons deux au cours de cette soutenance: un langage de module et une couche objet. Nous nous efforcerons de montrer les liens reliant ces deux constructions et nous montrerons l'exploitation que nous avons faite de certaines caractéristiques de Scheme (comme, par exemple, le typage dynamique) pour augmenter encore l'expressivité de ce langage. Scheme est connu pour être difficile à implanter (parce que sa concision repose sur un haut niveau d'abstraction sémantique): c'est pourquoi nous avons consacré une grande partie de nos recherches à la compilation de ce langage. Nous présentons quelques uns de ces travaux dans le mémoire. Notre compilateur Scheme occupe une place privilégiée dans notre environnement car c'est lui qui permet la production d'applications efficaces. Toutefois, il arrive que les programmes doivent être travaillés afin que leur performances soient améliorées. Sur les architectures récentes c'est souvent une mauvaise utilisation de la mémoire (allocation, récupération) qui est la cause de performances moyennes. Lorsque le compilateur seul ne parvient pas à optimiser les programmes sources, les utilisateurs de notre environnement peuvent avoir recours à deux outils permettant l'étude de la gestion de la mémoire dans leurs applications.
author Serrano, Manuel
author_facet Serrano, Manuel
author_sort Serrano, Manuel
title Vers une programmation fonctionnelle praticable
title_short Vers une programmation fonctionnelle praticable
title_full Vers une programmation fonctionnelle praticable
title_fullStr Vers une programmation fonctionnelle praticable
title_full_unstemmed Vers une programmation fonctionnelle praticable
title_sort vers une programmation fonctionnelle praticable
publisher Université de Nice Sophia-Antipolis
publishDate 2000
url http://tel.archives-ouvertes.fr/tel-00505235
http://tel.archives-ouvertes.fr/docs/00/50/52/35/PDF/Serrano.pdf
work_keys_str_mv AT serranomanuel versuneprogrammationfonctionnellepraticable
_version_ 1716397286704021504