QuickSearch:   Number of matching entries: 0.

Search Settings

Parigot, D. (2008), "SmartTools Software Factory", at EclispeCon '08. mars, 2008.
BibTeX:
@misc{Parigot2008,
  author = {Didier Parigot},
  title = {SmartTools Software Factory},
  howpublished = {at EclispeCon '08},
  year = {2008},
  note = {at EclispeCon '08},
  url = {http://www.eclipsecon.org/2008/?page=sub/&id=57}
}
Parigot, D. & Boussemart, B. (2008), "Architecture Orientee Service Dynamique : D-SOA". INRIA, 2008.
Abstract: Depuis quelques années, la notion d’Architecture Orientée Services (SOA) s’est rapidement répandue et a été largement acceptée par l’industrie du logiciel. L’aspect dynamique d’une SOA nous semble être l’un des points fondamentaux et cruciaux de cette approche. Le concept d’une Architecture Orientée Services Dynamique D-SOA, se propose de fournir des moyens pour rendre l’architecture adaptable dynamiquement, en cours d’exécution, aux besoins des applications. Les entités qui collaborent pour une application donnée, ne sont pas forcément, connue ou prévisible statiquement. Une D-SOA doit pouvoir s’adapter dynamiquement à son environnement. Elle doit pouvoir supporter aisément des évolutions et des changements dans l’utilisation même de l’application. Elle doit permettre de connecter des entités sans qu’il soit nécessaire qu’elles se connaissent au préalable, qu’elles partagent une même interface de services. A travers l’implémentation de D-SOA au-dessus de la plate-forme OSGi on montre d’une part, sa complémentarité par rapport à OSGi, puis d’autre part, sa simplicité de mise en œuvre. Cette immersion de D-SOA au-dessus OSGi permet d’envisager des utilisations pour un large public sur des petits supports matériels tels que des PDAs et Smartphones. Finalement, cette notion de SOA dynamique, nous semble être un élément important pour les architectures des applications pour l’Internet du Futur, surtout dans le contexte dynamique des réseaux sociaux et de l’Internet des Objets.
BibTeX:
@techreport{Parigot2008a,
  author = {Didier Parigot and Baptiste Boussemart},
  title = {Architecture Orientee Service Dynamique : D-SOA},
  year = {2008},
  url = {http://hal.archives-ouvertes.fr/docs/00/34/23/10/PDF/soa-3.pdf}
}
Parigot, d. & Serpette, B. (2008), "Qui sème la fonction, récolte le tuyau typé". INRIA, 2008.
Abstract: Les applications de l'internet de demain vont devoir communiquer avec des objets de plus en plus complexes. Actuellement, cette communication s'effectue essentiellement à l'aide de protocoles de communication qui sont par nature des mécanismes mal typé. De plus, à chaque avancée technologique (sans fils, mobile, ...), de nouveaux types de protocoles de transport apparaissent. L'objectif de l'article est de proposer un mécanisme de création de tuyau pour une communication bien typé et pour abstraire le protocole sous-jacent à la communication. L'idée de base, afin d'établir un tuyau, est de migrer du serveur vers le client une fonction qui se charge de mettre en place la structure du tuyau. Cette fonction permet au client de s'abstraire du protocole de communication. Ce tuyau, une fois établi, pourra aussi faire véhiculer des fonctions, cette fois- ci du client vers le serveur. Ces fonctions permettent au client d'exprimer l'échange d'information en termes d'expressions du langage source et donc d'assurer le typage de la communication. D'une autre manière, ces fonctions donnent les moyens au client de communiquer directement avec le serveur en cachant les détails du protocole puisque ces fonctions seront exécutées finalement sur le serveur. Avec cette notion de tuyau, on définit un protocole comme étant un générateur de tuyau bien typé. Nous montrerons qu'il est possible d'établir des tuyaux de communication bien typé vers tous les objets atteignables sur un réseau.
BibTeX:
@techreport{PARIGOT:2008:INRIA-00333055:1,
  author = {Parigot, didier and Serpette, Bernard},
  title = {Qui sème la fonction, récolte le tuyau typé},
  year = {2008},
  url = {http://hal.inria.fr/inria-00333055/en/}
}
Parigot, D. (2007), "SmartTools: Eclispe Plugins Factory", at EclispeCon '07. mars, 2007.
BibTeX:
@misc{eclipse07,
  author = {Didier Parigot},
  title = {SmartTools: Eclispe Plugins Factory},
  howpublished = {at EclispeCon '07},
  year = {2007},
  note = {at EclispeCon '07},
  url = {http://www.eclipsecon.org/2007/index.php?page=sub/&id=3924}
}
Parigot, D. (2006), "Software Factory on top of Eclipse", In Eclipse Technology eXchange Workshop. At ECOOP 2006.
Abstract: For tree years, notions of Software factory or of Rich Client Platform have appeared in order to automate the development process. Similarly, since 2000, our research team has designed an approach driven by DSL. The SmartTools prototype is a result of this approach. It did not consider IDE (Integrated Development Environment) aspects. In this article, describe the first experience on how our tool has been integrated into the Eclipse Environment. First results show a perfect complementarily. Indeed, we did not modify our application code. In addition to that, this approach enables at makes it possible to produce plug-ins quicker or faster (especially plug-ins for a DSL). Our motivation is to offer generation mechanism to Eclipse plug-in developers.
BibTeX:
@inproceedings{Parigot2006,
  author = {Didier Parigot},
  title = {Software Factory on top of Eclipse},
  booktitle = {Eclipse Technology eXchange Workshop},
  publisher = {At ECOOP 2006},
  year = {2006},
  note = {At ECOOP 2006},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/SmartToolsEclipseFinal.pdf}
}
Parigot, D. (2006), "Fabrique Logicielle SmartTools". février, 2006.
BibTeX:
@misc{TremplinRecherche,
  author = {Didier Parigot},
  title = {Fabrique Logicielle SmartTools},
  year = {2006},
  note = {Lauréat de la 2 édition de "Tremplin Recherche" organisé par le Sénat},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/SmartTools/presentation/senatsmartools-court.pdf}
}
Parigot, D. & Courbis, C. (2005), "SmartTools: a Software Factory of DSL Tools". INRIA, Technical Report RR-5588, July, 2005.
Abstract: With the increasing dependency on the Internet and the proliferation of new component and distributive technologies, the design and implementation of complex applications must take into account standards, code distribution, deployment of components and reuse of business logic. To cope with these changes, applications need to be more open, adaptable and capable of evolving. To accommodate to these new challenges, this paper presents a new development approach based on generators associated with domain-specific languages, each of the latter related to one possible concern useful when building an application. It relies on Generative Programming, Component Programming and Aspect-Oriented Programming. A software factory, called SmartTools, has been developed using this new approach. The main results are i) to build software of better quality and to enable rapid development due to Generative Programming and, ii) to facilitate insertion of new facets and the portability of applications to new technologies or platforms due to business logic and technology separation.
BibTeX:
@techreport{smartase05,
  author = {Didier Parigot and Carine Courbis},
  title = {SmartTools: a Software Factory of DSL Tools},
  year = {2005},
  number = {RR-5588},
  note = {submit at ASE'05},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/smartase05.pdf}
}
Parigot, D. & Courbis, C. (2005), "Domain-Driven Development: the SmartTools Software Factory ". INRIA, Technical Report RR-5588, July, 2005.
Abstract: With the increasing dependency on the Internet and the proliferation of new component and distributive technologies, the design and implementation of complex appli- cations must take into account standards, code distribution, deployment of components and reuse of business logic. To cope with these changes, applications need to be more open, adaptable and capable of evolving. To accommodate to these new challenges, this paper presents a new development approach based on generators associated with domain-specific languages, each of the latter related to one possible concern useful when building an application. It relies on Generative Programming, Component Programming and Aspect-Oriented Programming. A software factory, called SmartTools, has been developed using this new approach. The main results are i) to build software of better quality and to enable rapid development due to Generative Programming and, ii) to facilitate insertion of new facets and the portability of applications to new technologies or platforms due to business logic and technology separation.
BibTeX:
@techreport{smarticse05,
  author = {Didier Parigot and Carine Courbis},
  title = {Domain-Driven Development: the SmartTools Software Factory },
  year = {2005},
  number = {RR-5588},
  url = {http://www.inria.fr/rrrt/rr-5588.html}
}
Parigot, D. (2004), "Towards domain-driven development: the SmartTools software factory", In OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications., pp. 37-38. ACM Press.
BibTeX:
@inproceedings{oopsla04,
  author = {Didier Parigot},
  title = {Towards domain-driven development: the SmartTools software factory},
  booktitle = {OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications},
  publisher = {ACM Press},
  year = {2004},
  pages = {37--38},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/SmartTools/distrib/presentations/presentation/titre.html},
  doi = {http://doi.acm.org/10.1145/1028664.1028685}
}
Courbis, C., Degenne, P., Fau, A. & Parigot, D. (2004), "Un modèle abstrait de composants adaptables", revue TSI, Composants et adaptabilité. Vol. 23(2), pp. 231-252. Hermès Sciences.
Abstract: Since a few years, the component approach for the design of complex software has appeared to help to solve problems of code repartition, deployment and reusability. This approach turns out to match the best result which ensures application evolution, interoperability and maintenance. This article introduces the component model used to implement an Integrated Development Environment. The salient feature of this model is that it is extensible and transposable into well-known models such as Web-Services, CORBA Component Model or EJB. The validity of this model has been assessed as it was used to implement our tool. This pragmatic approach was helpful for us to design an simple and realistic component model.
BibTeX:
@article{smartcompo02,
  author = {Carine Courbis and Pascal Degenne and Alexandre Fau and Didier Parigot},
  title = {Un modèle abstrait de composants adaptables},
  journal = {revue TSI, Composants et adaptabilité},
  publisher = {Hermès Sciences},
  year = {2004},
  volume = {23},
  number = {2},
  pages = {231-252},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/smartcompo02.ps}
}
Parigot, D., Courbis, C. & Lahire, P. (2004), "Towards domain-driven development: Approach and Implementation". INRIA, 2004.
Abstract: With the Internet and the proliferation of new component and distributive technologies, the design and implementation of complex applications must take into account standards, code distribution, deployment of components and reuse of business know-hows. To cope with these changes, applications need to be more open, adaptable and capable of evolving. To accommodate to these new challenges, this paper presents a new development approach based on transformations of different business models, each of them related to one possible concern of the application.

This approach is MDA compliant. It relies on Generative and Component Programming and on approaches by separation of concerns (ASoC) which are adapted for business-model descriptions. It contributes to the research works on Domain Driven Development and have a fully operational implementation (SmartTools). It may be compared to a software factory dedicated to applications which rely on a data model.

The main expected results are i) to build software of better quality thanks to business models and technology separation, ii) to generate simpler code, iii) to enable rapid developments and insertions of new facets and iv) to facilitate the portability of applications towards new technologies or platforms.

