Results 11  20
of
20
Generation of Efficient Programs for Solving Maximum MultiMarking Problems
 SAIG'01, LNCS 2196
, 2001
"... Program generation has seen an important role in a wide range of software development processes, where effective calculation rules are critical. In this paper, we propose a more general calculation rule for generation of efficient programs for solving maximum marking problems. Easy to use and imple ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Program generation has seen an important role in a wide range of software development processes, where effective calculation rules are critical. In this paper, we propose a more general calculation rule for generation of efficient programs for solving maximum marking problems. Easy to use and implement, our new rule gives a significant extension of the rule proposed by Sasano et al., allowing multiple kinds of marks as well as more general description of the property of acceptable markings. We illustrate its effectiveness using several interesting problems.
Generation of Efficient Algorithms for Maximum Marking Problems
"... In existing work on graph algorithms, it is known that a linear time algorithm can be derived mechanically from a logical formula for a class of optimization problems. But this has a serious problem that the derived algorithm has huge constant factor. In this work, we redene this problem on recursiv ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In existing work on graph algorithms, it is known that a linear time algorithm can be derived mechanically from a logical formula for a class of optimization problems. But this has a serious problem that the derived algorithm has huge constant factor. In this work, we redene this problem on recursive data structures as a maximum marking problem and propose method for deriving a linear time algorithm for that. In this method, speci cation is given using recursive functions instead of logical formula, which results in a practical linear time algorithm. This method is mechanical and in fact, based on this deriving method, we make a system which automatically generates a practical linear time algorithm from specication for a maximum marking problem.
Design and implementation of deterministic higherorder patterns, 2005. Draft. Available at http:://www.ipl.t.utokyo.ac.jp/yicho
"... Abstract. We introduce a class of deterministic higherorder patterns to Template Haskell for supporting declarative transformational programming with more elegant binding of pattern variables. Higherorder patterns are capable of checking and binding subtrees far from the root, which is useful for ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. We introduce a class of deterministic higherorder patterns to Template Haskell for supporting declarative transformational programming with more elegant binding of pattern variables. Higherorder patterns are capable of checking and binding subtrees far from the root, which is useful for program manipulation. However, there are three major problems. First, it is difficult to explain why a particular desired matching result cannot be obtained because of the complicated higherorder matching algorithm. Second, the general higherorder matching algorithm is of high cost, which may be exponential time at worst. Third, the (possibly infinite) nondeterministic solutions of higherorder matching prevents it from being used in a functional setting. To resolve these problems, we impose reasonable restrictions on higherorder patterns to gain predictability, efficiency and determinism. We show that our deterministic higherorder patterns are powerful to support concise specification and efficient implementation of various kinds of program transformations for optimizations. 1
Efficient Image Manipulation via Runtime Compilation
, 1999
"... An image manipulation system can be thought of as a domainspecific programming language: by composing and manipulating pictures, the user builds up an expression in such a programming language. Each time the picture is displayed, the expression is evaluated. To gain the required efficiency of displ ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
An image manipulation system can be thought of as a domainspecific programming language: by composing and manipulating pictures, the user builds up an expression in such a programming language. Each time the picture is displayed, the expression is evaluated. To gain the required efficiency of display, the expression must be optimized and compiled on the fly. This paper introduces a small language that could form the basis of an image manipulation system, and it describes a preliminary implementation. To compile an expression in the language, we inline all function definitions and use algebraic laws of the primitive operations to optimize composites. We apply a form of code motion to recover (as far as possible) the sharing lost in the inlining phase. Finally, we generate intermediate code that is passed to a JIT compiler.
Higher Order Pattern Matching for Program Transformation
, 1999
"... Higher order matching allows program transformation systems to recognise complex patterns in programs and to use these patterns to apply useful transformations to these programs. We review existing algorithms, and in the attached paper "Higher order matching for program transformation" present a new ..."
Abstract
 Add to MetaCart
