Effective Strategic Programming for Java Developers - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles Software: Practice and Experience Year : 2014

Effective Strategic Programming for Java Developers

Abstract

In object programming languages, the Visitor design pattern allows separation of algorithms and data-structures. When applying this pattern to tree-like structures, programmers are always confronted with the difficulty of making their code evolve. One reason is that the code implementing the algorithm is interwound with the code implementing the traversal inside the Visitor. When implementing algorithms such as data analyses or transformations, encoding the traversal directly into the algorithm turns out to be cumbersome as this type of algorithm only focuses on a small part of the data-structure model (e.g., program optimization). Unfortunately, typed programming languages like Java do not offer simple solutions for expressing generic traversals. Rewrite-based languages like ELAN or Stratego have introduced the notion of strategies to express both generic traversal and rule application control in a declarative way. Starting from this approach, our goal was to make the notion of strategic programming available in a widely used language such as Java and thus to offer generic traversals in typed Java structures. In this paper, we present the strategy language SL that provides programming support for strategies in Java.
Fichier principal
Vignette du fichier
final.pdf (451.44 Ko) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

hal-01265319 , version 1 (01-02-2016)

Identifiers

Cite

Emilie Balland, Pierre-Etienne Moreau, Antoine Reilles. Effective Strategic Programming for Java Developers. Software: Practice and Experience, 2014, Software: Practice and Experience, 44 (2), pp.34. ⟨10.1002/spe.2159⟩. ⟨hal-01265319⟩
235 View
351 Download

Altmetric

Share

Gmail Mastodon Facebook X LinkedIn More