In order to describe our approach, we discuss the st features and provide an example of application which is implemented with SmartTools.

BibTeX:
@techreport{smartgpce04,
  author = {Didier Parigot and Carine Courbis and Philippe Lahire},
  title = {Towards domain-driven development: Approach and Implementation},
  year = {2004},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/smartgpce04.pdf}
}
Parigot, D., Courbis, C. & Lahire, P. (2004), "To Build Open and Evolutive Applications: an Approach based on MA and Generative Programming". INRIA, 2004.
Abstract: With the emergence of the Internet and proliferation of new component and distributive technologies, the design and programming of complex applications need to take into account standards and notions of code distribution, deployment and reuse. To cope with these changes, applications need to be more open, adaptable and prone to evolution To accommodate to these new challenges, this article present an new developpment approach based on transformation from different business model of different concerns which relies on MDA (Model-driven Archictecture) approach using Generative Programming. The main results of this new approach is better software quality due to business models and technology separation, more straightforward code, a rapid addition of new facets and a means that facilitates the portability of applications towards new technologies or platforms. Finaly, to illustrated our approch, an generative programming system, called SmartTools, is present which has been compared to a software factory of a particular dommain.
BibTeX:
@techreport{smarticse04,
  author = {Didier Parigot and Carine Courbis and Philippe Lahire},
  title = {To Build Open and Evolutive Applications: an Approach based on MA and Generative Programming},
  year = {2004},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/smarticse04.pdf}
}
Parigot, D. & Courbis, C. (2004), "Domain-Driven Development: the SmartTools Software Factory ". INRIA, 2004.
BibTeX:
@techreport{smarticse05a,
  author = {Didier Parigot and Carine Courbis},
  title = {Domain-Driven Development: the SmartTools Software Factory },
  year = {2004},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/smarticse05.pdf}
}
Parigot, D. (2003), "Contribution à la programmation générative". School: HDR, Université de Nice Sophia Antipolis., November, 2003.
BibTeX:
@phdthesis{Parigot03,
  author = {Didier Parigot},
  title = {Contribution à la programmation générative},
  school = {HDR, Université de Nice Sophia Antipolis},
  year = {2003},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/habilitation.pdf}
}
Courbis, C., Degenne, P., Fau, A. & Parigot, D. (2003), "L'apport des technologies XML et Objets pour un générateur d'environnements~:~SmartTools", revue L'Objet, numéro spécial XML et les objets. Vol. 9(3), pp. 65-93. Hermès Sciences.
Abstract: SmartTools est un générateur d'environnements de développement fortement fondé sur les technologies objets et XML. Grâce à une technique de génération automatique à partir de spécifications, SmartTools permet de développer très rapidement des environnements spécialisés pour des langages de programmation ou des langages métiers. En particulier, certaines de ces spécifications sont directement issues des technologies W3C, ce qui ouvre, des perspectives innombrables et variées de langages métiers. D'autre part, SmartTools s'appuie sur les technologies objets: utilisation des ``visitor patterns'', programmation par aspects, distribution des objets et composants, et implantation en Java. Les avantages de ces technologies permettent de proposer, à moindre coût, une plate-forme de développement ouverte, interactive, uniforme, et évolutive.
BibTeX:
@article{smartobjet02,
  author = {Carine Courbis and Pascal Degenne and Alexandre Fau and Didier Parigot},
  title = {L'apport des technologies XML et Objets pour un générateur d'environnements~:~SmartTools},
  journal = {revue L'Objet, numéro spécial XML et les objets},
  publisher = {Hermès Sciences},
  year = {2003},
  volume = {9},
  number = {3},
  pages = {65-93},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/smartobjet02.ps}
}
Parigot, D., Courbis, C. & Fau, A. (2002), "Aspect and XML-oriented Semantic Framework Generator: SmartTools". INRIA, 2002.
BibTeX:
@techreport{DidierParigot2002,
  author = {Didier Parigot and Carine Courbis and Alexandre Fau},
  title = {Aspect and XML-oriented Semantic Framework Generator: SmartTools},
  year = {2002},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/smartaosdwork02.pdf}
}
(2001), "Workshop on Language Descriptions, Tools and Applications" Genova, Italy, April, 2001. Electronic Notes in Theoretical Computer Science (ENTCS).
BibTeX:
@proceedings{Parigot01,,
  title = {Workshop on Language Descriptions, Tools and Applications},
  publisher = {Electronic Notes in Theoretical Computer Science (ENTCS)},
  year = {2001},
  note = {Satellite event of ETAPS'2001},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/LDTA/ldta.html}
}
Attali, I., Courbis, C., Degenne, P., Fau, A., Parigot, D. & Pasquier, C. (2001), "SmartTools: a Generator of Interactive Environments Tools", In International Conference on Compiler Construction CC'01. Genova, Italy. April 2001. Volume 2027 Electronic Notes in Theoretical Computer Science (ENTCS).
Abstract: SmartTools is a development environment generator that provides a structure editor and semantic tools as main features. The well-known visitor pattern technique is commonly used for designing semantic analysis, it has been automated and extended. SmartTools is easy to use thanks to its graphical user interface designed with the Java Swing APIs. It is built with an open architecture convinient for a partial or total integration of SmartTools in other environments. It makes the addition of new software components in SmartTools easy. As a result of the modular architecture, we built a distributed instance of SmartTools which required minimal effort. Being open to the XML technologies offers all the features of SmartTools to any language defined with those technologies. But most of all, with its open architecture, SmartTools takes advantage of all the developments made around those technologies, like DOM, through the XML APIs. The fast development of SmartTools (which is a young project, one year old) validates our choices of being open and generic.The main goal of this tool is to provide help and support for designing software development environments for programming languages as well as application languages defined with XML technologies.
BibTeX:
@inproceedings{Parigot01a,
  author = {Isabelle Attali and Carine Courbis and Pascal Degenne and Alexandre Fau and Didier Parigot and Claude Pasquier},
  title = {SmartTools: a Generator of Interactive Environments Tools},
  booktitle = {International Conference on Compiler Construction CC'01},
  publisher = {Electronic Notes in Theoretical Computer Science (ENTCS)},
  year = {2001},
  volume = {2027},
  note = {Tools Demonstrations at CC'01 scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/Parigot01a.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Parigot01a.pdf}
}
Attali, I., Courbis, C., Degenne, P., Fau, A., Fillon, J., Parigot, D., Pasquier, C. & Coen, C.S. (2001), "SmartTools: a Development Environment Generator based on XML Technologies", In XML Technologies and Software Engineering. Toronto, Canada. ICSE workshop proceedings.
Abstract: SmartTools is a development environment generator that provides a structure editor and semantic tools as main features. SmartTools is easy to use, thanks to its graphical user interface. Being based on Java and XML technologies offers all the features of SmartTools to any defined language. The main goal of this tool is to provide help and support for designing software development environments for programming languages as well as domain-specific languages defined with XML technologies.
BibTeX:
@inproceedings{Parigot01b,
  author = {Isabelle Attali and Carine Courbis and Pascal Degenne and Alexandre Fau and Joël Fillon and Didier Parigot and Claude Pasquier and Claudio Sacerdoti Coen},
  title = {SmartTools: a Development Environment Generator based on XML Technologies},
  booktitle = {XML Technologies and Software Engineering},
  publisher = {ICSE workshop proceedings},
  year = {2001},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/Parigot01b.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Parigot01b.pdf}
}
Courbis, C., Fau, A. & Parigot, D. (2001), "Programmation par visiteurs et par aspects dynamiques". INRIA, 2001.
BibTeX:
@techreport{Parigot01d,
  author = {Carine Courbis and Alexandre Fau and Didier Parigot},
  title = {Programmation par visiteurs et par aspects dynamiques},
  year = {2001},
  note = {en soummision},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Parigot01d.pdf}
}
Parigot, D. (2001), "Apport des technologies Objets et XML aux applications des cartes à puce et du commerce électronique".
BibTeX:
@misc{Parigot01f,
  author = {Didier Parigot},
  title = {Apport des technologies Objets et XML aux applications des cartes à puce et du commerce électronique},
  year = {2001},
  note = {label de la Recherche, association Telecom Valley },
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Parigot01g.pdf}
}
(2000), "Third Workshop on Attribute Grammars and their Applications WAGA'00" Ponte de Lima, Portugal, July, 2000. INRIA rocquencourt.
BibTeX:
@proceedings{Parigot00,,
  title = {Third Workshop on Attribute Grammars and their Applications WAGA'00},
  publisher = {INRIA rocquencourt},
  year = {2000},
  note = {Satellite event of MPC'2000},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/WAGA00/waga00.html}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1999), "How to deforest in accumulative parameters?". INRIA, Technical Report 3608, January, 1999.
Abstract: Software engineering has to reconcile modularity with efficiency. One way to grapple with this dilemma is to automatically transform a modular-specified program into an efficient-implementable one. This is the aim of deforestation transformations which get rid of intermediate data structures constructions that appear when two functions are composed. Nevertheless, existing functional methods cannot deforest non-trivial intermediate constructions that are processed by symbolic composition. This new deforestation technique is based on the descriptional composition dedicated to attribute grammars. In this paper, we present the symbolic composition, we outline its counterpart in terms of classical deforestation methods and we sketch a way to embed it in a functional framework.
BibTeX:
@techreport{Correnson98d,
  author = {Loic Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {How to deforest in accumulative parameters?},
  year = {1999},
  number = {3608},
  url = {http://hal.inria.fr/docs/00/07/30/70/PDF/RR-3608.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1999), "Equational Semantics", In Symposium Static Analysis SAS'99 . Venice, Italy. #sept# 1999. Volume 1694, pp. 264-283.
Abstract: In the context of functional programming, semantic methods are commonly used to drive program transformations. However, classical semantic domains often rely on recursive objects which embed the control flow of recursive functions. As a consequence, transformations which have to modify the control flow are difficult to define. We propose in this paper a new semantic domain where the control flow is defined implicitly, and thus can be modified. This new theoretical and practical framework allows to homogeneously define and extend powerful transformations related to partial evaluation and deforestation.
BibTeX:
@inproceedings{Correnson99a,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Equational Semantics},
  booktitle = {Symposium Static Analysis SAS'99 },
  year = {1999},
  volume = {1694},
  pages = {264--283},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Correnson99a.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1999), "Declarative program transformation: \a deforestation case-study", In Principles and Practice of Declarative Programming PPDP'99. Paris, France. October 1999. Volume 1702, pp. 353-369.
Abstract: Software engineering has to reconcile modularity with efficiency. One way to grapple with this dilemma is to automatically transform a modular-specified program into an efficient-implementable one. This is the aim of deforestation transformations which get rid of intermediate data structure constructions that occur when two functions are composed. Beyond classical compile time optimization, these transformations are undeniable tools for generic programming and software component specialization. Despite various and numerous research works in this area, general transformation methods cannot deforest some non-trivial intermediate constructions. Actually, these recalcitrant structures are built inside accumulating parameters and then, they follow a construction scheme which is independent from the function scheme itself. Known deforestation methods are too much tied to fixed recursion schemes to be able to deforest these structures. In this article, we show that a fully declarative approach of program transformation allows new deforestation sites to be detected and treated. We present the principle of the symbolic composition, based on the attribute grammar formalism, with an illustrative running example stemming from a typical problem of standard functional deforestations.
BibTeX:
@inproceedings{Correnson99b,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Declarative program transformation: \a deforestation case-study},
  booktitle = {Principles and Practice of Declarative Programming PPDP'99},
  year = {1999},
  volume = {1702},
  pages = {353--369},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/Correnson99b.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Correnson99b.pdf}
}
(1999), "Second Workshop on Attribute Grammars and their Applications WAGA'99" Amsterdam, The Netherlands, March, 1999. INRIA rocquencourt.
BibTeX:
@proceedings{Parigot99,,
  title = {Second Workshop on Attribute Grammars and their Applications WAGA'99},
  publisher = {INRIA rocquencourt},
  year = {1999},
  note = {Satellite event of ETAPS'99 scriptsize http://www-sop.inria.fr/members/Didier.Parigot/www/fnc2/WAGA99/waga99.html},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/WAGA99/waga99.html}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1998), "Symbolic Composition". INRIA, Technical Report 3348, January, 1998.
Abstract: The deforestation of a functional program is a transformation which gets rid of intermediate data structures constructions that appear when two functions are composed. The descriptional composition, initially introduced by Ganzinger and Giegerich, is a deforestation method dedicated to the composition of two attribute grammars. This article presents a new functional deforestation technique, called symbolic composition, based on the descriptional composition mechanism, but extending it. An automatic translation from a functional program into an equivalent attribute grammar allows symbolic composition to be applied, and then the result can be translated back into a functional program. This yields a source to source functional program transformation. The resulting deforestation method provides a better deforestation than other existing functional techniques. Symbolic composition, that uses the declarative and descriptional features of attribute grammars is intrinsically more powerful than categorical-flavored transformations, whose recursion schemes are set by functors. These results tend to show that attribute grammars are a simple intermediate representation, particularly well-suited for program transformations.
BibTeX:
@techreport{Correnson98,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Symbolic Composition},
  year = {1998},
  number = {3348},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-3348.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1998), "Composition Symbolique", In Journées Francophones des Langages Applicatifs. Come, Italie. February 1998.
Abstract: La déforestation d'un programme fonctionnel est une transformation qui consiste à éliminer la construction des structures intermédiaires qui sont introduites par les compositions de fonctions. La composition descriptionnelle, initialement introduite par Ganzinger et Giegerich, est une méthode de déforestation spécifique, qui s'applique à la composition de deux grammaires attribuées. Cet article propose une nouvelle technique de déforestation, appelée composition symbolique, qui est une extension et une amélioration de la composition descriptionnelle. En traduisant automatiquement un programme fonctionnel en une grammaire attribuée équivalente, il est possible de lui appliquer la composition symbolique, et de traduire le résultat en un programme fonctionnel (par exemple, en utilisant la transformation de Johnsson). On obtient alors une transformation source à source de programmes fonctionnels. La méthode de déforestation ainsi obtenue donne de meilleurs résultats que les méthodes fonctionnelles existantes. La composition symbolique, complètement dédiée au caractère déclaratif et descriptionnel des grammaires attribuées est intrinsèquement plus puissante que les transformations basées sur les notions catégorielles, dont les schémas de récursions sont figés par des foncteurs. Ces résultats confirment que la notation des grammaires attribuées est une représentation intermédiaire simple et particulièrement adaptée aux transformations de programmes.
BibTeX:
@inproceedings{Correnson98-jfla,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Composition Symbolique},
  booktitle = {Journées Francophones des Langages Applicatifs},
  year = {1998},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/jfla98.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/jfla98.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1998), "Generic Programming by Program Composition (position paper)", In Workshop on Generic Programming. Marstrand, Sweden. June 1998.
Abstract: Recently, generic programming becomes of a major interest in several programming paradigms. A recurrent idea to achieve genericity is to abstract computations from their representative data structures. This allows these generic specifications to be instantiated onto a large number of neighboring data structures. Moreover the program can be adapted when the data structures have to evolve. Polytypic programming, adaptive programming and generic attribute grammars are generic programming methods related to this approach. Their comparison leads us to propose a common framework for generic programming: automatic generation of programs that compute morphisms between data structures, and program composition. Thanks to this compositional approach, the complete specialization of generic programs could be advantageously delegated to some powerful and general deforestation method.
BibTeX:
@inproceedings{Correnson98a,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Generic Programming by Program Composition (position paper)},
  booktitle = {Workshop on Generic Programming},
  year = {1998},
  note = {conjunction with MPC'98},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Correnson98a.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1998), "Schéma générique de développement par composition", In Approches Formelles dans l'Assistance au Développement de Logiciel AFADL'98. Poitiers - futuroscope.
Abstract: Depuis peu, la programmation générique suscite un intérêt grandissant dans différents paradigmes de programmation. Un principe souvent utilisé pour obtenir de la généricité est d'abstraire les calculs d'un programme par rapport à leur structure de données. Cette approche permet à ces spécifications génériques d'être instanciées pour un grand nombre de structures de données voisines. De plus, le programme peut ainsi être automatiquement adapté lorsque les structures de données évoluent. La programmation polytypique, la programmation adaptive et les grammaires attribuées génériques sont des méthodes formelles de programmation génériques qui adoptent cette approche. La comparaison de ces méthodes nous a conduit à proposer un schéma commun de développement de programmes génériques. Cette méthode est basée sur deux concepts fondamentaux: la génération automatique de morphismes entre structures de données, et l'instanciation formelle des programmes génériques par composition, assistée par des outils de spécialisation.
BibTeX:
@inproceedings{Correnson98b,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Schéma générique de développement par composition},
  booktitle = {Approches Formelles dans l'Assistance au Développement de Logiciel AFADL'98},
  year = {1998},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/Correnson98b.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Correnson98b.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1998), "A Generic Framework for Genericity"
Abstract: Recently, generic programming becomes of a major interest in several programming paradigms. A recurrent idea to achieve genericity is to specify algorithms on their convenient data structure, and to allow these specifications to be instantiated onto a large number of neighboring data structures. Polytypic programming, shapely types and generic attribute grammars are generic programming methods related to this approach. A framework for generic programming is proposed to embed these methods. It consists in tools for automatic generation of morphisms between data structures, and for program composition. Thanks to this compositional approach, the complete specialization of generic programs could be advantageously delegated to a general and powerful mechanism of ``symbolic composition'', which performs deforestation and partial evaluation.
BibTeX:
@unpublished{Correnson98c,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {A Generic Framework for Genericity},
  year = {1998},
  note = {English version of},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Correnson98c.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1998), "Equational Semantics". INRIA, October, 1998.
Abstract: Many methods exist to perform program transformations, but most of them are dedicated to few programming languages. We propose a new formalism able to encode an abstract representation of the operational semantics of a program. With this formalism, we define simple transformations that lead to complex ones such as deforestation or partial evaluation in several programming languages. Though highly theoretical and language-independent, this method can be implemented and especially interfaced with real programming languages. For instance, a prototype dealing with a simple higher-order functional programming language has been implemented (with a call-by-value operational semantics). This prototype produces some more powerful transformations than other known functional methods, especially with deforestation on functions with accumulative parameters.
BibTeX:
@techreport{Correnson98e,
  author = {Loic Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Equational Semantics},
  year = {1998},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/Rapport/correnson98e.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1997), "Attribute Grammars and Functional Programming Deforestation", In Fourth International Static Analysis Symposium -- Poster Session. Paris, France. September 1997.
Abstract: The functional programming community is paying increasing attention to static structure-based transformations. For example, generic control operators, such as fold, have been introduced in functional programming to increase the power and applicability of a particular kind of static transformation, called deforestation, which prevents the construction of useless intermediate data structures in function composition. This is achieved by making the structure of the data more explicit in program specifications. We argue that one of the original concepts of Attribute Grammars is precisely to make data structures explicit in program specifications. Furthermore, there exists a powerful static deforestation-like transformation in their context. In this paper, we present similarities between deforestation methods, on the one hand with the functional approach, and on the other hand with the Attribute Grammars approach. In order to gain a grasp of these similarities, we first make a simple comparison: purely-synthesized Attribute Grammars and first order folds. In this context, deforestation transformations are equivalent. This allows us to highlight the limitations of the fold formalism and to present how the hylomorphism approach generalizes it; hylomorphisms and attribute grammars are surprisingly alike. Finally, we show how the inherited attribute notion in Attribute Grammars solves some transformation problems in higher order functional programs.
BibTeX:
@inproceedings{Correnson97,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Attribute Grammars and Functional Programming Deforestation},
  booktitle = {Fourth International Static Analysis Symposium -- Poster Session},
  year = {1997},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/sas97.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1997), "Composition Symbolique", In journées du GDR de programmation. Rennes. November 1997.
BibTeX:
@inproceedings{Correnson97-gdr,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Composition Symbolique},
  booktitle = {journées du GDR de programmation},
  year = {1997},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/gdr97.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1997), "Symbolic Composition". INRIA, July, 1997.
Abstract: To be modular, functional programming widely uses function compositions. Usually, these compositions introduce intermediate data structures that could be discarded for efficiency. Transformations achieving these eliminations are called deforestation.

To improve the power and the effectiveness of deforestation, several intermediate representations have been introduced, such as generic control operators and algebraic programming with fold, catamorphisms, and hylomorphisms. In the attribute grammar community there also exists a powerful and well-known deforestation-like transformation called descriptional composition.

This paper show that descriptional composition forms the core of a new and a more efficient functional programming deforestation method. For this purpose, a translation from functional programs into attribute grammars is introduced. Descriptional composition combined with a kind of symbolic evaluation defines a powerful tool called symbolic composition. This new transformation deforests some programs for which functional deforestations fail.

Finally, these results lead us to believe that attribute grammar notation is a simple and well-suited intermediate representation for data-structure-based transformations.

BibTeX:
@techreport{Correnson97a,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Symbolic Composition},
  year = {1997},
  note = {tt http://www-sop.inria.fr/members/Didier.Parigot/publications/SC97.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/SC97.pdf}
}
Correnson, L., Duris, E., Parigot, D. & Roussel, G. (1997), "Symbolic Composition". INRIA, October, 1997.
Abstract: The deforestation of a functional program is a transformation which gets rid of intermediate data structures constructions that appear when two functions are composed. The descriptional composition, initially introduced by Ganzinger and Giegerich, is a deforestation method dedicated to the composition of two attribute grammars. This article presents a new functional deforestation technique, called symbolic composition, based on the descriptional composition mechanism, but extending it. An automatic translation from a functional program into an equivalent attribute grammar allows symbolic composition to be applied, and then the result can be translated back into a functional program (for instance, using the Jonhsson's transformation). This yields to a source to source functional program transformation. The resulting deforestation method provides a better deforestation than other existing functional techniques. Symbolic composition, completely dedicated to the declarative and descriptional features of attribute grammars is intrinsically more powerful than categorical-flavored transformations, whose recursion schemes are set by functors. These results lead us to believe that attribute grammars are a simple intermediate representation, particularly well-suited for program transformations.
BibTeX:
@techreport{Correnson97b,
  author = {Loïc Correnson and Etienne Duris and Didier Parigot and Gilles Roussel},
  title = {Symbolic Composition},
  year = {1997},
  note = {tt http://www-sop.inria.fr/members/Didier.Parigot/publications/SC97a.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/SC97a.pdf}
}
Duris, E., Parigot, D., Roussel, G. & Jourdan, M. (1997), "Grammaires attribuées et folds : opérateurs de contrôle génériques", In Journées Francophones des Langages Applicatifs. Dolomieu, France. January 1997.
Abstract: Les opérateurs de contrôle génériques tels que fold ont été introduits en programmation fonctionnelle pour augmenter la puissance et le champ d'application des transformations fondées sur la structure des données. Ceci est possible en rendant cette structure plus explicite dans la spécification des programmes. Nous considérons que cette caractéristique fondamentale est l'un des concepts de base des grammaires attribuées. Dans cet article, nous exposons informellement les similitudes qui existent entre le formalisme du fold et la spécification par grammaires attribuées. Nous comparons également leurs méthodes respectives d'élimination des structures intermédiaires introduites lors de la composition de fonctions (notion de déforestation ou de fusion): l'algorithme de normalisation pour les programmes exprimés à l'aide de folds et la composition descriptionnelle pour les grammaires attribuées. Le but principal de cet article est de présenter intuitivement chacun de ces deux paradigmes, ainsi que leurs similitudes qui offrent des possibilités de fertilisation croisée
BibTeX:
@inproceedings{Duris97,
  author = {Etienne Duris and Didier Parigot and Gilles Roussel and Martin Jourdan},
  title = {Grammaires attribuées et folds : opérateurs de contrôle génériques},
  booktitle = {Journées Francophones des Langages Applicatifs},
  year = {1997},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/jfla97.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/jfla97.pdf}
}
Duris, E., Parigot, D., Roussel, G. & Jourdan, M. (1997), "Structure-directed Genericity in Functional Programming and Attribute Grammars". INRIA, Technical Report 3105, February, 1997.
Abstract: Generic control operators, such as fold, have been introduced in functional programming to increase the power and applicability of data-structure-based transformations. This is achieved by making the structure of the data more explicit in program specifications.\ We argue that this very important property is one of the original concepts of attribute grammars. In this paper, we present the similarities between the fold formalism and attribute grammars. In particular, we show the equivalence of their respective deforestation methods.\ Given these results and the fundamental role of deforestation in the concept of structure-directed genericity, first devised for attribute grammars with descriptional composition, we show how the fold operator with its fusion method allow to transport this concept in the area of functional programming.
BibTeX:
@techreport{Duris97gen,
  author = {Etienne Duris and Didier Parigot and Gilles Roussel and Martin Jourdan},
  title = {Structure-directed Genericity in Functional Programming and Attribute Grammars},
  year = {1997},
  number = {3105},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-3105.pdf}
}
Duris, E., Parigot, D., Roussel, G. & Jourdan, M. (1996), "Attribute Grammars and Folds: Generic Control Operators". INRIA, Technical Report 2957, August, 1996.
Abstract: Generic control operators, such as fold, have been introduced in functional programming to increase the power and applicability of data-structure-based transformations. This is achieved by making the structure of the data more explicit in program specifications. We argue that this very important property is one of the original concepts of attribute grammars. In this paper, we informally show the similarities between the fold formalism and attribute grammar specifications. We also compare their respective method to eliminate the intermediate data structures introduced by function composition (notion of deforestation or fusion): the normalization algorithm for programs expressed with folds and the descriptional composition of attribute grammars. Rather than identify the best way to achieve deforestation, the main goal of this paper is merely to intuitively present two programming paradigms to each other's supporting community and provide an unbiased account of their similarities and differences, in the hope that this leads to fruitful cross-fertilization.
BibTeX:
@techreport{Duris96,
  author = {Etienne Duris and Didier Parigot and Gilles Roussel and Martin Jourdan},
  title = {Attribute Grammars and Folds: Generic Control Operators},
  year = {1996},
  number = {2957},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-2957.pdf}
}
Duris, E., Parigot, D., Roussel, G. & Jourdan, M. (1996), "Grammaires Attribuées et Folds: Opérateurs de Contrôle Génériques", In journées du GDR de programmation. Orléans.
Abstract: Les opérateurs de contrôle génériques tels que fold ont été introduits en programmation fonctionnelle pour augmenter la puissance et le champ d'application des transformations fondées sur la structure des données. Ceci est possible en rendant cette structure plus explicite dans la spécification des programmes. Nous considérons que cette caractéristique fondamentale est l'un des concepts de base des grammaires attribuées. Dans cet article, nous exposons informellement les similitudes qui existent entre le formalisme du fold et la spécification par grammaires attribuées. Nous comparons également leurs méthodes respectives d'élimination des structures intermédiaires introduites lors de la composition de fonctions (notion de déforestation ou de fusion): l'algorithme de normalisation pour les programmes exprimés à l'aide de folds et la composition descriptionnelle pour les grammaires attribuées. Le but principal de cet article est de présenter intuitivement chacun de ces deux paradigmes, ainsi que leurs similitudes qui offrent des possibilités de fertilisation croisée.
BibTeX:
@inproceedings{Duris96a,
  author = {Etienne Duris and Didier Parigot and Gilles Roussel and Martin Jourdan},
  title = {Grammaires Attribuées et Folds: Opérateurs de Contrôle Génériques},
  booktitle = {journées du GDR de programmation},
  year = {1996},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/gdr96.pdf}
}
Parigot, D., Duris, E., Roussel, G. & Jourdan, M. (1996), "Les grammaires attribuées: un langage fonctionnel déclaratif", In Journées Francophones des Langages Applicatifs. Val-Morin, Québec. January 1996., pp. 263-279.
Abstract: Bien que les Grammaires Attribuées aient été introduites il y a trente ans, leur manque de pouvoir d'expression les a confinées dans le domaine du traitement des langages de programmation. Dans cet article, nous montrons qu'il est possible d'étendre cette expressivité. Nous soutenons que les Grammaires Attribuées peuvent être utilisées pour décrire des calculs sur des structures qui ne sont pas uniquement des arbres, mais aussi des formes abstraites permettant de décrire des structures infinies. Afin d'atteindre cette expressivité, nous avons introduit deux nouvelles notions: les schémas de productions et les productions conditionnelles. Nous obtenons ainsi un langage dont le pouvoir d'expression est comparable à celui de la plupart des langages fonctionnels du premier ordre, avec un côté déclaratif beaucoup plus marqué. Nos extensions ne remettent pas en cause les bases du formalisme des Grammaires Attribuées sur lesquelles reposent la plupart des travaux concernant celles-ci, en particulier l'analyse statique et la génération d'évaluateurs. Ainsi, les résultats existants peuvent être appliqués directement à nos Attribute Grammars étendues, entre autre ceux permettant une implantation efficace (dans notre cas, en utilisant notre système FNC-2). L'intérêt de ces extensions est de redonner aux Grammaires Attribuées leur expressivité intrinsèque. De plus, elles nous permettent d'envisager de nouveaux axes de recherche en comparant nos techniques d'analyses à celles qui ont été développées dans des formalismes de même expressivité.
BibTeX:
@inproceedings{Parigot95,
  author = {Didier Parigot and Etienne Duris and Gilles Roussel and Martin Jourdan},
  title = {Les grammaires attribuées: un langage fonctionnel déclaratif},
  booktitle = {Journées Francophones des Langages Applicatifs},
  year = {1996},
  pages = {263--279},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/jfla96.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/jfla96.pdf}
}
Parigot, D., Roussel, G., Jourdan, M. & Duris, E. (1996), "Dynamic Attribute Grammars". INRIA, Technical Report 2881, May, 1996.
Abstract: Although Attribute Grammars were introduced long ago, their lack of expressiveness has resulted in limited use outside the domain of static language processing. With the new notion of Dynamic Attribute Grammars defined on top of Grammar Couples, informally presented in a previous paper, we show that it is possible to extend this expressiveness and to describe computations on structures that are not just trees, but also on abstractions allowing for infinite structures. The result is a language that is comparable in power to most first-order functional languages, with a distinctive declarative character. In this paper, we give a formal definition of Dynamic Attribute Grammars and show how to construct efficient visit-sequence-based evaluators for them, using traditional, well-established AG techniques (in our case, using the FNC-2 system). The major contribution of this approach is to restore the intrinsic power of Attribute Grammars and re-emphasize the effectiveness of analysis and implementation techniques developed for them.
BibTeX:
@techreport{Parigot96,
  author = {Didier Parigot and Gilles Roussel and Martin Jourdan and Etienne Duris},
  title = {Dynamic Attribute Grammars},
  year = {1996},
  number = {2881},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-2881.pdf}
}
Parigot, D., Roussel, G., Jourdan, M. & Duris, E. (1996), "Dynamic Attribute Grammars", In Int. Symp. on Progr. Languages, Implementations, Logics and Programs (PLILP'96). Aachen. September 1996. Volume 1140, pp. 122-136. #SPRINGER#.
Abstract: Although Attribute Grammars were introduced long ago, their lack of expressiveness has resulted in limited use outside the domain of static language processing. With the new notion of Dynamic Attribute Grammars defined on top of Grammar Couples, we show that it is possible to extend this expressiveness and to describe computations on structures that are not just trees, but also on abstractions allowing for infinite structures. The result is a language that is comparable in power to most first-order functional languages, with a distinctive declarative character. In this paper, we give a formal definition of Dynamic Attribute Grammars and show how to construct efficient visit-sequence-based evaluators for them, using traditional, well-established AG techniques (in our case, using the FNC-2 system)
BibTeX:
@inproceedings{Parigot96a,
  author = {Didier Parigot and Gilles Roussel and Martin Jourdan and Etienne Duris},
  title = {Dynamic Attribute Grammars},
  booktitle = {Int. Symp. on Progr. Languages, Implementations, Logics and Programs (PLILP'96)},
  publisher = {#SPRINGER#},
  year = {1996},
  volume = {1140},
  pages = {122--136},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/plilp96.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/plilp96.pdf}
}
Duris, E., Parigot, D. & Jourdan, M. (1995), "Mises à jour destructives dans les grammaires attribuées". INRIA, Technical Report 2686, October, 1995.
Abstract: In the functional language domain, there exist several works on the problem of garbage collection at compile time. In the context of Attribute Grammars, the memory optimisation problem spawned a number of works on the notion of attribute lifetime. We present a method which, in this context, allows to replace some function calls with their destructive counterpart. If we consider the functional program which is equivalent to a given attribute grammar, our technique can be seen as a static method for its update-in-place transformation. This method uses the results obtained on the attribute lifetime notion. One of its features is that it uses only classical static analysis methods for attribute grammars.
BibTeX:
@techreport{Duris95,
  author = {Etienne Duris and Didier Parigot and Martin Jourdan},
  title = {Mises à jour destructives dans les grammaires attribuées},
  year = {1995},
  number = {2686},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-2686.pdf}
}
Parigot, D., Duris, E., Roussel, G. & Jourdan, M. (1995), "Attribute Grammars: a Declarative Functional Language". INRIA, Technical Report 2662, October, 1995.
Abstract: Although Attribute Grammars were introduced thirty years ago, their lack of expressiveness has resulted in limited use outside the domain of static language processing. In this paper we show that it is possible to extend this expressiveness. We claim that Attribute Grammars can be used to describe computations on structures that are not just trees, but also on abstractions allowing for infinite structures. To gain this expressiveness, we introduce two new notions: scheme productions and conditional productions. The result is a language that is comparable in power to most first-order functional languages, with a distinctive declarative character. Our extensions deal with a different part of the Attribute Grammar formalism than what is used in most works on Attribute Grammars, including global analysis and evaluator generation. Hence, most existing results are directly applicable to our extended Attribute Grammars, including efficient implementation (in our case, using the FNC-2 system http://www-rocq.inria.fr/oscar/www/fnc2/ for more information.)
BibTeX:
@techreport{Parigot95a,
  author = {Didier Parigot and Etienne Duris and Gilles Roussel and Martin Jourdan},
  title = {Attribute Grammars: a Declarative Functional Language},
  year = {1995},
  number = {2662},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-2662.pdf}
}
Parigot, D., Duris, E., Roussel, G. & Jourdan, M. (1995), "Les grammaires attribuées: un langage fonctionnel déclaratif", In journées du GDR de programmation. Grenoble. November 1995.
Abstract: Bien que les Grammaires Attribuées aient été introduites il y a trente ans, leur manque de pouvoir d'expression les a confinées dans le domaine du traitement des langages de programmation. Dans cet article, nous montrons qu'il est possible d'étendre cette expressivité. Nous soutenons que les Grammaires Attribuées peuvent être utilisées pour décrire des calculs sur des structures qui ne sont pas uniquement des arbres, mais aussi des formes abstraites permettant de décrire des structures infinies. Afin d'atteindre cette expressivité, nous avons introduit deux nouvelles notions: les schémas de productions et les productions conditionnelles. Nous obtenons ainsi un langage dont le pouvoir d'expression est comparable à celui de la plupart des langages fonctionnels du premier ordre, avec un côté déclaratif beaucoup plus marqué. Nos extensions ne remettent pas en cause les bases du formalisme des Grammaires Attribuées sur lesquelles reposent la plupart des travaux concernant celles-ci, en particulier l'analyse statique et la génération d'évaluateurs. Ainsi, les résultats existants peuvent être appliqués directement à nos Grammaires Attribuées étendues, entre autre ceux permettant une implantation efficace (dans notre cas, en utilisant notre système FNC-2). L'intérêt de ces extensions est de redonner aux Grammaires Attribuées leur expressivité intrinsèque. De plus, elles nous permettent d'envisager de nouveaux axes de recherche en comparant nos techniques d'analyses à celles qui ont été développées dans des formalismes de même expressivité.
BibTeX:
@inproceedings{Parigot95b,
  author = {Didier Parigot and Etienne Duris and Gilles Roussel and Martin Jourdan},
  title = {Les grammaires attribuées: un langage fonctionnel déclaratif},
  booktitle = {journées du GDR de programmation},
  year = {1995},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/gdr95.pdf}
}
Parigot, D. & Jourdan, M. (1995), "A Complete Bibliography on Attribute Grammars"
BibTeX:
@unpublished{ParigotBibAG,
  author = {Didier Parigot and Martin Jourdan},
  title = {A Complete Bibliography on Attribute Grammars},
  year = {1995},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/www/fnc2/AGabstract.html Updated regularly. Contains around 1000 references to papers on Attribute Grammars. INRIA, France.},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/www/fnc2/AGabstract.html}
}
Roussel, G., Parigot, D. & Jourdan, M. (1995), "Static and Dynamic Coupling Attribute Evaluators". INRIA, Technical Report 2670, October, 1995.
Abstract: Several years ago, the notion of attribute coupled grammars was introduced by Ganzinger and Giegerich, together with their descriptional composition. The latter works essentially at the specification level, i.e., it produces an attribute grammar which specifies the composition of two attribute coupled grammars. We introduce a new approach to this composition of attribute coupled grammars. It no longer works at the specification level but rather at the evaluator level. It produces a special kind of attribute evaluator, called coupling evaluator. We present both a static version and a dynamic version of coupling evaluators. Both versions retain the good property of descriptional composition that intermediate trees are not physically constructed. In addition---and this is the main advantage of our approach, compared with descriptional composition---, it is possible to build separately the dynamic coupling evaluator of each attribute coupled grammar; in other words we achieve real separate compilation of AG modules.
BibTeX:
@techreport{Roussel95,
  author = {Gilles Roussel and Didier Parigot and Martin Jourdan},
  title = {Static and Dynamic Coupling Attribute Evaluators},
  year = {1995},
  number = {2670},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-2670.pdf}
}
Attali, I. & Parigot, D. (1994), "Integrating Natural Semantics and Attribute Grammars: the Minotaur System". INRIA, Technical Report 2339, 1994.
Abstract: This papers describes the principles and the functionalities of the Minotaur system. Minotaur is a generic interactive environment based on the integration of the Centaur system and the FNC-2 system, two systems widely used to specify syntax and semantics of programming languages and generate efficient semantic tools from these specifications. We show how Attribute Grammars techniques can be adequate for evaluation of a quite large subclass of Natural Semantics specifications, including specifications of an arithmetic calculator, a tree transformation, a type-checker for an Algol-like language, ... For this subclass of Natural Semantics specifications, the Minotaur system automatically generates an incremental and efficient (in time and memory) evaluator which gives to Natural Semantics an industrial strength implementation.
BibTeX:
@techreport{Attali94,
  author = {Isabelle Attali and Didier Parigot},
  title = {Integrating Natural Semantics and Attribute Grammars: the Minotaur System},
  year = {1994},
  number = {2339},
  url = {http://hal.inria.fr/docs/00/07/71/10/PDF/RR-2339.pdf}
}
Roussel, G., Parigot, D. & Jourdan, M. (1994), "Coupling Evaluators for Attribute Coupled Grammars", In 5th Int. Conf. on Compiler Construction (CC' 94). Edinburgh. April 1994. Volume 786, pp. 52-67. #SPRINGER#.
Abstract: Some years ago, the notion of attribute coupled grammars was introduced by Ganzinger and Giegerich, together with descriptional composition. The latter works essentially at the specification level, i.e., it produces an attribute grammar which specifies the composition of two attribute coupled grammars. We introduce a new approach to this composition of attribute coupled grammars. This composition no longer works at the specification level but at the evaluator level. It produces a special kind of attribute evaluator. For this purpose we have introduced the notion of coupling evaluator. The main advantage of this new approach, compared with descriptional composition, is that it is possible to build separately the coupling evaluator of each attribute coupled grammar; in other words it allows real separate compilation of AG modules. Another important advantage is that we do not need to check the attribute grammar class in order to construct the final sequence of evaluators; thus, this construction produces a new sort of evaluator.
BibTeX:
@inproceedings{Roussel94,
  author = {Gilles Roussel and Didier Parigot and Martin Jourdan},
  title = {Coupling Evaluators for Attribute Coupled Grammars},
  booktitle = {5th Int. Conf. on Compiler Construction (CC' 94)},
  publisher = {#SPRINGER#},
  year = {1994},
  volume = {786},
  pages = {52--67},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/couplingevaluatorAG.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/couplingevaluatorAG.pdf}
}
Le Bellec, C., Jourdan, M., Parigot, D. & Roussel, G. (1993), "Specification and Implementation of Grammar Coupling Using Attribute Grammars", In Programming Language Implementation and Logic Programming (PLILP '93). Tallinn. August 1993. Volume 714, pp. 123-136. #SPRINGER#.
Abstract: This paper introduces the notion of a coupling of two grammars, defined by associations between their non-terminals and terminals. We present an algorithm for automatically producing, from these associations, an attribute grammar which specifies the translation from one grammar to the other. The motivation for, and context of, this algorithm is our work aiming at improving modularity and reusability of attribute grammars. When it is combined with descriptional composition, we obtain what we consider to be the most declarative framework for this to date.
BibTeX:
@inproceedings{LeBellec93a,
  author = {Carole Le Bellec and Martin Jourdan and Didier Parigot and Gilles Roussel},
  title = {Specification and Implementation of Grammar Coupling Using Attribute Grammars},
  booktitle = {Programming Language Implementation and Logic Programming (PLILP '93)},
  publisher = {#SPRINGER#},
  year = {1993},
  volume = {714},
  pages = {123--136},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/couple-AG-plilp93.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/couple-AG-plilp93.pdf}
}
Jourdan, M. (1991), "A Survey of Parallel Attribute Evaluation Methods", In Attribute Grammars, Applications and Systems. New York--Heidelberg--Berlin. June 1991. Volume 545, pp. 234-255. Springer-Verlag.
BibTeX:
@inproceedings{Jourdan9191,
  author = {Martin Jourdan},
  title = {A Survey of Parallel Attribute Evaluation Methods},
  booktitle = {Attribute Grammars, Applications and Systems},
  publisher = {Springer-Verlag},
  year = {1991},
  volume = {545},
  pages = {234-255},
  note = {Prague},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/parev-t.pdf}
}
Jourdan, M. & Parigot, D. (1991), "Internals and Externals of the FNC-2 Attribute Grammar System", In Attribute Grammars, Applications and Systems. Prague Vol. 545, pp. 485-504. Springer-Verlag.
Abstract: FNC-2 is a modern attribute grammar processing system aiming at expressive power, efficiency, ease of use and versatility. This paper provides the reader with a brief tour inside FNC-2, presenting the most important features of its ``engine'': efficient sequential exhaustive, parallel exhaustive and sequential incremental evaluation of strongly non-circular AGs. These methods are based on the visit-sequence paradigm; the first one makes use of extensive space optimizations. Then we describe the external features of the system---attribute coupled grammar view of an AG, specially-designed AG-description language, with provisions for true modularity, and complete environment---that make it really usable for developing large-scale applications. Experience with the system is briefly reported.
BibTeX:
@incollection{Jourdan91aa,
  author = {Martin Jourdan and Didier Parigot},
  title = {Internals and Externals of the FNC-2 Attribute Grammar System},
  booktitle = {Attribute Grammars, Applications and Systems},
  publisher = {Springer-Verlag},
  year = {1991},
  volume = {545},
  pages = {485-504},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/fnc2-t.pdf}
}
Jourdan, M., Parigot, D., Julié, C., Durin, O. & Le Bellec, C. (1990), "Design, Implementation and Evaluation of the FNC-2 Attribute Grammar System", In Conf. on Programming Languages Design and Implementation. White Plains, NY. June 1990., pp. 209-222.
Abstract: FNC-2 is a new attribute grammar processing system aiming at expressive power, efficiency, ease of use and versatility. Its development at INRIA started in 1986, and a first running prototype is available since early 1989. Its most important features are: efficient exhaustive and incremental visit-sequence-based evaluation of strongly (absolutely) non-circular AGs; extensive space optimizations; a specially-designed AG-description language, with provisions for true modularity; portability and versatility of the generated evaluators; complete environment for application development. This paper briefly describes the design and implementation of FNC-2 and its peripherals. Then preliminary experience with the system is reported.
BibTeX:
@inproceedings{Jourdan90,
  author = {Martin Jourdan and Didier Parigot and Catherine Julié and Olivier Durin and Carole Le Bellec},
  title = {Design, Implementation and Evaluation of the FNC-2 Attribute Grammar System},
  booktitle = {Conf. on Programming Languages Design and Implementation},
  year = {1990},
  pages = {209--222},
  note = {Published as sl ACM SIGPLAN Notices, 25(6) scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/sgpln90-t.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/sgpln90-t.pdf}
}
Jourdan, M. & Parigot, D. (1990), "Techniques for Improving Grammar Flow Analysis", In European Symp. on Programming (ESOP '90). Copenhague. Volume 432, pp. 240-255. #SPRINGER#.
Abstract: Grammar Flow Analysis (GFA) is a computation framework that can be applied to a large number of problems expressed on context-free grammars. In this framework, as was done on programs with Data Flow Analysis, those problems are split into a general resolution procedure and a set of specific propagation functions. This paper presents a number of improvement techniques that act on the resolution procedure, and hence apply to every GFA problem: grammar partitioning, non-terminals static ordering, weak stability and semantic stability. Practical experiments using circularity tests for attribute grammars will show the benefit of these improvements.
BibTeX:
@inproceedings{Jourdan90a,
  author = {Martin Jourdan and Didier Parigot},
  title = {Techniques for Improving Grammar Flow Analysis},
  booktitle = {European Symp. on Programming (ESOP '90)},
  publisher = {#SPRINGER#},
  year = {1990},
  volume = {432},
  pages = {240--255},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/esop90-t.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/esop90-t.pdf}
}
Jourdan, M., Le Bellec, C. & Parigot, D. (1990), "The Olga Attribute Grammar Description Language: Design, Implementation and Evaluation", In Attribute Grammars and their Applications (WAGA). Paris. Volume 461, pp. 222-237. Springer-Verlag.
Abstract: Olga is the input language of the FNC-2 attribute grammar processing system, currently under development at INRIA. As such, it is designed for the specification of attribute grammars and is specialized for this purpose. The features of Olga can be classified into those which make it a powerful general-purpose applicative language and those which make it a specialized AG-description language. A remarkable feature of Olga is its strong support for modularity. The paper discusses the design goals for Olga and presents the most important aspects of the language. It also includes comparisons with other existing languages, an overview of the implementation of Olga, namely the FNC-2 system, and an account of the experience gained in using Olga.
BibTeX:
@inproceedings{Jourdan90bb,
  author = {Martin Jourdan and Carole Le Bellec and Didier Parigot},
  title = {The Olga Attribute Grammar Description Language: Design, Implementation and Evaluation},
  booktitle = {Attribute Grammars and their Applications (WAGA)},
  publisher = {Springer-Verlag},
  year = {1990},
  volume = {461},
  pages = {222-237},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/olga-t.pdf}
}
Julié, C. & Parigot, D. (1990), "Space Optimization in the FNC-2 Attribute Grammar System", In Attribute Grammars and their Applications (WAGA). Paris. September 1990. Volume 461, pp. 29-45. Springer-Verlag.
Abstract: Memory space management for attribute evaluators is a vital requirement in practice. In fact, using attribute grammars (AGs) will very quickly meet the problem of memory space if it isn't taken into special consideration. We consider this problem for evaluators of the simple multi-visit class, also called $l$-ordered, because it is the largest possible AGs class for which we can find, at construction time, a method for memory space optimization. We present a new algorithm which decides, at generation time, if it is possible to store attribute instances in global stacks or global variables. The purpose of this approach is to reduce not only memory space, but also as much as possible the number of attributes to be stored in the nodes of the tree. This method is implemented in the new attribute grammar processing system, named FNC--2. Finally we present our first practical results which seem very promising.
BibTeX:
@inproceedings{Julie90,
  author = {Catherine Julié and Didier Parigot},
  title = {Space Optimization in the FNC-2 Attribute Grammar System},
  booktitle = {Attribute Grammars and their Applications (WAGA)},
  publisher = {Springer-Verlag},
  year = {1990},
  volume = {461},
  pages = {29--45},
  note = {scriptsize http://www-sop.inria.fr/members/Didier.Parigot/publications/optim-t.pdf},
  url = {http://www-sop.inria.fr/members/Didier.Parigot/publications/optim-t.pdf}
}
Julié, C. & Parigot, D. (1990), "Space Optimization in the FNC-2 Attribute Grammar System". INRIA, Technical Report 1165, 1990.
Abstract: Memory space management for attribute evaluators is a vital requirement in practice. In fact, using attribute grammars (AGs) will very quickly meet the problem of memory space if it isn't taken into special consideration. We consider this problem for evaluators of the simple multi-visit class, also called $l$-ordered, because it is the largest possible AGs class for which we can find, at construction time, a method for memory space optimization. We present a new algorithm which decides, at generation time, if it is possible to store attribute instances in global stacks or global variables. The purpose of this approach is to reduce not only memory space, but also as much as possible the number of attributes to be stored in the nodes of the tree. This method is implemented in the new attribute grammar processing system, named FNC--2. Finally we present our first practical results which seem very promising.
BibTeX:
@techreport{Julie90a,
  author = {Catherine Julié and Didier Parigot},
  title = {Space Optimization in the FNC-2 Attribute Grammar System},
  year = {1990},
  number = {1165},
  url = {ftp://ftp.inria.fr/INRIA/publication/RR/RR-1165.pdf}
}
Jourdan, M. & Parigot, D. (1989), "The FNC-2 System: Advances in Attribute Grammar Technology", In Procs. of the Soviet-French Symposium Informatika '89. Tallinn. May 1989., pp. 94-118.
BibTeX:
@inproceedings{Jourdan89a,
  author = {Martin Jourdan and Didier Parigot},
  title = {The FNC-2 System: Advances in Attribute Grammar Technology},
  booktitle = {Procs. of the Soviet-French Symposium Informatika '89},
  year = {1989},
  pages = {94--118},
  note = {See also: rapport RR-834, INRIA, Rocquencourt (April 1988).}
}
Jourdan, M. & Parigot, D. (1988), "More on Speeding up Circularity Tests for Attribute Grammars". INRIA, Technical Report RR-828, April, 1988.
BibTeX:
@techreport{Jourdan88,
  author = {Martin Jourdan and Didier Parigot},
  title = {More on Speeding up Circularity Tests for Attribute Grammars},
  year = {1988},
  number = {RR-828},
  url = {http://hal.archives-ouvertes.fr/docs/00/07/57/23/PDF/RR-0828.pdf}
}
Parigot, D. (1988), "Transformations, Évaluation Incrémentale et Optimisations des Grammaires Attribués: Le Système FNC-2". School: Université de Paris-Sud. Orsay
BibTeX:
@phdthesis{Parigot88,
  author = {Didier Parigot},
  title = {Transformations, Évaluation Incrémentale et Optimisations des Grammaires Attribués: Le Système FNC-2},
  school = {Université de Paris-Sud},
  year = {1988},
  url = {http://www.inria.fr/RRRT/TU-0044.html}
}
Parigot, D. (1987), "Mise en œuvre des grammaires attribuées: transformation, évaluation incrémentale, optimisations". University de Paris-Sud, September, 1987.
BibTeX:
@techreport{Parigot87,
  author = {Didier Parigot},
  title = {Mise en œuvre des grammaires attribuées: transformation, évaluation incrémentale, optimisations},
  year = {1987}
}
Parigot, D. (1985), "Un système interactif de trace des circularités dans une grammaire attribuée et optimisation du test de circularité". University de Paris-Sud, September, 1985.
BibTeX:
@techreport{Parigot85,
  author = {Didier Parigot},
  title = {Un système interactif de trace des circularités dans une grammaire attribuée et optimisation du test de circularité},
  year = {1985}
}

Created by JabRef on 26/05/2009.