Zhenjiang Hu

Rewriting XQuery to Avoid Redundant Expressions based on Static Emulation of XML Store (2009)

Hiroyuki Kato, Soichiro Hidaka, Zhenjiang Hu, Yasunori Ishihara, Keisuke Nakano

Rewriting composite expressions based on eliminating intermediate results generated by redundant expressions is a traditional optimization technique (known as fusion) in both programming languages...

Constructive Algorithmics 5 (2008)

Constructive Algorithmics, Zhenjiang Hu, R. S. Bird, Lecture Notes, Constructive Functional Programming

Try you best to design an efficient and correct program to compute the maximum of the sums of all segments of a given sequence of numbers, positive, negative, or zero. mss [3, 1, −4, 1, 5, −9, 2]...

Calculation Rules for Warming-up in Fusion Transformation (2008)

Tetsuo Yokoyama, Zhenjiang Hu, Masato Takeichi

Warm-up transformation is an important preprocess for shortcut fusion. In this paper, we formalize the warm-up transformation by proposing a set of general and powerful calculation rules that can be...

Design and implementation of deterministic higher-order patterns, 2005. Draft. Available at http:://www.ipl.t.u-tokyo.ac.jp/yicho (2008)

Tetsuo Yokoyama, Zhenjiang Hu, Masato Takeichi

Abstract. We introduce a class of deterministic higher-order patterns to Template Haskell for supporting declarative transformational programming with more elegant binding of pattern variables....

Preface (2008)

