ISBN-13: 9786131573958 / Francuski / Miękka / 2018 / 200 str.
La Programmation OrientA(c)e Langage est un paradigme de programmation dans lequel le dA(c)veloppement de logiciels passe par la conception de langages dA(c)diA(c)s (DSL). On dA(c)finit un ou plusieurs langages qui capturent les caractA(c)ristiques du domaine A(c)tudiA(c), puis on A(c)crit les applications visA(c)es en utilisant ces langages. Dans cet ouvrage, nous proposons une dA(c)marche mA(c)thodologique de dA(c)veloppement logiciel reposant sur ce concept. Il s''agit de conduire la mAame dA(c)marche au niveau des langages que ce qui est classiquement fait au niveau des composants: comment peut-on crA(c)er de nouveaux langages par composition de langages rA(c)utilisables existants? Nous utilisons le formalisme des grammaires attribuA(c)es pour aborder la question. Nous tirons profit de leur traduction en algA]bres de combinateurs fonctionnels pour dA(c)finir des spA(c)cifications exA(c)cutables de langages dA(c)diA(c)s (vus comme composants logiciels) plongA(c)s dans le langage fonctionnel pur Haskell. A partir d''exemples significatifs de conception et d''extension de DSL, nous proposons un typage de ceux-ci en vue de leur assemblage et leur rA(c)utilisation. Pour illustrer cette dA(c)marche, nous dA(c)crivons un DSL pour l''A(c)dition de documents structurA(c)s.
La Programmation Orientée Langage est un paradigme de programmation dans lequel le développement de logiciels passe par la conception de langages dédiés (DSL). On définit un ou plusieurs langages qui capturent les caractéristiques du domaine étudié, puis on écrit les applications visées en utilisant ces langages. Dans cet ouvrage, nous proposons une démarche méthodologique de développement logiciel reposant sur ce concept. Il sagit de conduire la même démarche au niveau des langages que ce qui est classiquement fait au niveau des composants: comment peut-on créer de nouveaux langages par composition de langages réutilisables existants? Nous utilisons le formalisme des grammaires attribuées pour aborder la question. Nous tirons profit de leur traduction en algèbres de combinateurs fonctionnels pour définir des spécifications exécutables de langages dédiés (vus comme composants logiciels) plongés dans le langage fonctionnel pur Haskell. A partir dexemples significatifs de conception et dextension de DSL, nous proposons un typage de ceux-ci en vue de leur assemblage et leur réutilisation. Pour illustrer cette démarche, nous décrivons un DSL pour lédition de documents structurés.