Results 1 - 10
of
42
Generation of Components for Software Renovation Factories from Context-free Grammars
"... We present an approach for the generation of components for a software renovation factory. These components are generated from a context-free grammar definition that recognizes the code that has to be renovated. We generate analysis and transformation components that can be instantiated with a speci ..."
Abstract
-
Cited by 73 (27 self)
- Add to MetaCart
We present an approach for the generation of components for a software renovation factory. These components are generated from a context-free grammar definition that recognizes the code that has to be renovated. We generate analysis and transformation components that can be instantiated with a specific transformation or analysis task. We apply our approach to COBOL and we discuss the construction of realistic software renovation components using our approach.
Term Rewriting With Traversal Functions
- ACM Trans. Softw. Eng. Methodol
, 2001
"... Term rewriting is an appealing technique for performing program analysis and program transformation. Tree (term) traversal is frequently used but is not supported by standard term rewriting. ..."
Abstract
-
Cited by 51 (8 self)
- Add to MetaCart
Term rewriting is an appealing technique for performing program analysis and program transformation. Tree (term) traversal is frequently used but is not supported by standard term rewriting.
Forwarding in attribute grammars for modular language design
- In Proc. 11th Intl. Conf. on Compiler Construction, volume 2304 of LNCS
, 2002
"... Abstract. Forwarding is a technique for providing default attribute definitions in attribute grammars that is helpful in the modular implementation of programming languages. It complements existing techniques such as default copy rules. This paper introduces forwarding, and shows how it is but a sma ..."
Abstract
-
Cited by 30 (11 self)
- Add to MetaCart
Abstract. Forwarding is a technique for providing default attribute definitions in attribute grammars that is helpful in the modular implementation of programming languages. It complements existing techniques such as default copy rules. This paper introduces forwarding, and shows how it is but a small extension of standard higher-order attribute grammars. The usual tools for manipulating higher-order attribute grammars, including the circularity check (which tests for cyclic dependencies between attribute values), carry over without modification. The closure test (which checks that each attribute has a defining equation) needs modification, however, because the resulting higher-order attribute grammars may contain spurious attributes that are never evaluated, and indeed that need not be defined. 1
Scaffolding for Software Renovation
- Proceedings of the Fourth European Conference on Software Maintenance and Reengineering
, 2000
"... We discuss an approach that explores the use of scaffolding of source code to facilitate its renovation. We show that scaffolding is a useful paradigm for software renovation. We designed syntax and semantics for scaffolding, that enables all relevant applications of scaffolding. The automatic gener ..."
Abstract
-
Cited by 14 (6 self)
- Add to MetaCart
We discuss an approach that explores the use of scaffolding of source code to facilitate its renovation. We show that scaffolding is a useful paradigm for software renovation. We designed syntax and semantics for scaffolding, that enables all relevant applications of scaffolding. The automatic generation of extensions to a normal grammar, so that the resulting extension grammar can parse code with scaffolding, is discussed. We used the scaffolding paradigm itself to implement the generation process, thereby showing that our approach towards scaffolding is also useful in software development. Finally, we discuss real-world applications of scaffolding for software renovation, in both our own work and work from people in the reengineering IT industry. Categories and Subject Description: D.2.6 [Software Engineering ]: Programming Environments---Interactive; D.2.7 [Software Engineering]: Distribution and Maintenance--- Restructuring; D.3.4. [Processors]: Parsing. Additional Key Words and ...
Presentation by tree transformation
- In IEEE COMPCON '97
, 1997
"... Every interactive system requires a presentation mechanism, to show the user the data it handles. Often, the relationship between the data and its presentation is complex; further, it is often mediated by astyle mechanism, allowing the user or a designer to describe how the data should be displayed. ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
Every interactive system requires a presentation mechanism, to show the user the data it handles. Often, the relationship between the data and its presentation is complex; further, it is often mediated by astyle mechanism, allowing the user or a designer to describe how the data should be displayed. It is a standing engineering challenge to develop a presentation model that is exible, handling many kinds of data and layout; powerful, giving the user extensive control over appearance; and e cient enough for interactive work. In this dissertation, we propose a model of presentation by tree transformation. Because information often has a hierarchical logical structure, trees are widely used to represent documents and other data. The layout or presentation of a document is also often modeled as a computation over a tree. But these trees are not generally identical. In other words, presentation can be seen as a mapping between trees. Casting it as a formal tree transformation o ers both expressive, compact style speci cations and e cient implementation. We present a general framework for presentation by tree transformation. It has been implemented as part of Ensemble, a software development environment and multimedia document system
Graph Rewrite Systems for Program Optimization
, 2000
"... Graph rewrite systems can be used to specify and generate program optimizations. For termination of the systems... ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
Graph rewrite systems can be used to specify and generate program optimizations. For termination of the systems...
Attribute Grammars: a Declarative Functional Language
, 1995
"... 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 ..."
Abstract
-
Cited by 10 (7 self)
- Add to MetaCart
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...
Attribute Grammars and Folds: Generic Control Operators
, 1996
"... 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 pro ..."
Abstract
-
Cited by 9 (5 self)
- Add to MetaCart
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 diff...
Reconstruction of paradigm shifts
- IN SECOND WORKSHOP ON ATTRIBUTE GRAMMARS AND THEIR APPLICATIONS, WAGA 99
, 1999
"... There are many extensions of the basic attribute grammar formalism intended to improve its pragmatics, e.g. certain modularity concepts, remote access, object-orientation, templates, rule models and higher-order features. In the paper, a generic and formal approach to an effective and orthogonal rec ..."
Abstract
-
Cited by 8 (5 self)
- Add to MetaCart
There are many extensions of the basic attribute grammar formalism intended to improve its pragmatics, e.g. certain modularity concepts, remote access, object-orientation, templates, rule models and higher-order features. In the paper, a generic and formal approach to an effective and orthogonal reconstruction of the concepts underlying some extensions is described. The reconstruction is effective in the sense that the reconstructed concepts are presented as executable meta-programs. The approach to reconstruction is formal in the sense that the derived meta-programs modelling certain concepts can be analysed based on properties of the meta-programs, e.g. preservation properties. It is a generic approach because the meta-programming framework can be instantiated not only for attribute grammars but also for several other representatives of the declarative paradigm, e.g. natural semantics and algebraic specification. Thereby, concepts can be imported from and exported to other frameworks. Finally, the reconstructions are derived orthogonally in the sense that potential roles are first unbundled and then particular combinations of the roles can be investigated. The described meta-programming framework has been implemented in the specification framework of Λ∆Λ and it is used for reusable formal language definition based on attribute grammars and operational semantics.
Dynamic Attribute Grammars
, 1996
"... 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 ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
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 imp...

