VLDB 2026 Research / reviewers in the wild / expert
Zhenjiang Hu 0002
dblp:24/5199-2
· DBLP profile ↗
130ranked-venue papers
11as first author
23since 2021 · last 2026
0000-0002-9034-205XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 89 · 10 first-author · 20 since 2021Theory of computation · 20 · 2 first-author · 4 since 2021Systems, architecture and hardware · 13Applied, interdisciplinary, general and emerging computing · 9 · 1 since 2021Databases, data management, data science and information retrieval · 5Artificial intelligence and machine learning · 3Security and privacy · 2Human-computer interaction and ubiquitous computing · 2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Formal Verification of Functional Correctness for the OpenHarmony LiteOS-M KernelabstractAbstract OpenHarmony LiteOS-M, a preemptive operating system (OS) kernel for the Internet of Things (IoT), is widely deployed in safety-critical domains, such as aerospace and transportation. As a rigorous method to assure software safety, formal verification has been applied to OS kernels in industry. However, entirely verified kernels with large codebases are rare, since such verification is typically performed within interactive theorem provers, requiring substantial human effort. In this paper, we present the functional correctness verification of LiteOS-M. First, to improve verification efficiency, we design a formal verification platform, Smart Verifier. The platform employs an annotation-based verifier as the front end, while the back end integrates Z3 and Rocq, combining automatic and interactive theorem proving techniques. Second, we tailor two verification methods, expressing program refinement as standard Hoare logic triples and modeling concurrency through state transition systems, to utilize the platform for verifying LiteOS-M. Our verified LiteOS-M kernel consists of 17,000 lines of C. During the code review and verification, we find a total of 17 bugs, all confirmed and fixed by developers. Qinxiang Cao, Shenghua Feng, Naijun Zhan, Yongzhi Cao, Haiyan Zhao 0001, Zhenjiang Hu 0002 |
FM (2) | 10 |
| 2026 | Inferring Typing Rules for Contextual SugarsabstractSyntactic sugars ease the definition of new language constructs by transforming them into an existing core language. Previous works lift independent typing rules and other semantics for these new constructs from the core language. The lifted semantics preserve the abstraction boundary of syntactic sugars, freeing users from inspecting desugared code that they did not write. While sugars may interact with contextual information during desugaring in general, these works are limited to simple sugars that do not. We identify a class of contextual sugars and present an extended algorithm for lifting their typing rules. With the addition of contexts, naïvely representing desugaring results in the core language may cause unexpected behavior and break hygiene. We introduce anchored terms that can point to the provenance of their contexts to represent desugaring results, which is similar to mechanisms used in Racket macros. Anchored terms need not concern authors or users of contextual sugars, but enable local reasoning. The lifted typing rules are sound with respect to the typing of anchored core language terms. Tailai Yu, Zhichao Guan 0002, Di Wang 0017, Zhenjiang Hu 0002 |
PEPM | 4 |
| 2026 | A HOL Theorem Proving Interface for C
Yiyuan Cao, Jiayi Zhuang, Jinkai Fan, Di Wang 0017, Zhenjiang Hu 0002 |
TASE | 5 |
| 2026 | QCP: A Practical Separation Logic-Based C Program Verification Tool
Xiwei Wu, Yueyang Feng, Xiaoyang Lu, Tianchuan Lin, Shushu Wu, Lihan Xie, Chengxi Yang, Hongyi Zhong, Juanru Li, Naijun Zhan, Zhenjiang Hu 0002, Qinxiang Cao |
TASE | 14 |
| 2026 | Enabling direct manipulation of plain-text output for template programs
Tao Zan, Xiao He 0005, Zhenjiang Hu 0002 |
J. Syst. Softw. | 3 |
| 2026 | Localizing Type Errors for Syntactic Sugar by LiftingabstractSyntactic sugar enhances the usability of a core language by providing intuitive syntax in a surface language; however, its interaction with the core-language type checker often results in error messages that are unclear to surface programmers. Existing techniques, such as type lifting, can automatically infer typing rules for syntactic sugar, but they do not consider localizing type errors directly in the surface syntax. This paper studies the problem of localizing and reporting type errors for syntactic sugar, addressing two key challenges: precisely localizing errors and ensuring that they are fixable. Inspired by the recently proposed marked lambda calculus (MLC), we develop ℓ MLC as our core language which tracks error provenance and locations via type annotations. Building on this, we propose the Ste llar framework, which automatically lifts the core language’s typing rules to the surface language while enabling error localization in the surface syntax. Ste llar also ensures that the reported errors are fixable by incorporating extra premises into the lifted typing rules. We implement Ste llar and evaluate it across various surface languages with different type structures, demonstrating that our approach precisely localizes errors and avoids unhelpful references to core-language constructs. Our evaluation suggests that Ste llar can help surface programmers address type errors more effectively, enhancing the practicality of syntactic sugar in language engineering. Zhichao Guan 0002, Tailai Yu, Di Wang 0017, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 4 |
| 2025 | Effectful Lenses: There and Back with Different MonadsabstractBidirectional transformations (BXs) are a widely adopted approach for data synchronisation that is usually based on two functions, one from the source to the view and one back. Traditionally, these functions must not have side effects. While a few frameworks aim to lift this restriction by introducing monads into lenses, they are still quite limited, e.g., allowing only side effects in the backwards transformation. In this paper, we propose a much more general framework for effectful lenses. Our effectful lenses can have different effects in their two directions, and the effects need not be cancellable. We also define the round-trip relations and use them to generalise the two well-known round-trip properties to effectful lenses. Moreover, composition preserves the two well-known round-trip properties, and we also provide a rich combinator language, which enables compositional programming for effectful lenses. Finally, we present a case study to illustrate the flexibility and expressivity of our framework. Ruifeng Xie, Tom Schrijvers, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 3 |
| 2025 | Biparsers: Exact Printing for Data SynchronisationabstractParsers and printers are vital for data synchronisation between different serialisation formats. As they are tightly related, much research has been devoted to showing that both can be derived from a single definition. It, however, turns out to be challenging to extend this work with exact-printing , which recovers the original source text for the parsed data. In this paper, we propose a new approach to tackling the challenge that considers a parser-printer pair as a mechanism to synchronize the input text string with the data, and formalizes them as a bidirectional program (lens). We propose the first biparser framework to support exact-printing with non-injective parsers, provide a library of combinators for common patterns, and demonstrate its usefulness with biparsers for subsets of JSON and YAML. Ruifeng Xie, Tom Schrijvers, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 3 |
| 2024 | Semantics Lifting for Syntactic SugarabstractSyntactic sugar plays a crucial role in engineering programming languages. It offers convenient syntax and higher-level of abstractions, as witnessed by its pervasive use in both general-purpose and domain-specific contexts. Unfortunately, the traditional approach of translating programs containing syntactic sugars into the host language can lead to abstraction leakage, breaking the promise of convenience and hindering program comprehension. To address this challenge, we introduce the idea of semantics lifting that aims to statically derive self-contained evaluation rules for syntactic sugars. More specifically, we propose a semantics-lifting framework that consists of (i) a general algorithm for deriving host-independent semantics of syntactic sugars from the semantics of the host language and the desugaring rules, (ii) a formulation of the correctness and abstraction properties for a lifted semantics, and (iii) a systematic investigation of sufficient conditions that ensure a lifted semantics is provably correct and abstract. To evaluate our semantics-lifting framework, we have implemented a system named Osazone and conducted several case studies, demonstrating that our approach is flexible, effective, and practical for implementing domain-specific languages. Zhichao Guan 0002, Yiyuan Cao, Tailai Yu, Di Wang 0017, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 6 |
| 2024 | Superfusion: Eliminating Intermediate Data Structures via Inductive SynthesisabstractIntermediate data structures are a common cause of inefficiency in functional programming. Fusion attempts to eliminate intermediate data structures by combining adjacent data traversals into one; existing fusion techniques, however, are based on predefined rewrite rules and hence are limited in expressiveness. In this work we explore a different approach to eliminating intermediate data structures, based on inductive program synthesis. We dub this approach superfusion (by analogy with superoptimization , which uses inductive synthesis for program optimization). Starting from a reference program annotated with data structures to be eliminated, superfusion first generates a sketch where program fragments operating on those data structures are replaced with holes; it then fills the holes with constant-time expressions such that the resulting program is equivalent to the reference. The main technical challenge here is scalability because optimized programs are often complex, making the search space intractably large for naive enumeration. To address this challenge, our key insight is to first synthesize a ghost function that describes the relationship between the original intermediate data structure and its compressed version; this function, although not used in the final program, serves to decompose the joint sketch filling problem into independent simpler problems for each hole. We implement superfusion in a tool called SuFu and evaluate it on a dataset of 290 tasks collected from prior work on deductive fusion and program restructuring. The results show that SuFu solves 264 out of 290 tasks, exceeding the capabilities of rewriting-based fusion systems and achieving comparable performance with specialized approaches to program restructuring on their respective domains. Ruyi Ji, Nadia Polikarpova, Yingfei Xiong 0001, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 5 |
| 2024 | Fusing Direct Manipulations into Functional ProgramsabstractBidirectional live programming systems (BLP) enable developers to modify a program by directly manipulating the program output, so that the updated program can produce the manipulated output. One state-of-the-art approach to BLP systems is operation-based, which captures the developer's intention of program modifications by taking how the developer manipulates the output into account. The program modifications are usually hard coded for each direct manipulation in these BLP systems, which are difficult to extend. Moreover, to reflect the manipulations to the source program, these BLP systems trace the modified output to appropriate code fragments and perform corresponding code transformations. Accordingly, they require direct manipulation users be aware of the source code and how it is changed, making “direct” manipulation (on output) be “indirect”. In this paper, we resolve this problem by presenting a novel operation-based framework for bidirectional live programming, which can automatically fuse direct manipulations into the source code, thus supporting code-insensitive direct manipulations. Firstly, we design a simple but expressive delta language DM capable of expressing common direct manipulations for output values. Secondly, we present a fusion algorithm that propagates direct manipulations into the source functional programs and applies them to the constants whenever possible; otherwise, the algorithm embeds manipulations into the “proper positions” of programs. We prove the correctness of the fusion algorithm that the updated program executes to get the manipulated output. To demonstrate the expressiveness of DM and the effectiveness of our fusion algorithm, we have implemented FuseDM, a prototype SVG editor that supports GUI-based operations for direct manipulation, and successfully designed 14 benchmark examples starting from blank code using FuseDM. Ruifeng Xie, Guanchen Guo, Xiao He 0005, Tao Zan, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 6 |
| 2024 | Decomposition-based Synthesis for Applying Divide-and-Conquer-like Algorithmic ParadigmsabstractAlgorithmic paradigms such as divide-and-conquer (D&C) are proposed to guide developers in designing efficient algorithms, but it can still be difficult to apply algorithmic paradigms to practical tasks. To ease the usage of paradigms, many research efforts have been devoted to the automatic application of algorithmic paradigms. However, most existing approaches to this problem rely on syntax-based program transformations and thus put significant restrictions on the original program. In this article, we study the automatic application of D&C and several similar paradigms, denoted as D&C-like algorithmic paradigms, and aim to remove the restrictions from syntax-based transformations. To achieve this goal, we propose an efficient synthesizer, named AutoLifter , which does not depend on syntax-based transformations. Specifically, the main challenge of applying algorithmic paradigms is from the large scale of the synthesized programs, and AutoLifter addresses this challenge by applying two novel decomposition methods that do not depend on the syntax of the input program, component elimination and variable elimination , to soundly divide the whole problem into simpler subtasks, each synthesizing a sub-program of the final program and being tractable with existing synthesizers. We evaluate AutoLifter on 96 programming tasks related to six different algorithmic paradigms. AutoLifter solves 82/96 tasks with an average time cost of 20.17 s, significantly outperforming existing approaches. Ruyi Ji, Yingfei Xiong 0001, Di Wang 0017, Lu Zhang 0023, Zhenjiang Hu 0002 |
ACM Trans. Program. Lang. Syst. | 6 |
| 2023 | Design Datalog Templates for Synthesizing Bidirectional Programs from Tabular Examples
Bach Nguyen Trong, Kanae Tsushima, Zhenjiang Hu 0002 |
LOPSTR | 3 |
| 2023 | Contract lenses: Reasoning about bidirectional programs via calculationabstractAbstract Bidirectional transformations (BXs) are a mechanism for maintaining consistency between multiple representations of related data. The lens framework, which usually constructs BXs from lens combinators, has become the mainstream approach to BX programming because of its modularity and correctness by construction. However, the involved bidirectional behaviors of lenses make the equational reasoning and optimization of them much harder than unidirectional programs. We propose a novel approach to deriving efficient lenses from clear specifications via program calculation, a correct-by-construction approach to reasoning about functional programs by algebraic laws. To support bidirectional program calculation, we propose contract lenses , which extend conventional lenses with a pair of predicates to enable safe and modular composition of partial lenses. We define several contract-lens combinators capturing common computation patterns including $\textit{fold}, \textit{filter},\textit{map}$ , and $\textit{scan}$ , and develop several bidirectional calculation laws to reason about and optimize contract lenses. We demonstrate the effectiveness of our new calculation framework based on contract lenses with nontrivial examples. Hanliang Zhang, Ruifeng Xie, Meng Wang 0002, Zhenjiang Hu 0002 |
J. Funct. Program. | 5 |
| 2023 | Improving Oracle-Guided Inductive Synthesis by Efficient Question SelectionabstractOracle-guided inductive synthesis (OGIS) is a widely-used framework to apply program synthesis techniques in practice. The question selection problem aims at reducing the number of iterations in OGIS by selecting a proper input for each OGIS iteration. Theoretically, a question selector can generally improve the performance of OGIS solvers on both interactive and non-interactive tasks if it is not only effective for reducing iterations but also efficient. However, all existing effective question selectors fail in satisfying the requirement of efficiency. To ensure effectiveness, they convert the question selection problem into an optimization one, which is difficult to solve within a short time. In this paper, we propose a novel question selector, named LearnSy . LearnSy is both efficient and effective and thus achieves general improvement for OGIS solvers for the first time. Since we notice that the optimization tasks in previous studies are difficult because of the complex behavior of operators, we estimate these behaviors in LearnSy as simple random events. Subsequently, we provide theoretical results for the precision of this estimation and design an efficient algorithm for its calculation. According to our evaluation, when dealing with interactive tasks, LearnSy can offer competitive performance compared to existing selectors while being more efficient and more general. Moreover, when working on non-interactive tasks, LearnSy can generally reduce the time cost of existing CEGIS solvers by up to 43.0%. Ruyi Ji, Chaozhe Kong, Yingfei Xiong 0001, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 4 |
| 2023 | Bidirectional Object-Oriented Programming: Towards Programmatic and Direct Manipulation of ObjectsabstractMany bidirectional programming languages, which are mainly functional and relational, have been designed to support writing programs that run in both forward and backward directions. Nevertheless, there is little study on the bidirectionalization of object-oriented languages that are more popular in practice. This paper presents the first bidirectional object-oriented language that supports programmatic and direct manipulation of objects. Specifically, we carefully extend a core object-oriented language, which has a standard forward evaluation semantics, with backward updating semantics for class inheritance hierarchies and references. We formally prove that the bidirectional evaluation semantics satisfies the round-tripping properties if the output is altered consistently. To validate the utility of our approach, we have developed a tool called BiOOP for generating HTML documents through bidirectional GUI design. We evaluate the expressiveness and effectiveness of BiOOP for HTML webpage development by reproducing ten classic object-oriented applications from a Java Swing tutorial and one large project from GitHub. The experimental results show the response time of direct manipulation programming on object-oriented programs that produce HTML webpages is acceptable for developers. Guanchen Guo, Xiao He 0005, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 4 |
| 2022 | Towards Bidirectional Live Programming for Incomplete ProgramsabstractBidirectional live programming not only allows software developers to see continuous feedback on the output as they write the program, but also allows them to modify the program by directly manipulating the output, so that the modified program can get the output that was directly manipulated. Despite the appealing of existing bidirectional live programming systems, there is a big limitation: they cannot deal with incomplete programs where code blanks exist in the source programs. Zhenjiang Hu 0002 |
ICSE | 2 |
| 2022 | A theoretic framework of bidirectional transformation between systems and models
Xiao He 0005, Zhenjiang Hu 0002, Na Meng 0001 |
Sci. China Inf. Sci. | 2 |
| 2022 | Fregel: a functional domain-specific language for vertex-centric large-scale graph processingabstractAbstract The vertex-centric programming model is now widely used for processing large graphs. User-defined vertex programs are executed in parallel over every vertex of a graph, but the imperative and explicit message-passing style of existing systems makes defining a vertex program unintuitive and difficult. This article presents Fregel, a purely functional domain-specific language for processing large graphs and describes its model, design, and implementation. Fregel is a subset of Haskell, so Haskell tools can be used to test and debug Fregel programs. The vertex-centric computation is abstracted using compositional programming that uses second-order functions on graphs provided by Fregel. A Fregel program can be compiled into imperative programs for use in the Giraph and Pregel+ vertex-centric frameworks. Fregel’s functional nature without side effects enables various transformations and optimizations during the compilation process. Thus, the programmer is freed from the burden of program optimization, which is manually done for existing imperative systems. Experimental results for typical examples demonstrated that the compiled code can be executed with reasonable and promising performance. Hideya Iwasaki, Kento Emoto, Akimasa Morihata, Kiminori Matsuzaki, Zhenjiang Hu 0002 |
J. Funct. Program. | 5 |
| 2022 | Generic recursive lens combinators and their calculation laws
Ruifeng Xie, Zhenjiang Hu 0002 |
Theor. Comput. Sci. | 2 |
| 2021 | Analytical Differential Calculus with IntegrationabstractDifferential lambda-calculus was first introduced by Thomas Ehrhard and Laurent Regnier in 2003. Despite more than 15 years of history, little work has been done on a differential calculus with integration. In this paper, we shall propose a differential calculus with integration from a programming point of view. We show its good correspondence with mathematics, which is manifested by how we construct these reduction rules and how we preserve important mathematical theorems in our calculus. Moreover, we highlight applications of the calculus in incremental computation, automatic differentiation, and computation approximation. Han Xu 0004, Zhenjiang Hu 0002 |
ICALP | 2 |
| 2021 | Generalizable synthesis through unificationabstractThe generalizability of PBE solvers is the key to the empirical synthesis performance. Despite the importance of generalizability, related studies on PBE solvers are still limited. In theory, few existing solvers provide theoretical guarantees on generalizability, and in practice, there is a lack of PBE solvers with satisfactory generalizability on important domains such as conditional linear integer arithmetic (CLIA). In this paper, we adopt a concept from the computational learning theory, Occam learning, and perform a comprehensive study on the framework of synthesis through unification (STUN), a state-of-the-art framework for synthesizing programs with nested if-then-else operators. We prove that Eusolver, a state-of-the-art STUN solver, does not satisfy the condition of Occam learning, and then we design a novel STUN solver, PolyGen, of which the generalizability is theoretically guaranteed by Occam learning. We evaluate PolyGen on the domains of CLIA and demonstrate that PolyGen significantly outperforms two state-of-the-art PBE solvers on CLIA, Eusolver and Euphony, on both generalizability and efficiency. Ruyi Ji, Jingtao Xia, Yingfei Xiong 0001, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 4 |
| 2021 | Model-driven engineering city spaces via bidirectional model transformationsabstractEngineering cyber-physical systems inhabiting contemporary urban spatial environments demands software engineering facilities to support design and operation. Tools and approaches in civil engineering and architectural informatics produce artifacts that are geometrical or geographical representations describing physical spaces. The models we consider conform to the CityGML standard; although relying on international standards and accessible in machine-readable formats, such physical space descriptions often lack semantic information that can be used to support analyses. In our context, analysis as commonly understood in software engineering refers to reasoning on properties of an abstracted model-in this case a city design. We support model-based development, firstly by providing a way to derive analyzable models from CityGML descriptions, and secondly, we ensure that changes performed are propagated correctly. Essentially, a digital twin of a city is kept synchronized, in both directions, with the information from the actual city. Specifically, our formal programming technique and accompanying technical framework assure that relevant information added, or changes applied to the domain (resp. analyzable) model are reflected back in the analyzable (resp. domain) model automatically and coherently. The technique developed is rooted in the theory of bidirectional transformations, which guarantees that synchronization between models is consistent and well behaved. Produced models can bootstrap graph-theoretic, spatial or dynamic analyses. We demonstrate that bidirectional transformations can be achieved in practice on real city models. Ennio Visconti, Christos Tsigkanos, Zhenjiang Hu 0002, Carlo Ghezzi |
Softw. Syst. Model. | 3 |
| 2020 | A Counterexample-Guided Debugger for Non-recursive Datalog
Van-Dang Tran, Hiroyuki Kato, Zhenjiang Hu 0002 |
APLAS | 3 |
| 2020 | Dynamic Gas Estimation of Loops Using Machine Learning
Chunmiao Li, Shijie Nie, Yang Cao 0011, Yijun Yu 0001, Zhenjiang Hu 0002 |
BlockSys | 5 |
| 2020 | Blockchain-based Bidirectional Transformations for Access Control and Data Sharing in EMRsabstractElectronic medical records (EMRs) are scattered in different hospitals, which hinders the process of data sharing. On the other hand, people with different roles should access different parts of data, thus we need a way to control the accessibility. To address these issues, we propose a blockchain-based data sharing system that gathers EMRs into blockchain and controls data sharing through bidirectional transformation. In our system, EMRs are encoded with a carefully designed data structure that stores not only data, but also data’s read/write permission for different roles. We redesigned a bidirectional transformation language based on our previous work BiGUL by taking access control into consideration, and the accessibility are checked during program execution in both direction to avoid un-authorized data access. Further more, each bidirectional transformation program and updates on the shared data are stored in the blockchain in a transaction-like form. The immutability of blockchain guarantees EMR’s data integrity. Tao Zan, Zhenjiang Hu 0002 |
Internetware | 2 |
| 2020 | Scalable Multiple-View Analysis of Reactive Systems via Bidirectional Model TransformationsabstractSystematic model-driven design and early validation enable engineers to verify that a reactive system does not violate its requirements before actually implementing it. Requirements may come from multiple stakeholders, who are often concerned with different facets - design typically involves different experts having different concerns and views of the system. Engineers start from a specification which may be sourced from some domain model, while validation is often done on state-transition structures that support model checking. Two computationally expensive steps may work against scalability: transformation from specification to state-transition structures, and model checking. We propose a technique that makes the former efficient and also makes the resulting transition systems small enough to be efficiently verified. The technique automatically projects the specification into submodels depending on a property sought to be evaluated, which captures some stakeholder's viewpoint. The resulting reactive system submodel is then transformed into a state-transition structure and verified. The technique achieves cone-of-influence reduction, by slicing at the specification model level. Submodels are analysis-equivalent to the corresponding full model. If stakeholders propose a change to a submodel based on their own view, changes are automatically propagated to the specification model and other views affected. Automated reflection is achieved thanks to bidirectional model transformations, ensuring correctness. We cast our proposal in the context of graph-based reactive systems whose dynamics is described by rewriting rules. We demonstrate our view-based framework in practice on a case study within cyber-physical systems. Christos Tsigkanos, Nianyu Li, Zhi Jin 0001, Zhenjiang Hu 0002, Carlo Ghezzi |
ASE | 4 |
| 2020 | Question selection for interactive program synthesisabstractInteractive program synthesis aims to solve the ambiguity in specifications, and selecting the proper question to minimize the rounds of interactions is critical to the performance of interactive program synthesis. In this paper we address this question selection problem and propose two algorithms. SampleSy approximates a state-of-the-art strategy proposed for optimal decision tree and has a short response time to enable interaction. EpsSy further reduces the rounds of interactions by approximating SampleSy with a bounded error rate. To implement the two algorithms, we further propose VSampler, an approach to sampling programs from a probabilistic context-free grammar based on version space algebra. The evaluation shows the effectiveness of both algorithms. Ruyi Ji, Yingfei Xiong 0001, Lu Zhang 0023, Zhenjiang Hu 0002 |
PLDI | 5 |
| 2020 | Adaptive Data Sharing and Computation Offloading in Cloud-Edge Computing with Resource ConstraintsabstractCollaborative tasks require the participation of multiple agents. Each agent in collaboration needs sufficient data to make optimal decisions. However, in general, each agent can only collect and process a limited amount of data due to resource constraints. Peer-to-peer data sharing can enrich local observations, but a particular agent may not have enough resources to adequately store and process data, thus compromising group decision making. Cloud-Edge Computing (CEC) can relieve agents of these limitations by providing them with further storage and computing resources through connected cloud-like infrastructures. However, CEC-based collaborations currently face two key challenges: 1) lack of adaptability to resource restrictions in data sharing; 2) no support of offloading non-trivial tasks with complex data dependencies. This paper proposes an approach to realize adaptive data sharing and support computation offloading. Roughly speaking, the paired parameterized-structure is designed based on data flow analysis and bidirectional transformations to benefit adaptive data synchronization and offloading. And a hybrid offloading mechanism is offered for allocating computations among agents and the cloud, regarding data dependencies and restrictions. We demonstrate the feasibility and flexibility through a collaborative victim search and rescue case. Experiments show that our approach outperforms state-of-the-art methods. Wenjie Chu, Haiyan Zhao 0001, Zhi Jin 0001, Zhenjiang Hu 0002 |
SMC | 4 |
| 2020 | Early validation of cyber-physical space systems via multi-concerns integration
Nianyu Li, Christos Tsigkanos, Zhi Jin 0001, Zhenjiang Hu 0002, Carlo Ghezzi |
J. Syst. Softw. | 4 |
| 2020 | Guiding dynamic programing via structural probability for accelerating programming by exampleabstractProgramming by example (PBE) is an important subproblem of program synthesis, and PBE techniques have been applied to many domains. Though many techniques for accelerating PBE systems have been explored, the scalability remains one of the main challenges: There is still a gap between the performances of state-of-the-art synthesizers and the industrial requirement. To further speed up solving PBE tasks, in this paper, we propose a novel PBE framework MaxFlash. MaxFlash uses a model based on structural probability, named topdown prediction models, to guide a search based on dynamic programming, such that the search will focus on subproblems that form probable programs, and avoid improbable programs. Our evaluation shows that MaxFlash achieves × 4.107− × 2080 speed-ups against state-of-the-art solvers on 244 real-world tasks. Ruyi Ji, Yican Sun, Yingfei Xiong 0001, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 4 |
| 2020 | Programmable View Update Strategies on RelationsabstractView update is an important mechanism that allows updates on a view by translating them into the corresponding updates on the base relations. The existing literature has shown the ambiguity of translating view updates. To address this ambiguity, we propose a robust language-based approach for making view update strategies programmable and validatable. Specifically, we introduce a novel approach to use Datalog to describe these update strategies. We propose a validation algorithm to check the well-behavedness of the written Datalog programs. We present a fragment of the Datalog language for which our validation is both sound and complete. This fragment not only has good properties in theory but is also useful for solving practical view updates. Furthermore, we develop an algorithm for optimizing user-written programs to efficiently implement updatable views in relational database management systems. We have implemented our proposed approach. The experimental results show that our framework is feasible and efficient in practice. Van-Dang Tran, Hiroyuki Kato, Zhenjiang Hu 0002 |
Proc. VLDB Endow. | 3 |
| 2020 | BIRDS: Programming view update strategies in DatalogabstractIn relational database management systems, views are rarely automatically updatable because of the inherent ambiguity of view updates. To allow view updates, database administrators have to decide and implement an update strategy that must be well-behaved with the view definition to guarantee consistency between the view and the underlying database. In this demonstration, we explore the development process of such view update strategies with the assistance of our framework, called BIRDS. BIRDS enables users to specify view update strategies declaratively using Datalog. BIRDS validates the well-behavedness of user-written update strategies, then optimizes and compiles them into SQL code run in PostgreSQL databases. BIRDS further explains the unexpected behavior of user-written Datalog programs using generated counterexamples, thereby assists users in correcting their programs. We demonstrate all the steps in developing view update strategies via an easy to use interface provided by our system. Van-Dang Tran, Hiroyuki Kato, Zhenjiang Hu 0002 |
Proc. VLDB Endow. | 3 |
| 2019 | Incrementalization of Vertex-Centric ProgramsabstractAs the graphs in our world become ever larger, the need for programmable, easy to use, and highly scalable graph processing has become ever greater. One such popular graph processing model-the vertex-centric computational model-does precisely this by distributing computations across the vertices of the graph being computed over. Due to this distribution of the program to the vertices of the graph, the programmer “thinks like a vertex” when writing their graph computation, with limited to no sense of shared memory and where almost all communication between each on-vertex computation must be sent over the network. Because of this inherent communication overhead in the computational model, reducing the number of messages sent while performing a given computation is a central aspect of any efforts to optimize vertex-centric programs. While previous work has focused on reducing communication overhead by directly changing communication patterns-by altering the way the graph is partitioned and distributed, or by altering the graph topology itself-in this paper we present a different optimization strategy based on a family of complementary compile-time program transformations in order to minimize communication overhead by changing both the messaging and computational structures of programs. Particularly, we present and formalize a method by which a compiler can automatically incrementalize a vertex-centric program through a series of compile-time program transformations-by modifying the on-vertex computation and messaging between vertices so that messages between vertices represent patches to be applied to the other vertex's local state. We empirically evaluate these transformations on a set of common vertex-centric algorithms and graphs and achieve an average reduction of 2.7X in total computational time, and 2.9X in the number of messages sent across all programs in the benchmark suite. Furthermore, since these are compile-time program transformations alone, other prior optimization strategies for vertex-centric programs can work with the resulting vertex-centric program just as they would a non-incrementalized program. Timothy A. K. Zakian, Ludovic Anthony Richard Capelli, Zhenjiang Hu 0002 |
IPDPS | 3 |
| 2019 | Composing Optimization Techniques for Vertex-Centric Graph Processing via Communication ChannelsabstractPregel's vertex-centric model allows us to implement many interesting graph algorithms, where optimization plays an important role in making it practically useful. Although many optimizations have been developed for dealing with different performance issues, it is hard to compose them together to optimize complex algorithms, where we have to deal with multiple performance issues at the same time. In this paper, we propose a new approach to composing optimizations, by making use of the channel interface, as a replacement of Pregel's message passing and aggregator mechanism, which can better structure the communication in Pregel algorithms. We demonstrate that it is convenient to optimize a Pregel program by simply using a proper channel from the channel library or composing them to deal with multiple performance issues. We intensively evaluate the approach through many nontrivial examples. By adopting the channel interface, our system achieves an all-around performance gain for various graph algorithms. In particular, the composition of different optimizations makes the S-V algorithm 3.39x faster than the current best implementation. Yongzhe Zhang, Zhenjiang Hu 0002 |
IPDPS | 2 |
| 2019 | Model-Driven Design of City Spaces via Bidirectional TransformationsabstractTechnological advances enable new kinds of smart environments exhibiting complex behaviors; smart cities are a notable example. Smart functionalities heavily depend on space and need to be aware of entities typically found in the spatial domain, e.g. roads, intersections or buildings in a smart city. We advocate a model-based development, where the model of physical space, coming from the architecture and civil engineering disciplines, is transformed into an analyzable model upon which smart functionalities can be embedded. Such models can then be formally analyzed to assess a composite system design. We focus on how a model of physical space specified in the CityGML standard language can be transformed into a model amenable to analysis and how the two models can be automatically kept in sync after possible changes. This approach is essential to guarantee safe model-driven development of composite systems inhabiting physical spaces. We showcase transformations of real CityGML models in the context of scenarios concerning both design time and runtime analysis of space-dependent systems. Ennio Visconti, Christos Tsigkanos, Zhenjiang Hu 0002, Carlo Ghezzi |
MoDELS | 3 |
| 2019 | POET: Privacy on the Edge with Bidirectional Data TransformationsabstractComprehensive privacy mechanisms are essential in the pervasive internet-of-things systems of today, which are comprised of multiple distributed devices and diverse software stacks, while located in different legal or administrative domains. In such systems, often consisting of resource-constrained devices, guarantees of correctness and conformance to privacy policies is required, while data need to be synchronized among different software components. Motivated by the "data protection by design and by default" principle, we propose a technical framework to support data synchronization among edge components tailored for pervasive IoT applications. Our privacy-driven synchronization approach is based on a generically applicable privacy model and able to capture roles and permissions, actions on data, conditions and obligations that arise in privacy requirements. For automated and correct reflection of synchronized data among components, we adopt bidirectional transformations, a mechanism where synchronization between models, consistency, and well-behavedness are formally guaranteed. Thus, automatically generated privacy-aware data transformations are correct by construction. We evaluate POET, our framework and accompanying tool with a case study on medical information privacy and demonstrate its performance in resource-constrained edge devices. Nianyu Li, Christos Tsigkanos, Zhi Jin 0001, Schahram Dustdar, Zhenjiang Hu 0002, Carlo Ghezzi |
PerCom | 5 |
| 2019 | Auto-Updating Portable Application Model of Multi-Cloud Marketplace Through Bidirectional Transformations System
Hoang-Long Huynh, Van-Dang Tran, Huu-Duc Nguyen, Zhenjiang Hu 0002, Trong-Vinh Le, Huynh Quyet Thang |
SoMeT | 4 |
| 2019 | iPregel: Vertex-centric programmability vs memory efficiency and performance, why choose?abstractThe vertex-centric programming model, designed to improve the programmability in graph processing application writing, has attracted great attention over the years. Multiple shared memory frameworks that have implemented the vertex-centric interface all expose a common tradeoff: programmability against memory efficiency and performance. Our approach consists in preserving vertex-centric programmability, while implementing optimisations missing from FemtoGraph, developing new ones and designing these so they are transparent to a user’s application code, hence not impacting programmability. We therefore implemented our own shared memory vertex-centric framework iPregel, relying on in-memory storage and synchronous execution. In this paper, we evaluate it against FemtoGraph, whose characteristics are identical, but also an asynchronous counterpart GraphChi and the vertex-subset-centric framework Ligra. Our experiments include three of the most popular vertex-centric benchmark applications over 4 real-world publicly accessible graphs, which cover all orders of magnitude between a million to a billion edges. We then measure the execution time and the peak memory usage. Finally, we evaluate the programmability of each framework by comparing it against the original Pregel, Google’s closed-source implementation that started the whole area of vertex-centric programming. Experiments demonstrate that iPregel, like FemtoGraph, does not sacrifice vertex-centric programmability for additional performance and memory efficiency optimisations, which contrasts with GraphChi and Ligra. Sacrificing vertex-centric programmability allowed the latter to benefit from substantial performance and memory efficiency gains. However, experiments demonstrate that iPregel is up to 2300 times faster than FemtoGraph, as well as generating a memory footprint up to 100 times smaller. These results greatly change the situation; Ligra and GraphChi are up to 17,000 and 700 times faster than FemtoGraph but, when comparing against iPregel, this maximum speed-up drops to 10. Furthermore, on PageRank, it is iPregel that proves to be the fastest overall. When it comes to memory efficiency, the same observation applies; Ligra and GraphChi are 100 and 50 times lighter than FemtoGraph, but iPregel nullifies these benefits: it provides the same memory efficiency as Ligra and even proves to be 3 to 6 times lighter than GraphChi on average. In other words, iPregel demonstrates that preserving vertex-centric programmability is not incompatible with a competitive performance and memory efficiency. Ludovic Anthony Richard Capelli, Zhenjiang Hu 0002, Timothy A. K. Zakian, Nick Brown 0002, J. Mark Bull |
Parallel Comput. | 2 |
| 2018 | Putback-based bidirectional model transformationsabstractBidirectional model transformation (BX) plays a vital role in Model-Driven Engineering. A major challenge in conventional relational and bidirectionalization-based BX approaches is the ambiguity issue, i.e., the backward transformation may not be uniquely determined by the consistency relation or the forward transformation. A promising solution to the ambiguity issue is to adopt putback-based bidirectional programming, which realizes a BX by specifying the backward transformation. However, existing putback-based approaches do not support multiple conversions of the same node (namely a shared node). Since a model is a graph, shared nodes are very common and inevitable. Consequently, existing putback-based approaches cannot be directly applied to bidirectional model transformation. This paper proposes a novel approach to BX. We define a new model-merging-based BX combinator, which can combine two BXs owning shared nodes into a well behaved composite BX. Afterwards, we propose a putback-based BX language XMU to address the ambiguity issue, which is built on the model-merging-based BX combinator. We present the formal semantics of XMU which can be proven well behaved. Finally, a tool support is also introduced to illustrate the usefulness of our approach. Xiao He 0005, Zhenjiang Hu 0002 |
ESEC/SIGSOFT FSE | 2 |
| 2018 | An axiomatic basis for bidirectional programmingabstractAmong the frameworks of bidirectional transformations proposed for addressing various synchronisation (consistency maintenance) problems, Foster et al.’s [2007] asymmetric lenses have influenced the design of a generation of bidirectional programming languages. Most of these languages are based on a declarative programming model, and only allow the programmer to describe a consistency specification with ad hoc and/or awkward control over the consistency restoration behaviour. However, synchronisation problems are diverse and require vastly different consistency restoration strategies, and to cope with the diversity, the programmer must have the ability to fully control and reason about the consistency restoration behaviour. The putback-based approach to bidirectional programming aims to provide exactly this ability, and this paper strengthens the putback-based position by proposing the first fully fledged reasoning framework for a bidirectional language — a Hoare-style logic for Ko et al.’s [2016] putback-based language BiGUL. The Hoare-style logic lets the BiGUL programmer precisely characterise the bidirectional behaviour of their programs by reasoning solely in the putback direction, thereby offering a unidirectional programming abstraction that is reasonably straightforward to work with and yet provides full control not achieved by previous approaches. The theory has been formalised and checked in Agda, but this paper presents the Hoare-style logic in a semi-formal way to make it easily understood and usable by the working BiGUL programmer. Hsiang-Shang Ko, Zhenjiang Hu 0002 |
Proc. ACM Program. Lang. | 2 |
| 2017 | Palgol: A High-Level DSL for Vertex-Centric Graph Processing with Remote Data Access
Yongzhe Zhang, Hsiang-Shang Ko, Zhenjiang Hu 0002 |
APLAS | 3 |
| 2017 | Towards Variability Management in Bidirectional Model TransformationabstractThe bidirectional model transformation (BX) comprises a forward transformation get and a backward transformation put. Given that get may be an information-loss transformation, the behavior of put may be uncertain. An uncertain put produces many valid outputs that fit different application scenarios. This paper proposes an approach to variability management in BX to enable put to generate an output model with several variation points that can be configured to adapt this output for different uses. Firstly, this paper proposes a variability metamodel and management framework, which are used to characterize and configure variation points in a transformation result model. Secondly, this paper extends a BX language to specify a BX with variability. Thirdly, this paper presents a BX engine, which can execute a BX with variability and generate a model that contains variation points. Lastly, an evaluation is presented to show the feasibility and scalability of our approach. Xiao He 0005, Zhenjiang Hu 0002 |
COMPSAC (1) | 2 |
| 2016 | Integrating Goal Model into Rule-Based AdaptationabstractGoal-oriented adaptation provides a powerful mechanism to develop self-adaptive systems, enabling systems to keep satisfying user goals in a dynamically changing environment. The goal-oriented approach normally reduces the adaptation planning as a global optimization process and leaves the system the task of determining the actions required to achieve the goals. However, the high computation cost of global optimization prevents a self-adaptive system from quickly adjusting itself to the dynamically changing environment at runtime, which is intolerable since efficiency of planning is of utmost importance in most self-adaptive systems. On the other hand, rule-based adaptation has the advantage of efficient planning process since it predefines the adaptation logic by rules instead of leaving the system the task of reasoning. To combine the advantages of both approaches, we propose a novel adaptation framework that can integrate goal model into rule-based adaptation to make user goals to be better satisfied efficiently. We have applied the framework to design a self-adaptive e-commerce website. Our experimental results show that the proposed framework outperforms both the traditional goal-oriented approach and the traditional rule-based approach in terms of adaptation efficiency and effectiveness. Tao Zan, Haiyan Zhao 0001, Zhenjiang Hu 0002, Zhi Jin 0001 |
APSEC | 4 |
| 2016 | Transforming Programs between APIs with Many-to-Many MappingsabstractTransforming programs between two APIs or different versions of the same API is a common software engineering task. However, existing languages supporting for such transformation cannot satisfactorily handle the cases when the relations between elements in the old API and the new API are many-to-many mappings: multiple invocations to the old API are supposed to be replaced by multiple invocations to the new API. Since the multiple invocations of the original APIs may not appear consecutively and the variables in these calls may have different names, writing a tool correctly to cover all such invocation cases is not an easy task. In this paper we propose a novel guided-normalization approach to address this problem. Our core insight is that programs in different forms can be semantics-equivalently normalized into a basic form guided by transformation goals, and developers only need to write rules for the basic form to address the transformation. Based on this approach, we design a declarative program transformation language, PATL, for adapting Java programs between different APIs. PATL has simple syntax and basic semantics to handle transformations only considering consecutive statements inside basic blocks, while with guided-normalization, it can be extended to handle complex forms of invocations. Furthermore, PATL ensures that the user-written rules would not accidentally break def-use relations in the program. We formalize the semantics of PATL on Middleweight Java and prove the semantics-preserving property of guided-normalization. We also evaluated our language with three non-trivial case studies: i.e. updating Google Calendar API, switching from JDom to Dom4j, and switching from Swing to SWT. The result is encouraging; it shows that our language allows successful transformations of real world programs with a small number of rules and little manual resolution. Jiajun Jiang, Yingfei Xiong 0001, Lu Zhang 0023, Zhenjiang Hu 0002 |
ECOOP | 7 |
| 2016 | Think like a vertex, behave like a function! a functional DSL for vertex-centric big graph processingabstractThe vertex-centric programming model, known as “think like a vertex”, is being used more and more to support various big graph processing methods through iterative supersteps that execute in parallel a user-defined vertex program over each vertex of a graph. However, the imperative and message-passing style of existing systems makes defining a vertex program unintuitive. In this paper, we show that one can benefit more from “Thinking like a vertex” by “Behaving like a function” rather than “Acting like a procedure” with full use of side effects and explicit control of message passing, state, and termination. We propose a functional approach to vertex-centric graph processing in which the computation at every vertex is abstracted as a higher-order function and present Fregel, a new domain-specific language. Fregel has clear functional semantics, supports declarative description of vertex computation, and can be automatically translated into Pregel, an emerging imperative-style distributed graph processing framework, and thereby achieve promising performance. Experimental results for several typical examples show the promise of this functional approach. Kento Emoto, Kiminori Matsuzaki, Zhenjiang Hu 0002, Akimasa Morihata, Hideya Iwasaki |
ICFP | 3 |
| 2016 | Rule-directed code clone synchronizationabstractCode clones are prevalent in software systems due to many factors in software development. Detecting code clones and managing consistency between them along code evolution can be very useful for reducing clone-related bugs and maintenance costs. Despite some early attempts at detecting code clones and managing the consistency between them, the state-of-the-art tool can only handle simple code clones whose structures are identical or quite similar. However, existing empirical studies show that clones can have quite different structures with their evolution, which can easily go beyond the capability of the state-of-the-art tool. In this paper, we propose CCSync, a novel, rule-directed approach, which paves the structure differences between the code clones and synchronizes them even when code clones become quite different in their structures. The key steps of this approach are, given two code clones, to (1) extract a synchronization rule from the relationship between the clones, and (2) once one code fragment is updated, propagate the modifications to the other following the synchronization rule. We have implemented a tool for CCSync and evaluated its effectiveness on five Java projects. Our results shows that there are many code clones suitable for synchronization, and our tool achieves precisions of up to 92% and recalls of up to 84%. In particular, more than 76% of our generated revisions are identical with manual revisions. Xiao Cheng 0006, Hao Zhong 0001, Yuting Chen 0001, Zhenjiang Hu 0002, Jianjun Zhao 0001 |
ICPC | 4 |
| 2016 | BiGUL: a formally verified core language for putback-based bidirectional programmingabstractPutback-based bidirectional programming allows the programmer to write only one putback transformation, from which the unique corresponding forward transformation is derived for free. The logic of a putback transformation is more sophisticated than that of a forward transformation and does not always give rise to well-behaved bidirectional programs; this calls for more robust language design to support development of well-behaved putback transformations. In this paper, we design and implement a concise core language BiGUL for putback-based bidirectional programming to serve as a foundation for higher-level putback-based languages. BiGUL is completely formally verified in the dependently typed programming language Agda to guarantee that any putback transformation written in BiGUL is well-behaved. Hsiang-Shang Ko, Tao Zan, Zhenjiang Hu 0002 |
PEPM | 3 |
| 2016 | Parsing and reflective printing, bidirectionally
Zirun Zhu, Yongzhe Zhang, Hsiang-Shang Ko, Pedro Martins 0001, João Saraiva, Zhenjiang Hu 0002 |
SLE | 6 |
| 2016 | Supporting Selective Undo for RefactoringabstractDue to various considerations, programmers often need to backtrack their code. Furthermore, as the most recent edit may not be the wrong edit, programmers sometimes have to backtrack their code for arbitrary edits, which is referred as selective undo in this paper. To meet the needs, researchers have proposed various approaches to support selective undo. However, to the best of our knowledge, these approaches can support only simple edits, and cannot handle refactoring, although most code editors already provide various refactoring actions. Indeed, it is challenging to support selective undo for refactoring, since multiple code elements and complicated actions can be involved. In this paper, we present a novel approach that leverages Bidirectional Transformation (BX) to support selective undo for refactoring. We evaluate our approach on a recent refactoring tool that transfers enhanced for loops to lambda expressions. Our results show that our approach achieves an accuracy of up to 89%. Xiao Cheng 0006, Yuting Chen 0001, Zhenjiang Hu 0002, Tao Zan, Hao Zhong 0001, Jianjun Zhao 0001 |
SANER | 3 |
| 2016 | Preface
Zhi Jin 0001, Zhenjiang Hu 0002, Gang Yin |
Sci. China Inf. Sci. | 2 |
| 2016 | Feature-based classification of bidirectional transformation approaches
Soichiro Hidaka, Massimo Tisi, Jordi Cabot, Zhenjiang Hu 0002 |
Softw. Syst. Model. | 4 |
| 2015 | A Clear Picture of Lens Laws - Functional Pearl
Sebastian Fischer 0001, Zhenjiang Hu 0002, Hugo Pacheco 0001 |
MPC | 2 |
| 2015 | SWIN: Towards Type-Safe Java Program Adaptation between APIsabstractJava program adaptation between different APIs is a common task in software development. When an old API is upgraded to an incompatible new version, or when we want to migrate an application from one platform to another platform, we need to adapt programs between different APIs. Although different program transformation tools have been developed to automate the program adaptation task, no tool ensures type safety in transforming Java programs: given a transformation program and any well-typed Java program, the transformed result is still well-typed. As a matter of fact, it is often observed that a dedicated adaptation tool turns a working application into a set of incompatible programs. We address this problem by providing a type-safe transformation language, SWIN, for Java program adaptation between different APIs. SWIN is based on Twinning, a modern transformation language for Java programs. SWIN enhances Twinning with more flexible transformation rules, formal semantics, and, most importantly, full type-safe guarantee. We formally prove the type safety of SWIN on Featherweight Java, a known minimal formal core of Java. Our experience with three case studies shows that SWIN is as expressive as Twinning in specifying useful program transformations in the case studies while guaranteeing the type safety of the transformations. Yingfei Xiong 0001, Zhenjiang Hu 0002 |
PEPM | 4 |
| 2015 | Towards Attribute-Based Authorisation for Bidirectional ProgrammingabstractBidirectional programming allows developers to write programs that will produce transformations that extract data from a source document into a view. The same transformations can then be used to update the source in order to propagate the changes made to the view, provided that the transformations satisfy two essential properties. Lionel Montrieux, Zhenjiang Hu 0002 |
SACMAT | 2 |
| 2015 | The essence of bidirectional programming
Sebastian Fischer 0001, Zhenjiang Hu 0002, Hugo Pacheco 0001 |
Sci. China Inf. Sci. | 2 |
| 2015 | Constructing format-preserving printing from syntax-directed definitions
Guoqiang Li 0001, Zhenjiang Hu 0002 |
Sci. China Inf. Sci. | 3 |
| 2015 | Context-preserving XQuery fusionabstractThis paper solves the known problem of elimination of unnecessary internal element construction as well as variable elimination in XML processing with (a subset of) XQuery without ignoring the issues of document order. The semantics of XQuery is context sensitive and requires preservation of document order. In this paper, we propose, as far as we are aware, the first XQuery fusion that can deal with both the document order and the context of XQuery expressions. More specifically, we carefully design a context representation of XQuery expressions based on the Dewey order encoding, develop a context-preserving XQuery fusion for ordered trees by static emulation of the XML store, and prove that our fusion is correct. Our XQuery fusion has been implemented, and all the examples in this paper have passed through the system. Hiroyuki Kato, Soichiro Hidaka, Zhenjiang Hu 0002, Keisuke Nakano 0001, Yasunori Ishihara |
Math. Struct. Comput. Sci. | 3 |
| 2015 | Guest editorial to the special section on model transformation
Zhenjiang Hu 0002, Juan de Lara |
Softw. Syst. Model. | 1 |
| 2014 | Validity Checking of Putback Transformations in Bidirectional Programming
Zhenjiang Hu 0002, Hugo Pacheco 0001, Sebastian Fischer 0001 |
FM | 1 |
| 2014 | Towards Co-evolution in Model-Driven Development Via Bidirectional Higher-Order TransformationabstractAbstract: In model-Driven development (MDD), metamodels, models, and model transformations are interdependent. A change in one artifact must be reflected in all other related artifacts. Regardless of their dependencies, (meta)models and transformations can evolve autonomously rendering referenced artifacts invalid. Coupling the evolution of models to their corresponding metamodels tries to prevent such mismatches, but is currently limited to one-way adaptations and does not take model transformations into account. To eliminate these short-comings, we combine first-class transformation models with bidirectional transformations (BX). Our generic approach integrates BX into well-established Eclipse-based MDD tools, thereby neither being restricted to a specific modeling nor model transformation language. 1 Bernhard Hoisl, Zhenjiang Hu 0002, Soichiro Hidaka |
MODELSWARD | 2 |
| 2014 | Monadic combinators for "Putback" style bidirectional programmingabstractBidirectional transformations, in particular lenses, are programs with a forward get transformation and a backward putback transformation that keep source and view data types synchronized. Several bidirectional programming languages exist to aid programmers in writing a (sort of) forward transformation, and deriving a backward transformation for free. However, the maintainability offered by such languages comes at the cost of expressiveness and (more importantly) predictability because the ambiguity of synchronization "handled by the putback transformation" is solved by default strategies over which programmers have little control. In this paper, we argue that controlling such ambiguity is essential for bidirectional transformations and propose a novel language in which programmers write a (sort of) putback transformation, and get the unique get transformation for free. Like traditional bidirectional languages, our put-oriented language allows reasoning about the correctness of defined transformations from the properties of their building blocks. But it allows programmers to describe the behavior of a bidirectional transformation much more precisely, while retaining the maintainability of writing a single program. We demonstrate the practical power of the new approach through a series of examples, ranging from simple ones that illustrate traditional lenses to complex ones for which our putback-based approach is central to specifying nontrivial update strategies. Hugo Pacheco 0001, Zhenjiang Hu 0002, Sebastian Fischer 0001 |
PEPM | 2 |
| 2014 | BiFluX: A Bidirectional Functional Update Language for XMLabstractDifferent XML formats are widely used for data exchange and processing, being often necessary to mutually convert between them. Standard XML transformation languages, like XSLT or XQuery, are unsatisfactory for this purpose since they require writing a separate transformation for each direction. Existing bidirectional transformation languages mean to cover this gap, by allowing programmers to write a single program that denotes both transformations. However, they often 1) induce a more cumbersome programming style than their traditionally unidirectional relatives, to establish the link between source and target formats, and 2) offer limited configurability, by making implicit assumptions about how modifications to both formats should be translated that may not be easy to predict. Hugo Pacheco 0001, Tao Zan, Zhenjiang Hu 0002 |
PPDP | 3 |
| 2014 | Interactive Inconsistency Fixing in Feature Modeling
Bo Wang 0170, Yingfei Xiong 0001, Zhenjiang Hu 0002, Haiyan Zhao 0001, Wei Zhang 0004, Hong Mei 0001 |
J. Comput. Sci. Technol. | 3 |
| 2014 | A Generate-Test-Aggregate parallel programming library for systematic parallel programming
Kento Emoto, Zhenjiang Hu 0002 |
Parallel Comput. | 3 |
| 2013 | Programming with BSP Homomorphisms
Joeffrey Legaux, Zhenjiang Hu 0002, Frédéric Loulergue, Kiminori Matsuzaki, Julien Tesson |
Euro-Par | 2 |
| 2013 | Structural recursion for querying ordered graphsabstractStructural recursion, in the form of, for example, folds on lists and catamorphisms on algebraic data structures including trees, plays an important role in functional programming, by providing a systematic way for constructing and manipulating functional programs. It is, however, a challenge to define structural recursions for graph data structures, the most ubiquitous sort of data in computing. This is because unlike lists and trees, graphs are essentially not inductive and cannot be formalized as an initial algebra in general. In this paper, we borrow from the database community the idea of structural recursion on how to restrict recursions on infinite unordered regular trees so that they preserve the finiteness property and become terminating, which are desirable properties for query languages. We propose a new graph transformation language called lambdaFG for transforming and querying ordered graphs, based on the well-defined bisimulation relation on ordered graphs with special epsilon-edges. The language lambdaFG is a higher order graph transformation language that extends the simply typed lambda calculus with graph constructors and more powerful structural recursions, which is extended for transformations on the sibling dimension. It not only gives a general framework for manipulating graphs and reasoning about them, but also provides a solution to the open problem of how to define a structural recursion on ordered graphs, with the help of the bisimilarity for ordered graphs with epsilon-edges. Soichiro Hidaka, Kazuyuki Asada, Zhenjiang Hu 0002, Hiroyuki Kato, Keisuke Nakano 0001 |
ICFP | 3 |
| 2013 | Issues in representing domain-specific concerns in model-driven engineeringabstractThe integration of domain-specific concepts in a model-driven engineering (MDE) approach raises a number of interesting research questions. There are two possibilities to represent these concepts. The first one focuses on models that contain domain-specific concepts only, i.e. domain-specific modelling languages (DSML). The second one advocates the integration of domain-specific concepts in general-purpose models, using what we will refer to in this paper as domain-specific modelling annotation languages (DSMAL). In this position paper, we argue that each approach is particularly suited for specific activities and specific actors, and show how they can be developed and used together. We also highlight the challenges created by the use of two representations, such as the evaluation of models OCL constraints and the synchronisation between the two representations. As an illustration, we present rbacUML, our approach for integrating role-based access control (RBAC) concepts into an MDE approach. Lionel Montrieux, Yijun Yu 0001, Michel Wermelinger, Zhenjiang Hu 0002 |
MiSE | 4 |
| 2013 | Practical aspects of bidirectional graph transformationsabstractBidirectional transformation consists of a pair of transformations, describing not only a forward transformation from a source to a view, but also a backward transformation showing how to reflect the changes in the view to the source. Bidirectional transformation provides a novel mechanism for synchronizing and maintaining the consistency of information between input and output, and has many potential applications in software development, including model synchronization, round-trip engineering, software evolution, multiple-view software development, reverse software engineering, as well as the well-known view updating mechanism which has been intensively studied in the database community for decades. Zhenjiang Hu 0002 |
PEPM | 1 |
| 2013 | A parameterized graph transformation calculus for finite graphs with monadic branchesabstractWe introduce a lambda calculus λTFG for transformations of finite graphs by generalizing and extending an existing calculus UnCAL. Whereas UnCAL can treat only unordered graphs, λTFG can treat a variety of graph models: directed edge-labeled graphs whose branch styles are represented by monads T. For example, λTFG can treat unordered graphs, ordered graphs, weighted graphs, probability graphs, and so on, by using the powerset monad, list monad, multiset monad, probability monad, respectively. In λTFG, graphs are considered as extension of tree data structures, i.e. as infinite (regular) trees, so the semantics is given with bisimilarity. Kazuyuki Asada, Soichiro Hidaka, Hiroyuki Kato, Zhenjiang Hu 0002, Keisuke Nakano 0001 |
PPDP | 4 |
| 2013 | Supporting feature model refinement with updatable view
Bo Wang 0170, Zhenjiang Hu 0002, Haiyan Zhao 0001, Yingfei Xiong 0001, Wei Zhang 0004, Hong Mei 0001 |
Frontiers Comput. Sci. | 2 |
| 2013 | Enhancing semantic bidirectionalization via shape bidirectionalizer plug-insabstractAbstract Matsuda et al . (Matsuda, K., Hu, Z., Nakano, K., Hamana, M. & Takeichi, M. (2007) Bidirectionalization transformation based on automatic derivation of view complement functions. In Proceedings of the International Conference on Functional Programming . ACM Press, pp. 47–58) and Voigtländer (Voigtländer, J. (2009) Bidirectionalization for free! In Proceedings of Principles of Programming Languages . ACM Press, pp. 165–176) have introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Previously, we developed a synthesis of the two techniques, based on a separation of shape and content aspects (Voigtländer, J., Hu, Z., Matsuda, K. & Wang, M. (2010) Combining syntactic and semantic bidirectionalization. In Proceedings of the International Conference on Functional Programming . ACM Press, pp. 181–192). Here we carry that idea further, reworking the technique of Voigtländer such that any shape bidirectionalizer (based on the work of Matsuda et al . (2007) or not) can be used as a plug-in, to good effect. We also provide a data-type-generic account, enabling wider reuse, including the use of pluggable bidirectionalization itself as a plug-in. Janis Voigtländer, Zhenjiang Hu 0002, Kazutaka Matsuda, Meng Wang 0002 |
J. Funct. Program. | 2 |
| 2013 | Optimization for iterative queries on MapReduceabstractWe propose OptIQ, a query optimization approach for iterative queries in distributed environment. OptIQ removes redundant computations among different iterations by extending the traditional techniques of view materialization and incremental view evaluation. First, OptIQ decomposes iterative queries into invariant and variant views, and materializes the former view. Redundant computations are removed by reusing the materialized view among iterations. Second, OptIQ incrementally evaluates the variant view, so that redundant computations are removed by skipping the evaluation on converged tuples in the variant view. We verify the effectiveness of OptIQ through the queries of PageRank and k-means clustering on real datasets. The results show that OptIQ achieves high efficiency, up to five times faster than is possible without removing the redundant computations among iterations. Makoto Onizuka, Hiroyuki Kato, Soichiro Hidaka, Keisuke Nakano 0001, Zhenjiang Hu 0002 |
Proc. VLDB Endow. | 5 |
| 2013 | Refactoring pattern matching
Meng Wang 0002, Jeremy Gibbons, Kazutaka Matsuda, Zhenjiang Hu 0002 |
Sci. Comput. Program. | 4 |
| 2013 | Synchronizing concurrent model updates based on bidirectional transformation
Yingfei Xiong 0001, Zhenjiang Hu 0002, Masato Takeichi |
Softw. Syst. Model. | 3 |
| 2012 | Generate, Test, and Aggregate - A Calculation-based Framework for Systematic Parallel Programming with MapReduce
Kento Emoto, Sebastian Fischer 0001, Zhenjiang Hu 0002 |
ESOP | 3 |
| 2012 | Maintaining invariant traceability through bidirectional transformationsabstractFollowing the “convention over configuration” paradigm, model-driven development (MDD) generates code to implement the “default” behaviour that has been specified by a template separate from the input model, reducing the decision effort of developers. For flexibility, users of MDD are allowed to customise the model and the generated code in parallel. A synchronisation of changed model or code is maintained by reflecting them on the other end of the code generation, as long as the traceability is unchanged. However, such invariant traceability between corresponding model and code elements can be violated either when (a) users of MDD protect custom changes from the generated code, or when (b) developers of MDD change the template for generating the default behaviour. A mismatch between user and template code is inevitable as they evolve for their own purposes. In this paper, we propose a two-layered invariant traceability framework that reduces the number of mismatches through bidirectional transformations. On top of existing vertical (model↔code) synchronisations between a model and the template code, a horizontal (code↔code) synchronisation between user and template code is supported, aligning the changes in both directions. Our blinkit tool is evaluated using the data set available from the CVS repositories of a MDD project: Eclipse MDT/GMF. Yijun Yu 0001, Zhenjiang Hu 0002, Soichiro Hidaka, Hiroyuki Kato, Lionel Montrieux |
ICSE | 3 |
| 2012 | Filter-embedding semiring fusion for programming with MapReduceabstractAbstract We show that MapReduce, the de facto standard for large scale data-intensive parallel programming, can be equipped with a programming theory in calculational form. By integrating the generate-and-test programming paradigm and semirings for aggregation of results, we propose a novel parallel programming framework for MapReduce. The framework consists of two important calculation theorems: the shortcut fusion theorem of semiring homomorphisms bridges the gap between specifications and efficient implementations, and the filter-embedding theorem helps to develop parallel programs in a systematic and incremental way. Kento Emoto, Sebastian Fischer 0001, Zhenjiang Hu 0002 |
Formal Aspects Comput. | 3 |
| 2012 | Manipulating accumulative functions by swapping call-time and return-time computationsabstractAbstract Functional languages are suitable for transformational developments of programs. However, accumulative functions, or in particular tail-recursive functions, are known to be less suitable for manipulation. In this paper, we propose a program transformation named “IO swapping” that swaps call-time and return-time computations. It moves computations in accumulative parameters to results and thereby enables interesting transformations. We demonstrate effectiveness of IO swapping by several applications: deforestation, higher order removal, program inversion, and manipulation of circular programs. Akimasa Morihata, Kazuhiko Kakehi 0001, Zhenjiang Hu 0002, Masato Takeichi |
J. Funct. Program. | 3 |
| 2011 | Towards Systematic Parallel Programming over MapReduce
Zhenjiang Hu 0002, Kiminori Matsuzaki |
Euro-Par (2) | 2 |
| 2011 | GRoundTram: An integrated framework for developing well-behaved bidirectional model transformationsabstractBidirectional model transformation is useful for maintaining consistency between two models, and has many potential applications in software development including model synchronization, round-trip engineering, and software evolution. Despite these attractive uses, the lack of a practical tool support for systematic development of well-behaved and efficient bidirectional model transformation prevents it from being widely used. In this paper, we solve this problem by proposing an integrated framework called GRoundTram, which is carefully designed and implemented for compositional development of well-behaved and efficient bidirectional model transformations. GRoundTram is built upon a well-founded bidirectional framework, and is equipped with a user-friendly language for coding bidirectional model transformation, a new tool for validating both models and bidirectional model transformations, an optimization mechanism for improving efficiency, and a powerful debugging environment for testing bidirectional behavior. GRoundTram has been used by people of other groups and their results show its usefulness in practice. Soichiro Hidaka, Zhenjiang Hu 0002, Kazuhiro Inaba, Hiroyuki Kato, Keisuke Nakano 0001 |
ASE | 2 |
| 2011 | Marker-Directed Optimization of UnCAL Graph Transformations
Soichiro Hidaka, Zhenjiang Hu 0002, Kazuhiro Inaba, Hiroyuki Kato, Kazutaka Matsuda, Keisuke Nakano 0001, Isao Sasano |
LOPSTR | 2 |
| 2011 | Graph-transformation verification using monadic second-order logicabstractThis paper presents a new approach to solving the problem of verification of graph transformation, by proposing a new static verification algorithm for the Core UnCAL, the query algebra for graph-structured databases proposed by Bunemann et al. Given a graph transformation annotated with schema information, our algorithm statically verifies that any graph satisfying the input schema is converted by the transformation to a graph satisfying the output schema. We tackle the problem by first reformulating the semantics of UnCAL into monadic second-order logic (MSO). The logic-based foundation allows to express the schema satisfaction of transformations as the validity of MSO formulas over graph structures. Then by exploiting the two established properties of UnCAL called bisimulation-genericity and compactness, we reduce the problem to the validity of MSO over trees, which has a sound and complete decision procedure. The algorithm has been efficiently implemented; all the graph transformations in this paper and the system web page can be verified within several seconds. Kazuhiro Inaba, Soichiro Hidaka, Zhenjiang Hu 0002, Hiroyuki Kato, Keisuke Nakano 0001 |
PPDP | 3 |
| 2011 | Supporting runtime software architecture: A bidirectional-transformation-based approach
Gang Huang 0001, Franck Chauvel, Yingfei Xiong 0001, Zhenjiang Hu 0002, Yanchun Sun, Hong Mei 0001 |
J. Syst. Softw. | 5 |
| 2010 | Context-Preserving XQuery Fusion
Hiroyuki Kato, Soichiro Hidaka, Zhenjiang Hu 0002, Keisuke Nakano 0001, Yasunori Ishihara |
APLAS | 3 |
| 2010 | A Grammar-Based Approach to Invertible Programs
Kazutaka Matsuda, Shin-Cheng Mu, Zhenjiang Hu 0002, Masato Takeichi |
ESOP | 3 |
| 2010 | Generators-of-Generators Library with Optimization Capabilities in Fortress
Kento Emoto, Zhenjiang Hu 0002, Kazuhiko Kakehi 0001, Kiminori Matsuzaki, Masato Takeichi |
Euro-Par (2) | 2 |
| 2010 | Bidirectionalizing graph transformationsabstractBidirectional transformations provide a novel mechanism for syn-chronizing and maintaining the consistency of information between input and output. Despite many promising results on bidirectional transformations, these have been limited to the context of relational or XML (tree-like) databases. We challenge the problem of bidirec-tional transformations within the context of graphs, by proposing a formal definition of a well-behaved bidirectional semantics for UnCAL, i.e., a graph algebra for the known UnQL graph query language. The key to our successful formalization is full utiliza-tion of both the recursive and bulk semantics of structural recur-sion on graphs. We carefully refine the existing forward evaluation of structural recursion so that it can produce sufficient trace infor-mation for later backward evaluation. We use the trace information for backward evaluation to reflect in-place updates and deletions on the view to the source, and adopt the universal resolving algorithm for inverse computation and the narrowing technique to tackle the difficult problem with insertion. We prove our bidirectional evalu-ation is well-behaved. Our current implementation is available on-line and confirms the usefulness of our approach with nontrivial applications. Soichiro Hidaka, Zhenjiang Hu 0002, Kazuhiro Inaba, Hiroyuki Kato, Kazutaka Matsuda, Keisuke Nakano 0001 |
ICFP | 2 |
| 2010 | Combining syntactic and semantic bidirectionalizationabstractMatsuda et al. [2007, ICFP] and Voigtländer [2009, POPL] introduced two techniques that given a source-to-view function provide an update propagation function mapping an original source and an updated view back to an updated source, subject to standard consistency conditions. Being fundamentally different in approach, both techniques have their respective strengths and weaknesses. Here we develop a synthesis of the two techniques to good effect. On the intersection of their applicability domains we achieve more than what a simple union of applying the techniques side by side delivers. Janis Voigtländer, Zhenjiang Hu 0002, Kazutaka Matsuda, Meng Wang 0002 |
ICFP | 2 |
| 2010 | A Dynamic-Priority Based Approach to Fixing Inconsistent Feature Models
Bo Wang 0170, Yingfei Xiong 0001, Zhenjiang Hu 0002, Haiyan Zhao 0001, Wei Zhang 0004, Hong Mei 0001 |
MoDELS (1) | 3 |
| 2010 | Gradual Refinement
Meng Wang 0002, Jeremy Gibbons, Kazutaka Matsuda, Zhenjiang Hu 0002 |
MPC | 4 |
| 2010 | Systematic Development of Correct Bulk Synchronous Parallel ProgramsabstractWith the current generalisation of parallel architectures arises the concern of applying formal methods to parallelism. The complexity of parallel, compared to sequential, programs makes them more error-prone and difficult to verify. Bulk Synchronous Parallelism (BSP) is a model of computation which offers a high degree of abstraction like PRAM models but yet a realistic cost model based on a structured parallelism. We propose a framework for refining a sequential specification toward a functional BSP program, the whole process being done with the help of the Coq proof assistant. To do so we define BH, a new homomorphic skeleton, which captures the essence of BSP computation in an algorithmic level, and also serves as a bridge in mapping from high level specification to low level BSP parallel programs. Louis Gesbert, Zhenjiang Hu 0002, Frédéric Loulergue, Kiminori Matsuzaki, Julien Tesson |
PDCAT | 2 |
| 2009 | Type-based specialization of xml transformationsabstractIt is often convenient to write a function and apply it to a specific input. However, a program developed in this way may be inefficient to evaluate and difficult to analyze due to its generality. In this paper, we propose a technique of new specialization for a class of XML transformations, in which no output of a function can be decomposed or traversed. Our specialization is type-based in the sense that it uses the structures of input types; types are described by regular hedge grammars and subtyping is defined set-theoretically. The specialization always terminates, resulting in a program where every function is fully specialized and only accepts its rigid input. We present several interesting applications of our new specialization, especially for injectivity analysis. Kazutaka Matsuda, Zhenjiang Hu 0002, Masato Takeichi |
PEPM | 2 |
| 2009 | The third homomorphism theorem on trees: downward & upward lead to divide-and-conquerabstractParallel programs on lists have been intensively studied. It is well known that associativity provides a good characterization for divide-and-conquer parallel programs. In particular, the third homomorphism theorem is not only useful for systematic development of parallel programs on lists, but it is also suitable for automatic parallelization. The theorem states that if two sequential programs iterate the same list leftward and rightward, respectively, and compute the same value, then there exists a divide-and-conquer parallel program that computes the same value as the sequential programs.While there have been many studies on lists, few have been done for characterizing and developing of parallel programs on trees. Naive divide-and-conquer programs, which divide a tree at the root and compute independent subtrees in parallel, take time that is proportional to the height of the input tree and have poor scalability with respect to the number of processors when the input tree is ill-balanced.In this paper, we develop a method for systematically constructing scalable divide-and-conquer parallel programs on trees, in which two sequential programs lead to a scalable divide-andconquer parallel program. We focus on paths instead of trees so as to utilize rich results on lists and demonstrate that associativity provides good characterization for scalable divide-and-conquer parallel programs on trees. Moreover, we generalize the third homomorphism theorem from lists to trees.We demonstrate the effectiveness of our method with various examples. Our results, being generalizations of known results for lists, are generic in the sense that they work well for all polynomial data structures. Akimasa Morihata, Kiminori Matsuzaki, Zhenjiang Hu 0002, Masato Takeichi |
POPL | 3 |
| 2009 | Supporting automatic model inconsistency fixingabstractModern development environments often involve models with complex consistency relations. Some of the relations can be automatically established through "fixing procedures". When users update some parts of the model and cause inconsistency, a fixing procedure dynamically propagates the update to other parts to fix the inconsistency. Existing fixing procedures are manually implemented, which requires a lot of efforts and the correctness of a fixing procedure is not guaranteed. Yingfei Xiong 0001, Zhenjiang Hu 0002, Haiyan Zhao 0001, Masato Takeichi, Hong Mei 0001 |
ESEC/SIGSOFT FSE | 2 |
| 2009 | Consistent Web site updating based on bidirectional transformation
Keisuke Nakano 0001, Zhenjiang Hu 0002, Masato Takeichi |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2007 | Domain-Specific Optimization Strategy for Skeleton Programs
Kento Emoto, Kiminori Matsuzaki, Zhenjiang Hu 0002, Masato Takeichi |
Euro-Par | 3 |
| 2007 | Bidirectionalization transformation based on automatic derivation of view complement functionsabstractBidirectional 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 corresponding backward transformation reflects changes in the view to the source. Its practically useful applications include replicated data synchronization, presentation-oriented editor development, tracing software development, and view updating in the database community. However, developing a bidirectional transformation is hard, because one has to give two mappings that satisfy the bidirectional properties for system consistency. Kazutaka Matsuda, Zhenjiang Hu 0002, Keisuke Nakano 0001, Makoto Hamana, Masato Takeichi |
ICFP | 2 |
| 2007 | Towards automatic model synchronization from model transformationsabstractThe 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 transformation is applied, the source model and the target model usually co-exist and evolve independently. How to propagate modifications across models in different formats still remains as an open problem. Yingfei Xiong 0001, Dongxi Liu, Zhenjiang Hu 0002, Haiyan Zhao 0001, Masato Takeichi, Hong Mei 0001 |
ASE | 3 |
| 2007 | Bidirectional interpretation of XQueryabstractXQuery is a powerful functional language to query XML data. This paper gives a bidirectional interpretation of XQuery to address the problem of updating XML data through materialized XQuery views. We first design an expressive bidirectional transformation language, and then translate XQuery expressions into the code of this language. As a result, an XQuery expression can execute in two directions: in the forward direction, it generates a materialized view from the source XML data; while in the backward direction, it updates the source data by putting back the updates on the view. we have implemented our approach and applied it to some XQuery use cases from a W3C draft, which confirms the practicability of this approach. Dongxi Liu, Zhenjiang Hu 0002, Masato Takeichi |
PEPM | 2 |
| 2007 | Automatic inversion generates divide-and-conquer parallel programsabstractDivide-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, list homomorphisms are a class of recursive functions on lists, which match very well with the divide-and-conquer paradigm. However, direct programming with list homomorphisms is a challenge for many programmers. In this paper, we propose and implement a novel systemthat can automatically derive cost-optimal list homomorphisms from a pair of sequential programs, based on the third homomorphism theorem. Our idea is to reduce extraction of list homomorphisms to derivation of weak right inverses. We show that a weak right inverse always exists and can be automatically generated from a wide class of sequential programs. We demonstrate our system with several nontrivial examples, including the maximum prefix sum problem, the prefix sum computation, the maximum segment sum problem, and the line-of-sight problem. The experimental results show practical efficiency of our automatic parallelization algorithm and good speedups of the generated parallel programs. Kazutaka Morita, Akimasa Morihata, Kiminori Matsuzaki, Zhenjiang Hu 0002, Masato Takeichi |
PLDI | 4 |
| 2006 | Surrounding Theorem: Developing Parallel Programs for Matrix-Convolutions
Kento Emoto, Kiminori Matsuzaki, Zhenjiang Hu 0002, Masato Takeichi |
Euro-Par | 3 |
| 2006 | Swapping Arguments and Results of Recursive Functions
Akimasa Morihata, Kazuhiko Kakehi 0001, Zhenjiang Hu 0002, Masato Takeichi |
MPC | 3 |
| 2006 | Towards automatic parallelization of tree reductions in dynamic programmingabstractTree 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, the tree contraction algorithms have not been widely used due to the difficulties in deriving the tree contracting operations. In particular, the derivation of the tree contracting operations is much difficult when multiple values are referred and updated in each step of the contractions. Such computations often appear in dynamic programming problems on trees. In this paper, we propose an algebraic approach to deriving tree contraction programs from recursive tree programs, by focusing on the properties of commutative semirings. We formalize a new condition for implementing tree reductions with the tree contraction algorithms, and give a systematic derivation of the tree contracting operations. Based on it, we implemented a code generator for tree reductions, which has an optimization mechanism that can remove unnecessary computations in the derived parallel programs. As far as we are aware, this is the first step towards an automatic parallelization system for the development of efficient tree programs. Kiminori Matsuzaki, Zhenjiang Hu 0002, Masato Takeichi |
SPAA | 2 |
| 2006 | Parallel skeletons for manipulating general trees
Kiminori Matsuzaki, Zhenjiang Hu 0002, Masato Takeichi |
Parallel Comput. | 2 |
| 2005 | An environment for maintaining computation dependency in XML documentsabstractIn 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 or presentation-oriented editing, etc. However, when an XML document contains data with some computation dependency among them, these tools cannot free users from the burden of maintaining this dependency relationship. By computation dependency, we mean that some data are gotten by computing from other data in the same document.In this paper, we present an environment for authoring XML document, in which users can express the data dependency relationship in one document explicitly rather than implicitly in their minds. Under this environment, the dependent parts of the document are represented as expressions, which in turn can be evaluated to generate the dependent data. Therefore, users need not to compute the dependent data first and then input them manually, as required by the current authoring tools. Dongxi Liu, Zhenjiang Hu 0002, Masato Takeichi |
ACM Symposium on Document Engineering | 2 |
| 2005 | Maximum Marking Problems with Accumulative Weight Functions
Isao Sasano, Mizuhito Ogawa, Zhenjiang Hu 0002 |
ICTAC | 3 |
| 2005 | Gabor Features-Based Classification Using SVM for Face Recognition
Yixiong Liang, Weiguo Gong, Yingjun Pan, Weihong Li 0001, Zhenjiang Hu 0002 |
ISNN (2) | 5 |
| 2004 | An Algebraic Approach to Bi-directional Updating
Shin-Cheng Mu, Zhenjiang Hu 0002, Masato Takeichi |
APLAS | 2 |
| 2004 | PType System: A Featherweight Parallelizability Detector
Dana N. Xu, Siau-Cheng Khoo, Zhenjiang Hu 0002 |
APLAS | 3 |
| 2004 | A Fusion-Embedded Skeleton Library
Kiminori Matsuzaki, Kazuhiko Kakehi 0001, Hideya Iwasaki, Zhenjiang Hu 0002, Yoshiki Akashi |
Euro-Par | 4 |
| 2004 | An Injective Language for Reversible Computation
Shin-Cheng Mu, Zhenjiang Hu 0002, Masato Takeichi |
MPC | 2 |
| 2004 | A programmable editor for developing structured documents based on bidirectional transformationsabstractThis 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 editor automatically derives an efficient and reliable document source and a transformation that produces the document view. The editor is unique in its programmability, in the sense that the transformation can be obtained through editing operations. The main tricks behind are the utilization of the view-updating technique developed in the database community, and a new bidirectional transformation language that cannot only describe the relationship between the document source and its view, but also data dependency in the view. Zhenjiang Hu 0002, Shin-Cheng Mu, Masato Takeichi |
PEPM | 1 |
| 2004 | Deterministic second-order patterns
Tetsuo Yokoyama, Zhenjiang Hu 0002, Masato Takeichi |
Inf. Process. Lett. | 2 |
| 2003 | Parallelization with Tree Skeletons
Kiminori Matsuzaki, Zhenjiang Hu 0002, Masato Takeichi |
Euro-Par | 2 |
| 2003 | Iterative-free program analysisabstractflow 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 convergence. Mizuhito Ogawa, Zhenjiang Hu 0002, Isao Sasano |
ICFP | 2 |
| 2003 | An Efficient Staging Algorithm for Binding-Time Analysis
Takuma Murakami, Zhenjiang Hu 0002, Kazuhiko Kakehi 0001, Masato Takeichi |
LOPSTR | 2 |
| 2003 | Deterministic Higher-Order Patterns for Program Transformation
Tetsuo Yokoyama, Zhenjiang Hu 0002, Masato Takeichi |
LOPSTR | 2 |
| 2003 | List Homomorphism with Accumulation
Kazuhiko Kakehi 0001, Zhenjiang Hu 0002, Masato Takeichi |
SNPD | 2 |
| 2002 | A Compositional Framework for Mining Longest Ranges
Haiyan Zhao 0001, Zhenjiang Hu 0002, Masato Takeichi |
Discovery Science | 2 |
| 2002 | An Accumulative Parallel Skeleton for All
Zhenjiang Hu 0002, Hideya Iwasaki, Masato Takeichi |
ESOP | 1 |
| 2002 | Towards a Modular Program Derivation via Fusion and Tupling
Wei-Ngan Chin, Zhenjiang Hu 0002 |
GPCE | 2 |
| 2000 | Make it practical: a generic linear-time algorithm for solving maximum-weightsum problemsabstractIn this paper we propose a new method for deriving a practical linear-time algorithm from the specification of a maximum-weightsum problem: From the elements of a data structure x, find a subset which satisfies a certain property p and whose weightsum is maximum. Previously proposed methods for automatically generating linear-time algorithms are theoretically appealing, but the algorithms generated are hardly useful in practice due to a huge constant factor for space and time. The key points of our approach are to express the property p by a recursive boolean function over the structure x rather than a usual logical predicate and to apply program transformation techniques to reduce the constant factor. We present an optimization theorem, give a calculational strategy for applying the theorem, and demonstrate the effectiveness of our approach through several nontrivial examples which would be difficult to deal with when using the methods previously available. Isao Sasano, Zhenjiang Hu 0002, Masato Takeichi, Mizuhito Ogawa |
ICFP | 2 |
| 2000 | Deriving Parallel Codes via Invariants
Wei-Ngan Chin, Siau-Cheng Khoo, Zhenjiang Hu 0002, Masato Takeichi |
SAS | 3 |
| 1999 | Diffusion: Calculating Efficient Parallel Programs
Zhenjiang Hu 0002, Masato Takeichi, Hideya Iwasaki |
PEPM | 1 |
| 1998 | Parallelization in Calculational FormsabstractThe 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 calculation has been found to be a promising way to solve these problems in the sequential world, we believe that it needs much more effort to study its effective use in the parallel world. In this paper, we propose a calculational framework for the derivation of efficient parallel programs with two main innovations:. -We propose a novel inductive synthesis lemma based on which an elementary but powerful parallelization theorem is developed. -We make the first attempt to construct a calculational algorithm for parallelization, deriving associative operators from data type definition and making full use of existing fusion and tupling calculations.Being more constructive, our method is not only helpful in the design of efficient parallel programs in general but also promising in the construction of parallelizing compiler. Several interesting examples are used for illustration. Zhenjiang Hu 0002, Masato Takeichi, Wei-Ngan Chin |
POPL | 1 |
| 1997 | Tupling Calculation Eliminates Multiple Data TraversalsabstractTupling 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 the common data structure. The major difficulty in tupling transformation is to find what functions are to be tupled and how to transform the tupled function into an efficient one. Previous approaches to tupling transformation are essentially based on fold/unfold transformation. Though general, they suffer from the high cost of keeping track of function calls to avoid infinite unfolding, which prevents them from being used in a compiler.To remedy this situation, we propose a new method to expose recursive structures in recursive definitions and show how this structural information can be explored for calculating out efficient programs by means of tupling. Our new tupling calculation algorithm can eliminate most of multiple data traversals and is easy to be implemented. Zhenjiang Hu 0002, Hideya Iwasaki, Masato Takeichi, Akihiko Takano |
ICFP | 1 |
| 1997 | Formal Derivation of Efficient Parallel Programs by Construction of List HomomorphismsabstractIt 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 treated rather informally and ad hoc in the development of efficient parallel programs. What is worse is that some interesting functions, e.g., the maximum segment sum problem, are basically not list homomorphisms. In this article, we propose a systematic and formal way for the construction of a list homomorphism for a given problem so that an efficient parallel program is derived. We show, with several well-known but nontrivial problems, how a straightforward, and “obviously” correct, but quite inefficient solution to the problem can be successfully turned into a semantically equivalent “almost list homomorphism.” The derivation is based on two transformations, namely tupling and fusion, which are defined according to the specific recursive structures of list homomorphisms. Zhenjiang Hu 0002, Hideya Iwasaki, Masato Takeichi |
ACM Trans. Program. Lang. Syst. | 1 |
| 1996 | Deriving Structural Hylomorphisms From Recursive Definitionsabstract... this paper, we propose an algorithm which can automatically turn all practical recursive definitions into structural hylomorphisms making program fusion be easily applied. Zhenjiang Hu 0002, Hideya Iwasaki, Masato Takeichi |
ICFP | 1 |
| 1996 | Construction of List Homomorphisms by Tupling and Fusion
Zhenjiang Hu 0002, Hideya Iwasaki, Masato Takeichi |
MFCS | 1 |