Robert Glück, Zhenjiang Hu (eds, Zhenjiang Hu

These proceedings contain the contributions presented at the 1st DIKU-IST

A Bidirectional Transformation Approach towards Automatic Model Synchronization ⋆ (2008)

Yingfei Xiong, Dongxi Liu, Zhenjiang Hu, Masato Takeichi

Model-driven architecture (MDA) [1] is a discipline in software engineering that relies on models as first class entities and that aims to develop, maintain and evolve software by performing model...

Abstract Bidirectionalization Transformation Based on Automatic Derivation of View Complement Functions (2008)

Kazutaka Matsuda, Zhenjiang Hu, Keisuke Nakano, Makoto Hamana, Masato Takeichi

Bidirectional transformation is a pair of transformations: a view function and a backward transformation. A view function maps one data structure called source onto another called view. The...

IO Swapping Leads You There And Back Again (Extended Abstract) ⋆ (2008)

Akimasa Morihata, Kazuhiko Kakehi, Zhenjiang Hu, Masato Takeichi

TABA (“There And Back Again”) [DG02], proposed by Danvy and Goldberg, is a special but powerful programming pattern where a recursive function traverses lists at return time. Their idea is that...

Abstract Automatic Inversion Generates Divide-and-Conquer Parallel Programs (2008)

Kazutaka Morita, Akimasa Morihata, Kiminori Matsuzaki, Zhenjiang Hu, Masato Takeichi

Divide-and-conquer algorithms are suitable for modern parallel machines, tending to have large amounts of inherent parallelism and working well with caches and deep memory hierarchies. Among others,...

Realizing Bidirectional Graph Transformations From Bidirectional Tree Transformations (2008)

Yingfei Xiong, Zhenjiang Hu, Dongxi Liu, Haiyan Zhao, Hong Mei, Masato Takeichi

Bidirectional transformations are useful to maintain consistency between source data and target data. So far, researchers have proposed several theories and tools for bidirectional transformations on...

Experimentation, Theory (2008)

Kiminori Matsuzaki, Zhenjiang Hu, Masato Takeichi

Tree contraction algorithms, whose idea was first proposed by Miller and Reif, are important parallel algorithms to implement efficient parallel programs manipulating trees. Despite their efficiency,...

Domain-Specific Optimization Strategy for Skeleton Programs (2008)

Kento Emoto, Kiminori Matsuzaki, Zhenjiang Hu, Masato Takeichi

Abstract. Skeletal parallel programming enables us to develop parallel programs easily by composing ready-made components called skeletons. However, a simplycomposed skeleton program often lacks...

Abstract (2008)

Bidirectionalising Haxml, Shin-cheng Mu, Zhenjiang Hu, Masato Takeichi

A transformation from the source data to a target view is said to be bidirectional if, when the target is altered, the transformation somehow induces a way to reflect the changes back to the source,...

B[count++] = A[i]; (2008)

Zhenjiang Hu, Tetsuo Yokoyama, Masato Takeichi

/ * copy all bigger elements from A[1..n] into B[] */ count = 0; for (i=0; i<n; i++) { sumAfter = 0; for (j=i+1; j<n; j++) { sumAfter + = A[j]; if (A[i]> sumAfter)

Documentation, Languages (2008)

Dongxi Liu, Zhenjiang Hu, Masato Takeichi

In the domain of XML authoring, there have been many tools to help users to edit XML documents. These tools make it easier to produce complex documents by using such technologies as syntax-directed...

Calculation Rules for Warming-up in Fusion Transformation (2008)

Tetsuo Yokoyama, Zhenjiang Hu, Masato Takeichi

Warm-up transformation is an important preprocess for shortcut fusion. In this paper, we formalize the warm-up transformation by proposing several general and powerful calculation rules that can be...

Surrounding Theorem: Developing Parallel Programs for Matrix-Convolutions (2008)

Kento Emoto, Kiminori Matsuzaki, Zhenjiang Hu, Masato Takeichi

Abstract. Computations on two-dimensional arrays such as matrices and images are one of the most fundamental and ubiquitous things in computational science and its vast application areas, but...

An Optimal Staging Algorithm (2008)

Takuma Murakami, Zhenjiang Hu, Masato Takeichi

Staging is an alternative approach for binding-time analysis and program specialization, making some pieces of code dynamic. Tim Sheard and Nathan Linger showed a search-based algorithm for automated...

A Type System for Parallelization (2008)

Dana N. Xu, Siau-cheng Khoo, Wei-ngan Chin, Zhenjiang Hu

Parallel programming is becoming an important cornerstone of general computing. In addition, type systems have significant impact on program analysis. In this paper, we demonstrate an automated...

Bidirectionalizing Tree Transformations (2008)

Zhenjiang Hu Kento, Zhenjiang Hu, Kento Emoto, Shin-cheng Mu, Masato Takeichi

A transformation from the source data to a target view is said to be bidirectional if, when the target is altered, the transformation somehow induces a way to reflect the changes back to the source....

An Efficient Staging Algorithm for Binding-Time Analysis (2007)

Takuma Murakami, Zhenjiang Hu, Kazuhiko Kakehi, Masato Takeichi

Binding-Time Analysis (BTA) is one of the compile time program analyses which is a general framework for program optimization and program generation [1]. BTA divides a whole program into static and...

A Case Study on a Modular Transformation Strategy (2007)

Zhenjiang Hu, Wei-ngan Chin, Masato Takeichi

Transformational programming is a well-known methodology to derive both correct and efficient programs. But it often requires deep insights to make major jumps during derivation, and so it remains...

Catamorphic Approach to Program Analysis (2007)

Mizuhito Ogawa, Zhenjiang Hu, Isao Sasano, Masato Takeichi

Abstract. This paper proposes a new framework for program analysis that regards them as maximum marking problems: mark the codes of a program under a certain condition such that the number of marked...

Calculation Carrying Programs (2007)

Zhenjiang Hu, Masato Takeichi

In this paper, we propose a new mechanism called calculation carrying programs that can relax the tension between efficiency and clarity in programming. The idea is to accompany clear programs with...

A type-based approach to parallelization (2007)

Dana N. Xu, Siau-cheng Khoo, Wei-ngan Chin, Zhenjiang Hu

Parallel programs can be synthesized from sequential functional programs via a technique known as context preservation [6]. This technique has significantly broadened the set of sequential programs...

2000, ‘Loop quasi-invariance code motion (2007)

Litong Song, Yoshihiko Futamura, Robert Gl Uck, Zhenjiang Hu, Summary Loop

optimiz7](V plays an important role in compileroptimizRV]) and program transformation. Many sophisticated techniques such as loop-invariance code motion, loop restructuring and loop fusion have been...

Segmented Di#usion Theorem (2007)

Zhenjiang Hu, Tomonari Takahashi, Hideya Iwasaki, Masato Takeichi

Abstract--- Skeletal parallel programming ease parallel programming by providing e#cient ready-made skeletons. However, nested use of skeletons are difficult to be implemented in an e#ciently and...

Towards a Modular Program Derivation via Fusion and Tupling (2007)

Wei-Ngan Chin, Zhenjiang Hu

We show how programming pearls can be systematically derived via fusion, followed by tupling transformations. By focusing on the elimination of intermediate data structures (fusion) followed by the...

2 (2007)

Zhenjiang Hu, Masato Takeichi

Abstract. Parallel skeletons intend to encourage programmers to build a parallel program from ready-made components for which ecient implementations are known to exist, making the parallelization...

Calculating Accumulations 1 Calculating Accumulations (2007)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

The accumulation strategy consists of generalizing a function over an algebraic data structure by inclusion of an extra parameter, an accumulating parameter, for reusing and propagating intermediate...

2 (2007)

Zhenjiang Hu, Wei-ngan Chin, Masato Takeichi

The general goal of data mining is to extract interesting correlated information from large collection of data. A key computationally-intensive subproblem of data mining involves nding frequent sets...

An Efficient Staging Algorithm for Binding-Time Analysis (2007)

Takuma Murakami, Zhenjiang Hu, Kazuhiko Kakehi, Masato Takeichi

Binding-Time Analysis (BTA) is one of the compile time program analyses which is a general framework for program optimization and program generation [1]. BTA divides a whole program into static and...

An Algebraic Interface for GETA Search Engine (2007)

Takuma Murakami, Zhenjiang Hu, Shingo Nishioka, Akihiko Takano, Masato Takeichi

GETA is a library that implements high performance method for associative computation to be used as a basis of various document processing including searching or clustering. We proposed an algebraic...

Deterministic Higher-order Patterns for Program Transformation (2007)

Tetsuo Yokoyama, Zhenjiang Hu, Masato Takeichi

Abstract. Higher-order patterns, together with higher-order matching, enable concise specication of program transformation, and have been implemented in several program transformation systems....

Bi-X Core: A General-Purpose Bidirectional Transformation Language (2007)

Dongxi Liu, Keisuke Nakano, Yasushi Hayashi, Zhenjiang Hu, Masato Takeichi, Akimasa Morihata, ...

Bi-X Core is a general-purpose bidirectional transformation language, aiming to implement various systems that need synchronization between their input data and output data. In syntax, Bi-X Core is a...

H.: Towards automatic model synchronization from model transformations (2007)

Yingfei Xiong, Dongxi Liu, Zhenjiang Hu, Haiyan Zhao, Masato Takeichi, Hong Mei

The metamodel techniques and model transformation techniques provide a standard way to represent and transform data, especially the software artifacts in software development. However, after a...

Bidirectionalization transformation based on automatic derivation of view complement function (2007)

Kazutaka Matsuda, Kazutaka Matsuda, Zhenjiang Hu, Zhenjiang Hu, Keisuke Nakano, Keisuke Nakano, ...

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

M.: Domain-specific optimization for skeleton programs involving neighbor elements (2007)

Kento Emoto, Kento Emoto, Kiminori Matsuzaki, Kiminori Matsuzaki, Zhenjiang Hu, Zhenjiang Hu, ...

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

Abstract Bidirectional Interpretation of XQuery (2007)

Dongxi Liu, Zhenjiang Hu, Masato Takeichi

XQuery is a powerful functional language to query XML data. This paper presents a bidirectional interpretation of XQuery to address the problem of updating XML data through materialized XQuery views....

– Updating XML through Materialized XQuery View – (2006)

Bidirectionalizing Xquery, Dongxi Liu, Zhenjiang Hu, Masato Takeichi, Bidirectionalizing Xquery, Dongxi Liu, ...

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

A library of constructive skeletons for sequential style of parallel programming (2006)

Kiminori Matsuzaki, Kento Emoto, Hideya Iwasaki, Zhenjiang Hu

Abstract — With the increasing popularity of parallel programming environments such as PC clusters, more and more sequential programmers, with little knowledge about parallel architectures and...

An practicable framework for tree reductions under distributed memory environments (2006)

Kazuhiko Kakehi, Kazuhiko Kakehi, Kiminori Matsuzaki, Kiminori Matsuzaki, Kento Emoto, Kento Emoto, ...

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

Efficient Implementation of Tree Skeletons on Distributed-Memory Parallel Computers (2006)

Kiminori Matsuzaki, Zhenjiang Hu, Kiminori Matsuzaki, Zhenjiang Hu

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

Swapping arguments and results of recursive functions (2006)

Akimasa Morihata, Kazuhiko Kakehi, Zhenjiang Hu, Masato Takeichi

Abstract. Many useful calculation rules, such as fusion and tupling, rely on well-structured functions, especially in terms of inputs and outputs. For instance, fusion requires that well-produced...

Systematic derivation of tree contraction algorithms (2005)

Kiminori Matsuzaki, Zhenjiang Hu, Kazuhiko Kakehi, Masato Takeichi

Abstract. While tree contraction algorithms play an important role in efficient tree computation in parallel, it is difficult to develop such algorithms due to the strict conditions imposed on...

A Compositional Framework for Developing Parallel Programs on Two Dimensional Arrays (2005)

Kento Emoto, Kento Emoto, Zhenjiang Hu, Zhenjiang Hu, Kazuhiko Kakehi, Kazuhiko Kakehi, ...

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

A Compositional Framework for Developing Parallel Programs on Two Dimensional Arrays (2005)

Kento Emoto, Zhenjiang Hu, Kazuhiko Kakehi, Masato Takeichi

Abstract. Computations on two-dimensional arrays such as matrices and images are one of the most fundamental and ubiquitous things in computational science and its vast application areas, but...

Design and implementation of general tree skeletons (2005)

Kiminori Matsuzaki, Kiminori Matsuzaki, Zhenjiang Hu, Zhenjiang Hu, Masato Takeichi, Masato Takeichi

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

An algebraic approach to bi-directional updating (2004)

Shin-cheng Mu, Zhenjiang Hu, Masato Takeichi

Abstract. In many occasions would one encounter the task of maintaining the consistency of two pieces of structured data that are related by some transform — synchronising bookmarks in different...

A programmable editor for developing structured documents based on bidirectional transformations (2004)

Zhenjiang Hu, Shin-cheng Mu, Masato Takeichi

This paper presents a novel editor supporting interactive refinement in the development of structured documents. The user performs a sequence of editing operations on the document view, and the...

PType system: A featherweight parallelizability detector (2004)

Dana N. Xu, Siau-cheng Khoo, Zhenjiang Hu

Abstract. Parallel programming is becoming an important cornerstone of general computing. In addition, type systems have significant impact on program analysis. In this paper, we demonstrate an...

❢c World Scientific Publishing Company SYSTEMATIC DERIVATION OF TREE CONTRACTION ALGORITHMS ∗ (2004)

Kiminori Matsuzaki, Zhenjiang Hu, Kazuhiko Kakehi, Masato Takeichi

While tree contraction algorithms play an important role in efficient tree computation in parallel, it is difficult to develop such algorithms due to the strict conditions imposed on contracting...

An injective language for reversible computation (2004)

Shin-cheng Mu, Zhenjiang Hu, Masato Takeichi

Abstract. Erasure of information incurs an increase in entropy and dissipates heat. Therefore, information-preserving computation is essential for constructing computers that use energy more...

A Fusion-Embedded Skeleton Library (2004)

Kiminori Matsuzaki, Kazuhiko Kakehi, Hideya Iwasaki, Zhenjiang Hu, Yoshiki Akashi

This paper addresses a new framework for designing and implementing skeleton libraries, in which each skeleton should not only be efficiently implemented as is usually done, but also be equipped with...

An Algebraic Approach to Bi-Directional Updating (2004)

Shin-Cheng Mu, Zhenjiang Hu, Masato Takeichi

In many occasions would one encounter the task of maintaining the consistency of two pieces of structured data related by some transform --- synchronise bookmarks in different web browsers, the...

A Programmable Editor for Developing Structured Documents Based on Bidirectional Transformations (2004)

Zhenjiang Hu, Shin-Cheng Mu, Masato Takeichi

This paper presents a novel editor supporting interactive refinement in the development of structured documents. The user performs a sequence of editing operations on the document view, and the...

Deterministic Second-order Patterns (2004)

Tetsuo Yokoyama, Zhenjiang Hu, Masato Takeichi

Second-order patterns, together with second-order matching, enable concise speci cation of program transformation, and have been implemented in several program transformation systems. However,...

A New Parallel Skeleton for General Accumulative Computations (2004)

Hideya Iwasaki, Zhenjiang Hu

this paper, we propose a powerful and general parallel skeleton called accumulate and describe its efficientimplementation in C++ with MPI (Message Passing Interface) (18) as a solution to the above...

Parallel Processing Letters, ❢c World Scientific Publishing Company SYSTEMATIC DERIVATION OF TREE CONTRACTION ALGORITHMS ∗ (2004)

Kiminori Matsuzaki, Zhenjiang Hu, Kazuhiko Kakehi, Masato Takeichi

While tree contraction algorithms play an important role in efficient tree computation in parallel, it is difficult to develop such algorithms due to the strict conditions imposed on contracting...

A programmable editor for developing structured documents based on bidirectional transformations (2004)

Zhenjiang Hu, Shin-cheng Mu, Nevin Heintze, Julia Lawall, Michael Leuschel, Peter Sestoft

Abstract. This paper presents an application of bidirectional transformations to design and implementation of a novel editor supporting interactive refinement in the development of structured...

A Fusion-Embedded Skeleton Library (2004)

Kiminori Matsuzaki, Kazuhiko Kakehi, Hideya Iwasaki, Zhenjiang Hu, Yoshiki Akashi

Abstract. This paper addresses a new framework for designing and implementing skeleton libraries, in which each skeleton should not only be efficiently implemented as is usually done, but also be...

A programmable editor for developing structured documents based on bidirectional transformations (2004)

Zhenjiang Hu, Shin-cheng Mu, Nevin Heintze, Julia Lawall, Michael Leuschel, Peter Sestoft

Abstract. This paper presents an application of bidirectional transformation to the design and implementation of a novel editor supporting interactive refinement in the development of structured...

A Tutorial Implementation of the Diffusion Algorithmic Skeleton with the BSMLlib Library (2004)

Frederic Loulergue, Frédéric Loulergue, Zhenjiang Hu, Zhenjiang Hu, Kazuhiko Kakehi, Kazuhiko Kakehi

Skeleton programming enables programmers to build parallel programs easier by providing efficient ready-made parallel algorithms. The diffusion skeleton was proposed (associated with a method for...

A Type-Based Approach to Parallelization (2003)

Dana N. XU, Siau Cheng KHOO, Wei Ngan CHIN, Zhenjiang HU

Parallel functional programming plays an important role in parallel programming [16]. Type system has signi.cant impact on program analysis [23]. In this paper, we show how to automatically and...

TreeCalc: towards programmable structured documents (2003)

Masato Takeichi, Zhenjiang Hu, Kazuhiko Kakehi, Yasushi Hayashi, Shin-cheng Mu, Keisuke Nakano

A programmable structured document is a structured document with dynamically calculated components that can be specified by users in a functional programming language. TreeCalc, a tree version of...

Parallelization with tree skeletons (2003)

Kiminori Matsuzaki, Zhenjiang Hu, Masato Takeichi

Abstract. Trees are useful data structures, but to design efficient parallel programs over trees is known to be more difficult than to do over lists. Although several important tree skeletons have...

Parallelization with tree skeletons (2003)

Kiminori Matsuzaki, Kiminori Matsuzaki, Zhenjiang Hu, Zhenjiang Hu, Masato Takeichi, Masato Takeichi

The METR technical reports are published as a means to ensure timely dissemination of scholarly and technical work on a non-commercial basis. Copyright and all rights therein are maintained by the...

Mathematical Engineering (2003)

Parallelization With Tree, Kiminori Matsuzaki, Kiminori Matsuzaki, Zhenjiang Hu, Zhenjiang Hu, Masato Takeichi, ...

Trees are useful data structures, but to design e#cient parallel programs over trees is known to be more di#cult than to do over lists. Although several important tree skeletons have been proposed to...

List Homomorphism with Accumulation (2003)

Kazuhiko Kakehi, Zhenjiang Hu, Masato Takeichi

This paper introduces accumulation into list homomorphisms for systematic development of both efficient and correct parallel programs. New parallelizable recursive pattern called is given, and...

Iterative-Free Program Analysis (2003)

Mizuhito Ogawa, Zhenjiang Hu, Isao Sasano

flow analyses are reduced to the problem of finding a fixed point in a certain transition system, and such fixed point is commonly computed through an iterative procedure that repeats tracing until...

Parallelization with tree skeletons (2003)

Kiminori Matsuzaki, Zhenjiang Hu, Masato Takeichi

Abstract. Trees are useful data structures, but to design efficient parallel programs over trees is known to be more difficult than to do over lists. Although several important tree skeletons have...

Deterministic Second-order Patterns in Program Transformation (2003)

Tetsuo Yokoyama, Zhenjiang Hu, Masato Takeichi

Higher-order patterns, together with higher-order matching, enable concise specification of program transformation, and have been implemented in several program transformation systems. However,...

A compositional framework for mining longest ranges (2002)

Haiyan Zhao, Haiyan Zhao, Zhenjiang Hu, Zhenjiang Hu, Masato Takeichi, Masato Takeichi

This paper proposes a compositional framework for mining interesting range information from huge databases, in which a domain specific query language is provided to specify the range of interest, and...

A compositional framework for mining longest ranges (2002)

Haiyan Zhao, Zhenjiang Hu, Masato Takeichi

Abstract. This paper proposes a compositional framework for discovering interesting range information from huge databases, where a domain specific query language is provided to specify the range of...

Multidimensional searching trees with minimum attribute (2002)

Haiyan Zhao, Zhenjiang Hu, Masato Takeichi

The study of data structures for rapid searching is a fascinating subject of both practical and theoretical interest. This paper proposes a new data structure, called k-d-m tree, to address an ecient...

Implementation of Parallel Tree Skeletons (2002)

On Distributed Systems, Kiminori Matsuzaki, Zhenjiang Hu, Masato Takeichi

Trees are useful data types, but developing e#cient parallel programs manipulating trees is known to be di#cult, because of their irregular and imbalance structure. Parallel tree skeletons are...

Generation of Efficient Programs for Solving Maximum Multi-Marking Problems (2001)

Isao Sasano, Zhenjiang Hu, Masato Takeichi

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...

Calculating linear time algorithms for solving maximum weightsum problems (2001)

Isao Sasano, Zhenjiang Hu, Masato Takeichi, Mizuhito Ogawa

In this paper, we propose a new method to derive practical linear time algorithms for maximum weightsum problems. A maximum weightsum problem is specified as follows: given a recursive data x, find...

Generation of Efficient Programs for Solving Maximum Multi-Marking Problems (2001)

Isao Sasano, Zhenjiang Hu, Masato Takeichi

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...

A Loop Optimization Technique Based on Quasi-Invariance (2000)

Litong Song, Yoshihiko Futamura, Robert Glück, Zhenjiang Hu

Loop optimization plays an important role in compiler optimization and program transformation. Many sophisticated techniques such as loopinvariance code motion, loop restructuring and loop fusion...

Calculation carrying programs: How to code program transformations (invited paper (2000)

Masato Takeichi, Zhenjiang Hu

In this paper, we propose a new mechanism called calculation carrying programs that can relax the tension between efficiency and clarity in programming. The idea is to accompany clear programs with...

Make it Practical: A Generic Linear-Time Algorithm for Solving Maximum-Weightsum Problems (2000)

Isao Sasano, Zhenjiang Hu, Masato Takeichi, Mizuhito Ogawa

In this paper we propose a new method for deriving a practical linear-time algorithm from the specification of a maximum-weight sum problem: From the elements of a data structure x, find a subset...

Diff: A Powerful Parallel Skeleton (2000)

Seiichi Adachi, Hideya Iwasaki, Zhenjiang Hu

Skeleton parallel programming encourages programmers to build a parallel program from ready-made components for which efficient implementations are known to exist, making both the parallel program...

Calculating a New Data Mining Algorithm for Market Basket Analysis (2000)

Zhenjiang Hu, Wei-ngan Chin, Masato Takeichi

. The general goal of data mining is to extract interesting correlated information from large collection of data. A key computationallyintensive subproblem of data mining involves finding frequent...

Make it Practical: A Generic Linear-Time Algorithm for Solving Maximum-Weightsum Problems (2000)

Isao Sasano, Zhenjiang Hu, Masato Takeichi, Mizuhito Ogawa

In this paper we propose a new method for deriving a practical linear-time algorithm from the speci cation of a maximum-weightsum problem: From the elements of a data structure x, nd a subset which...

Calculating a new data mining algorithm for market basket analysis (2000)

Zhenjiang Hu, Wei-ngan Chin, Masato Takeichi

The general goal of data mining is to extract interesting correlated information from large collection of data. A key computationally-intensive subproblem of data mining involves finding frequent...

Deriving parallel codes via invariants (2000)

Wei-ngan Chin, Siau-cheng Khoo, Zhenjiang Hu, Masato Takeichi

Abstract. Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemestendtobenarrower in scope, as the properties...

Diffusion: Calculating efficient parallel programs (1999)

Zhenjiang Hu, Masato Takeichi, Hideya Iwasaki

Parallel primitives (skeletons) intend to encourage programmers to build a parallel program from ready-made components for which efficient implementations are known to exist, making the...

Calculating an Optimal Homomorphic Algorithm for Bracket Matching (1999)

Zhenjiang Hu, Masato Takeichi

this paper, we intend to clarify this point by demonstrating a formal derivation of a correct but efficient homomorphic parallel algorithm for a simple language recognition problem known as bracket...

Calculation Carrying Programs (1999)

Zhenjiang Hu, Masato Takeichi

this paper, we propose a new mechanism called calculation carrying programs that can relax the tension between efficiency and clarity in programming. The idea is to accompany clear programs with some...

A Case Study on a Modular Transformation Strategy (1999)

Zhenjiang Hu, Wei-ngan Chin, Masato Takeichi

this paper, we show that it is possible to minimize these deep insights. Our thesis is that the high-level transformation techniques such as fusion, tupling, and generalization/accumulation can be...

Calculating an Optimal Homomorphic Algorithm for Bracket Matching (1999)

Zhenjiang Hu, Masato Takeichi

It is widely recognized that a key problem of parallel computation is in the development of both efficient and correct parallel software. Although many advanced language features and compilation...

Diffusion: Calculating Efficient Parallel Programs (1999)

Zhenjiang Hu, Masato Takeichi, Hideya Iwasaki

Parallel primitives (skeletons) intend to encourage programmers to build a parallel program from ready-made components for which efficient implementations are known to exist, making the...

Towards polytypic parallel programming (1998)

Zhenjiang Hu, Masato Takeichi, Hideya Iwasaki

Data parallelism is currently one of the most successful models for programming massively parallel computers. The central idea is to evaluate a uniform collection of data in parallel by...

Parallelization via Context Preservation (1998)

W N Chin, A Takano, Z Hu, Wei-ngan Chin, Akihiko Takano, Zhenjiang Hu

Abstract program schemes, such as scan or homomorphism, can capture a wide range of data parallel programs. While versatile, these schemes are of limited practical use on their own. A key problem is...

Parallelization in Calculational Forms (1998)

Zhenjiang Hu, Masato Takeichi, Wei-ngan Chin

The problems involved in developing efficient parallel programs have proved harder than those in developing efficient sequential ones, both for programmers and for compilers. Although program...

Program Transformation in Calculational Form (1998)

Akihiko Takano, Zhenjiang Hu, Masato Takeichi

Correctness-preserving program transformation has recently received a particular attention for compiler optimization in functional programming [Kelsey and Hudak 1989; Appel 1992; Peyton Jones 1996]....

Towards Manipulation of Mutually Recursive Functions (1998)

Hideya Iwasaki, Zhenjiang Hu, Masato Takeichi

In functional programming, Constructive Algorithmics is one of... In this paper, we shall formalize mutual recursive data types in terms of bifunctors and extend hylomorphisms to describe mutual...

A Calculational Fusion System HYLO (1997)

Yoshiyuki Onoue, Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi, Y. Onoue, Z. Hu, ...

Fusion, one of the most useful transformation tactics for deriving efficient programs, is the process whereby separate pieces of programs are fused into a single one, leading to an efficient program...

Enhanced Parallelization via Constraints (1997)

Wei-ngan Chin, Zhenjiang Hu, Masato Takeichi, Akihiko Takano

Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemes are somewhat narrow in scope, as the properties which...

A Modular Derivation Strategy via Fusion and Tupling (1997)

Wei-ngan Chin, Zhenjiang Hu, Masato Takeichi

We show how programming pearls can be systematically derived via fusion, followed by tupling transformations. By focusing on the elimination of intermediate data structures (fusion) followed by the...

Enhanced Parallelization via Constraints (1997)

Wei-ngan Chin, Zhenjiang Hu, Akihiko Takano

Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemes are somewhat narrow in scope, as the properties which...

A Modular Derivation Strategy via Fusion and Tupling (1997)

Wei-ngan Chin, Zhenjiang Hu, Masato Takeichi

We showhow programming pearls can be systematically derived via fusion, followed by tupling transformations. By focusing on the elimination of intermediate data structures #fusion # followed by the...

A Calculational Framework for Parallelization of Sequential Programs (1997)

Zhenjiang Hu, Masato Takeichi

A great deal of effort has been made on systematic ways for parallelizing sequential programs. What seems to be unsatisfactory, however, is that the current approaches are either too general where...

Tupling Calculation Eliminates Multiple Data Traversals (1997)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi, Akihiko Takano

Tupling is a well-known transformation tactic to obtain new efficient recursive functions by grouping some recursive functions into a tuple. It may be applied to eliminate multiple traversals over...

Deriving Structural Hylomorphisms From Recursive Definitions (1996)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

this paper, we propose an algorithm which can automatically turn all practical recursive definitions into structural hylomorphisms making program fusion be easily applied. 1 Introduction

Deriving Structural Hylomorphisms From Recursive Definitions (1996)

Zhenjiang Hu Hideyaiwasaki, Zhenjiang Hu, Masato Takeichi

this paper, we propose an algorithm which can automatically turn all practical recursive definitions into structural hylomorphisms making program fusion be easily applied. 1 Introduction

Cheap Tupling Transformation (1996)

Zhenjiang Hu Hideyaiwasaki, Zhenjiang Hu, Masato Takeichi

this paper, we propose a cheap tupling based on the theory of constructive algorithmics. We give several simple but effective calculational rules, which not only can be successfully applied to...

Formal Derivation of Parallel Program for 2-Dimensional Maximum Segment Sum Problem (1996)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

. It has been attracting much attention to make use of list homomorphisms in parallel programming because they ideally suit the divide-and-conquer parallel paradigm. However, they have been usually...

Cheap Tupling Transformation (1996)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

this paper, we propose a cheap tupling based on the theory of constructive algorithmics. We give several simple but effective calculational rules, which not only can be successfully applied to...

Deriving Structural Hylomorphisms From Recursive Definitions (1996)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

In functional programming, small programs are often glued together to construct a complex program. Program fusion is an optimizing process whereby these small programs are fused into a single one and...

Construction of List Homomorphisms by Tupling and Fusion (1996)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

List homomorphisms are functions which can be efficiently computed in parallel since they ideally suit the divide-and-conquer paradigm. However, some interesting functions, e.g., the maximum segment...

An Extension Of The Acid Rain Theorem (1996)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

Program fusion (or deforestation) is a well-known transformation whereby compositions of several pieces of code are fused into a single one, resulting in an efficient functional program without...

Promotional Transformation on Monadic Programs (1995)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

this paper, we propose a new theory on monadic catamorphism bymoving Fokkinga's assumption on the monad to the condition of a map between monadic algebras so that our theory is valid for...

Promotional Transformation on Monadic Programs (1995)

Zhenjiang Hu Hideya, Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

this paper, we propose a new theory on monadic catamorphism by moving Fokkinga's assumption on the monad to the condition of a map between monadic algebras so that our theory is valid for...

Promotional Transformation of Monadic Programs (1995)

Zhenjiang Hu, Hideya Iwasaki

Monads are becoming an increasingly important tool for structural functional programming, because they provide a uniform framework for describing a wide range of programming language features. To...

Catamorphism-Based Transformation of Functional Programs (1994)

Zhenjiang Hu, Hideya Iwasaki, Masato Takeichi

this paper is to deal with the transformation on accumulations so that more efficient programs can be derived. We formulate accumulations by means of higher order catamorphisms and propose a...

Deriving Parallel Codes via Invariants

Wei-ngan Chin, Siau-cheng Khoo, Zhenjiang Hu, Masato Takeichi

. Systematic parallelization of sequential programs remains a major challenge in parallel computing. Traditional approaches using program schemes tend to be narrower in scope, as the properties which...