Higher order matching allows program transformation systems to recognise complex patterns in programs and to use these patterns to apply useful transformations to these programs. We review existing algorithms, and in the attached paper "Higher order matching for program transformation" present a new algorithm known as "one step matching" which we believe offers significant benefits over existing algorithms. Practical use of this algorithm is made in the MAG system for transforming Haskell programs, described in the paper "Generic Program Transformation" which is also attached. Finally, we discuss possible future work to develop the use of pattern matching techniques in program transformation systems.
Preliminary Proceedings of the ACM SIGPLAN Haskell Workshop (HW'2001)
, 2001
"... Using Haskell as a digital circuit description language, we transform a ripple carry adder that requires O(n) time to add two nbit words into an e#cient carry lookahead adder that requires O(log n) time. The gain in speed relies on the use of parallel scan to calculate the propagation of carry bits ..."
Abstract
 Add to MetaCart
Using Haskell as a digital circuit description language, we transform a ripple carry adder that requires O(n) time to add two nbit words into an e#cient carry lookahead adder that requires O(log n) time. The gain in speed relies on the use of parallel scan to calculate the propagation of carry bits e#ciently. The main di#culty is that this scan cannot be parallelised directly since it is applied to a nonassociative function. Several additional techniques are needed to circumvent the problem, including partial evaluation and symbolic function representation. The derivation given here provides a formal correctness proof, yet it also makes the solution more intuitive by bringing out explicitly each of the ideas underlying the carry lookahead adder.
MxF@$N:GE,O"A[5,B'$r5a$a$k@~7A;~4V%"%k%4 %j%:%`$NF3=P
 In 18th Conference Proceedings Japan Society for Software Science and Technology
, 2001
"... This paper shows that an ecient linear time algorithm for mining optimized gain association rules can be systematically derived from a simple speci cation by reducing it to an instance of the maximum marking problem. Our approach not only automatically guarantees the correctness of the derived algo ..."
Abstract
 Add to MetaCart
This paper shows that an ecient linear time algorithm for mining optimized gain association rules can be systematically derived from a simple speci cation by reducing it to an instance of the maximum marking problem. Our approach not only automatically guarantees the correctness of the derived algorithm, but also is easy to derive Derivation of A Linear Algorithm for Mining Optimized Gain Association Rules Isao Sasano, El5~Bg3XBg3X1!9)3X7O8&5f2J>pJs9)3X@l96, Department of Information Engineering, University of Tokyo, FK\3X=Q?66=2qFCJL8&5f0w, JSPS Research Fellow
Deterministic Secondorder Patterns in Program Transformation
 In International Symposium on Logicbased Program Synthesis and Transformation (LOPSTR 2003
, 2003
"... Higherorder patterns, together with higherorder matching, enable concise specification of program transformation, and have been implemented in several program transformation systems. However, higherorder matching generally generates nondeterministic matches, and the matching algorithm is so ex ..."
Abstract
 Add to MetaCart
Higherorder patterns, together with higherorder matching, enable concise specification of program transformation, and have been implemented in several program transformation systems. However, higherorder matching generally generates nondeterministic matches, and the matching algorithm is so expensive that even secondorder matching is NPcomplete. It is orthodox to impose constraint on the form of patterns so as to obtain the desirable matches satisfying certain properties such as decidability and finiteness. In the context of unification, Miller's higherorder patterns have a single most general unifier, while unification of general patterns is nondeterministic (and even undecidable). We relax the restriction of his patterns without changing determinism in the context of matching instead of unification. As a consequence, our deterministic secondorder pattern covers a wide class of useful patterns for program transformation. Our deterministic matching algorithm is as fast as the firstorder matching algorithm, almost in proportion to the size of the term.
HighLevel Models for Transformation Oriented Design of Hardware and Embedded Systems
, 2008
"... Evolution of design methodologies follows a common trail: technology scaling leads to growing design complexity and rising abstraction level in the domain. Introduction of new (higher) abstraction levels emphasizes the importance of reuse and transformations. The design process can be seen as a seq ..."
Abstract
 Add to MetaCart
Evolution of design methodologies follows a common trail: technology scaling leads to growing design complexity and rising abstraction level in the domain. Introduction of new (higher) abstraction levels emphasizes the importance of reuse and transformations. The design process can be seen as a sequence of highlevel transformations from the higherlevel specification to the lowerlevel one. We analyze highlevel modeling and metaprogramming techniques for
Software Maintenance Supported by Refactoring
"... Abstract — In this paper a new maintenance scenario is outlined based on refactoring techniques. Specifically, refactoring techniques are classified according to two opposed program properties: understanding and efficiency. Understanding oriented refactoring disassembles the program preparing it for ..."
Abstract
 Add to MetaCart
Abstract — In this paper a new maintenance scenario is outlined based on refactoring techniques. Specifically, refactoring techniques are classified according to two opposed program properties: understanding and efficiency. Understanding oriented refactoring disassembles the program preparing it for maintenance, whereas those oriented to efficiency rearrange it for running. Also, we show the challenges raised from this new perspective on maintenance. At present, this ongoing research is being carried out in the functional setting.