Javascript must be enabled to continue!
Refactoring functional programs with ornaments
View through CrossRef
Refactorisation de programmes fonctionnels par les ornements
Les ornements fournissent un moyen de définir des transformations de définitions de types de données inductifs réorganisant, spécialisant et ajoutant des champs à des types de données déjà existants. À partir d’une telle transformation, nous nous intéressons à la refactorisation semi-automatique d’un code déjà existant, écrit en ML et opérant sur le type de base pour le faire opérer sur le type ornementé. Nous décrivons un cadre pour de telles transformations, basé sur deux phases: tout d’abord, le terme de base est généralisé au maximum en ajoutant des abstractions sur les détails des types de données utilisés. Le terme est ensuite spécialisé pour opérer uniquement sur le type ornementé. Nous décrivons un langage intermédiaire fournissant les abstractions nécessaires pour présenter le terme générique, et garantissant qu’il est possible de simplifier le terme spécialisé pour ne présenter à l’utilisateur que des termes du langage de base. Le langage intermédiaire permet notamment d’exprimer des abstractions dépendantes, de représenter les égalités apprises par le filtrage de motifs, et fournit une construction permettant de se référer de façon opaque au résultats de calculs déjà effectués. Nous exploitons la paramétricité du terme généralisé pour prouver une relation de cohérence entre le terme de base et le terme ornementé, garantissant la correction de la refactorisation. Nous présentons une implémentation de cette transformation sur un langage ML noyau, et justifions de son utilité dans de nombreux cas courants de transformation de programme: refactorisation pure, ajout de nouvelles données et spécialisation. Nous présentons aussi une nouvelle technique de dépliage permise par notre transformation qui autorise à changer la structure récursive des fonctions, et illustrons son utilité pour optimiser certaines représentations de données et pour la programmation générique.
Title: Refactoring functional programs with ornaments
Description:
Refactorisation de programmes fonctionnels par les ornements
Les ornements fournissent un moyen de définir des transformations de définitions de types de données inductifs réorganisant, spécialisant et ajoutant des champs à des types de données déjà existants.
À partir d’une telle transformation, nous nous intéressons à la refactorisation semi-automatique d’un code déjà existant, écrit en ML et opérant sur le type de base pour le faire opérer sur le type ornementé.
Nous décrivons un cadre pour de telles transformations, basé sur deux phases: tout d’abord, le terme de base est généralisé au maximum en ajoutant des abstractions sur les détails des types de données utilisés.
Le terme est ensuite spécialisé pour opérer uniquement sur le type ornementé.
Nous décrivons un langage intermédiaire fournissant les abstractions nécessaires pour présenter le terme générique, et garantissant qu’il est possible de simplifier le terme spécialisé pour ne présenter à l’utilisateur que des termes du langage de base.
Le langage intermédiaire permet notamment d’exprimer des abstractions dépendantes, de représenter les égalités apprises par le filtrage de motifs, et fournit une construction permettant de se référer de façon opaque au résultats de calculs déjà effectués.
Nous exploitons la paramétricité du terme généralisé pour prouver une relation de cohérence entre le terme de base et le terme ornementé, garantissant la correction de la refactorisation.
Nous présentons une implémentation de cette transformation sur un langage ML noyau, et justifions de son utilité dans de nombreux cas courants de transformation de programme: refactorisation pure, ajout de nouvelles données et spécialisation.
Nous présentons aussi une nouvelle technique de dépliage permise par notre transformation qui autorise à changer la structure récursive des fonctions, et illustrons son utilité pour optimiser certaines représentations de données et pour la programmation générique.
Related Results
A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices
A Systematic Literature Review on Software- refactoring Techniques, Challenges, and Practices
Abstract
Software-refactoring improves the quality and reduces the complexity during the whole life cycle of the software system. The objective of this work is to elicit th...
Refactoring for Java-Structured Concurrency
Refactoring for Java-Structured Concurrency
Structured concurrency treats multiple tasks running in different threads as a single unit, thereby improving reliability and enhancing observability. The existing IDE (Integrated ...
Investigating the Refactoring Capabilities of Small Open-Weight Language Models
Investigating the Refactoring Capabilities of Small Open-Weight Language Models
Refactoring is essential for developing maintainable software. Using Large Language Models in software engineering is widespread, but compared to well-established domains such as c...
A Task-driven Grammar Refactoring Algorithm
A Task-driven Grammar Refactoring Algorithm
This paper presents our proposal and the implementation of an algorithm for automated refactoring of context-free grammars. Rather than operating under some domain-specific task, i...
The Study on Software Architecture Smell Refactoring
The Study on Software Architecture Smell Refactoring
Abstract
Maintenance and complexity issues in software development continue to increase because of new requirements and software evolution, and refactoring is required to h...
Diversité des territoires d’origine des parures en coquillage mésolithiques de la grotte Rochefort (Saint-Pierre-sur-Erve, Mayenne)
Diversité des territoires d’origine des parures en coquillage mésolithiques de la grotte Rochefort (Saint-Pierre-sur-Erve, Mayenne)
Marine shells were constantly used as ornaments by the Mesolithic populations of Europe. The resumption of excavations in Grotte Rochefort (Saint-Pierre-sur-Erve, Mayenne, France) ...
Empirical evaluation of feature selection and machine learning techniques to recommend clones for software refactoring
Empirical evaluation of feature selection and machine learning techniques to recommend clones for software refactoring
The article’s subject matter deals with the management of software clones. Software clones are duplicate code fragments that can exist in the same or different software files. Soft...
PENERAPAN ORNAMEN KHAS BETAWI DALAM INTERIOR MASJID RAYA KH. HASYIM ASYARI JAKARTA BARAT
PENERAPAN ORNAMEN KHAS BETAWI DALAM INTERIOR MASJID RAYA KH. HASYIM ASYARI JAKARTA BARAT
Abstract The Mosque is the buildings of worship for Muslims who can accommodate the worshipers. In the Mosque’s interior design is identical to the use of typical Middle Eastern or...

