Results 1 -
5 of
5
Language Independent Traversals for Program Transformation
- Universiteit Utrecht
, 2000
"... syntax representation in which variables are not leaves and extraction of variable names from expressions. strategies free-vars2(getvars, boundvars) = rec x(split(getvars <+ ![], split(collect-kids(x), boundvars <+ ![]); diff); union) Figure 15: Algorithm for collecting free variables that tak ..."
Abstract
-
Cited by 24 (7 self)
- Add to MetaCart
syntax representation in which variables are not leaves and extraction of variable names from expressions. strategies free-vars2(getvars, boundvars) = rec x(split(getvars <+ ![], split(collect-kids(x), boundvars <+ ![]); diff); union) Figure 15: Algorithm for collecting free variables that takes variables in subterms of variables into account. A variant of this algorithm taking into account binding positions can be created analogously to Figure 13 11 Section: Case Studies RENAMING BOUND VARIABLES Renaming of bound variables depends on the shape of variables and the shape of binding constructs. For binding constructs, in addition to determining what variables are bound and in which arguments they are binding, it is necessary to declare where new variables should be pasted. In order to keep track of renamings it is also required to distribute an environment along with the renaming traversal. Renaming of bound variables is used to prevent name clashes between variables, for exa...
The Stratego Library
- Institute of Information and Computing Sciences, Universiteit
, 2000
"... This document documents all modules in the library. For a tutorial on the usage of Stratego see [2]. The Stratego reference manual [1] explains the constructs of the language. Other publications on Stratego can be found on the Stratego web page: http://www.cs.uu.nl/~visser/stratego/ ..."
Abstract
-
Cited by 7 (5 self)
- Add to MetaCart
This document documents all modules in the library. For a tutorial on the usage of Stratego see [2]. The Stratego reference manual [1] explains the constructs of the language. Other publications on Stratego can be found on the Stratego web page: http://www.cs.uu.nl/~visser/stratego/
The Stratego Tutorial
- Institute of Information and Computing Sciences, Universiteit
, 2000
"... Stratego is a language for the specification of transformation rules and... ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
Stratego is a language for the specification of transformation rules and...
Evaluation Strategies for Term Rewriting Systems
, 2002
"... Term rewriting systems are widely used in computer science as a model of computation to relate syntax and semantics. In order to implement term rewriting system we need to use a strategy since there are many reduction sequences from a term in general. A strategy chooses one from such sequences. It i ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Term rewriting systems are widely used in computer science as a model of computation to relate syntax and semantics. In order to implement term rewriting system we need to use a strategy since there are many reduction sequences from a term in general. A strategy chooses one from such sequences. It is a function that takes a term to be rewritten and returns a term obtained by rewriting from the input term. There are two wellknown strategies: innermost strategies (or eager evaluation) and outermost strategies (or lazy evaluation). Innermost strategies can be implemented much more efficiently than outermost ones, while outermost strategies often have a better termination behavior than innermost ones. The evaluation strategy (the E-strategy), which is adopted by the family of OBJ algebraic specification languages, is one of the compromises between them. The E-strategy is more flexible than other fixed order of evaluation because each function symbol can have its own local strategy...
Fxt - A Transformation Tool for XML Documents
, 2001
"... XML document processing is a subarea of tree processing for which the functional programming style is very natural. A pattern matcher is necessary for identifying parts of the tree to be processed. The functional style implies a processing model in which navigation is possible only to subtrees of ..."
Abstract
- Add to MetaCart
XML document processing is a subarea of tree processing for which the functional programming style is very natural. A pattern matcher is necessary for identifying parts of the tree to be processed. The functional style implies a processing model in which navigation is possible only to subtrees of a tree. This restriction can be compensated by using a tree pattern matcher able to relate to ancestors as well as to siblings of a match. On top of the powerful fxgrep XML pattern matcher, we build fxt, a transformation tool for XML documents. The functional processing model that fxt uses, allows an implementation much more efficient than implementations permitted by the processing model of the popular XSLT, where navigation in the input tree can proceed in arbitrary directions. The fxt transformations are specified in an intuitive, declarative way. Flexibility is provided by hooks to the full functionality of the SML programming language, as well as by the fxt's variable mechanism.

