研究者詳細

学術論文
分割表示 >>   全件表示

42 件中 1 - 42 件目

年度
Year
論文題目名
Title of the articles
共著区分
Collaboration
   Classification
NeoCILIUS
   請求番号/資料ID
Request No
掲載誌名 Journal name,出版機関名 Publishing organization,巻/号 Vol./no.,頁数 Page nos.,発行年月(日) Date
2023  Reversible computing from a programming language perspective  共著   
Theoretical Computer Science  , Elsevier  , 953  , 1-29  , 2023/04/10   

概要(Abstract) Software plays a central role in all aspects of reversible computing systems, and a variety of reversible programming languages have been developed. This presentation highlights the principles and main ideas of reversible computing viewed from a programming language perspective with a focus on clean reversible languages. They are the building material for software that can reap the benefits of reversible hardware and interesting in their own right.

Reversible computing is situated within programming languages in general, and the relevant concepts are elaborated, including computability, injectivization and reversibilization. Features representative for many reversible languages are presented, such as reversible updates, reversible iterations, and access to a program's inverse semantics. Metaprogramming methods of particular importance to reversible programming, are introduced, including program inversion and inverse interpretation. Our presentation is independent of a particular language, although primarily the reversible language, Janus, will be used in examples. 

備考(Remarks) https://doi.org/10.1016/j.tcs.2022.06.010 

2022  Reversible Programming: A Case Study of Two String-Matching Algorithms  共著   
Electronic Proceedings in Theoretical Computer Science  , Open Publishing Association  , 373  , 1-13  , 2022/11/22   

概要(Abstract) String matching is a fundamental problem in algorithm. This study examines the development and construction of two reversible string-matching algorithms: a naive string-matching algorithm and the Rabin-Karp algorithm. The algorithms are used to introduce reversible computing concepts, beginning from basic reversible programming techniques to more advanced considerations about the injectivization of the polynomial hash-update function employed by the Rabin-Karp algorithm. The results are two clean input-preserving reversible algorithms that require no additional space and have the same asymptotic time complexity as their classic irreversible originals. This study aims to contribute to the body of reversible algorithms and to the discipline of reversible programming. 

備考(Remarks) http://dx.doi.org/10.4204/EPTCS.373.1 

2022  Making Programs Reversible with Minimal Extra Data  共著   
New Generation Computing  , Springer  , 40  , 467–480  , 2022/07/04   

概要(Abstract) Reversible computing is an unconventional computing paradigm that comes with specific challenges. One of the important questions is the existence of reversible programs with minimal extra output (garbage data). To answer this question for programs that implement partial functions over countable domains, we introduce an order on infinite garbage sets and a notion of minimality. To this end, we present two methods for functions specified by decidable and semi-decidable predicates. Both methods are universal, which means they work for all programs specified by the predicates. They cover Bennett’s classic input-erasing reversible computation of injective functions. Hence, any program written in a Turing-complete programming language can be implemented with g-minimal garbage in an r-Turing-complete reversible programming language. This generality comes at the cost of a considerable runtime due to the generate-and-test approach. 

備考(Remarks) https://link.springer.com/article/10.1007/s00354-022-00169-z 

2022  From Reversible Programming Languages to Reversible Metalanguages  共著   
Theoretical Computer Science  , Elsevier  , Vol.920  , pp. 46-63  , 2022/06/12   

概要(Abstract) During the past decade reversible programming languages have been formalized using various established semantics frameworks. However, these semantics fail to effectively specify the distinct properties of reversible languages at the metalevel, even including the central question of whether the defined language is reversible. In this paper, we build a metalanguage foundation for reversible languages from categorical principles, based on the category of sets and partial injective functions. We exemplify our approach by a step-by-step development of the full semantics of an r-Turing complete reversible while-language with recursive procedures. The use of the metalanguage leads to a formalization of the reversible semantics. A language defined in the metalanguage is guaranteed to have reversibility and inverse semantics. Also, program inverters for this language are obtained for free. We further discuss applications and directions for reversible semantics. 

備考(Remarks) https://doi.org/10.1016/j.tcs.2022.02.024

(早期公開2022/02/22) 

2021  素朴な方法とRabin-Karp法による可逆文字列照合アルゴリズム  共著   
南山大学紀要アカデミア理工学編   , 南山大学  , 22  , pp. 124-132  , 2022/03   

概要(Abstract) 可逆性を有効に活用した計算システムでは,アルゴリズムも可逆であることが望ましいことが少なくない.本稿では素朴な方法と Rabin と Karp による文字列照合アルゴリズムの可逆版をそれぞれ作成し,時間計算量,空間計算量,及びゴミの量の解析を行う.可逆アルゴリズムは全ステップが単射でなければならない.我々は Rabin–Karp アルゴリズムで用いられるハッシュ値を更新する写像が単射であることを示す.素朴な方法の可逆版は(非可逆である)素朴な方法と時間計算量が同じであるものを作成した.可逆なRabin–Karp アルゴリズムは,前処理と後処理を除いた計算の時間計算量が非可逆なものと同じものを作成した.両者とも,空間計算量は対応する非可逆アルゴリズムと同じであり,ゴミは入力のみである.提案した可逆アルゴリズムは可逆プログラミング言語 Janus を用いて実装して動作を確認した. 

備考(Remarks) http://doi.org/10.15119/00003946 

2020  Complete Transition Diagrams of Generic Hamiltonian Flows with a Few Heteroclinic Orbits  共著   
Discrete Mathematics, Algorithms and Applications  , World Scientific  , Vol. 13, No. 02  , 2150023  , 2020/09   

概要(Abstract) We study the transition graph of generic Hamiltonian surface flows, whose vertices are the topological equivalence classes of generic Hamiltonian surface flows and whose edges are the generic transitions. Using the transition graph, we can describe time evaluations of generic Hamiltonian surface flows (e.g. fluid phenomena) as walks on the graph. We propose a method for constructing the complete transition graph of all generic Hamiltonian flows. In fact, we construct two complete transition graphs of Hamiltonian surface flows having three and four genus elements. Moreover, we demonstrate that a lower bound on the transition distance between two Hamiltonian surface flows with any number of genus elements can be calculated by solving an integer programming problem using vector representations of Hamiltonian surface flows. 

備考(Remarks) https://doi.org/10.1142/S1793830921500233 

2020  Reversible Programs Have Reversible Semantics  共著   
In: Sekerinski E. et al. (eds) Formal Methods. FM 2019 International Workshops (FM 2019), Lecture Notes in Computer Science   , Springer-Verlag  , Vol.12233  , pp. 413–427  , 2020/08/10   

概要(Abstract) During the past decade, reversible programming languages have been formalized using various established semantic frameworks. However, these semantics fail to effectively specify the distinct properties of reversible languages at the metalevel, and even neglect the central question of whether the defined language is reversible. In this paper, we build on a metalanguage foundation for reversible languages based on the category of sets and partial injective functions. We exemplify our approach through step-by-step development of the full semantics of an r-Turing complete reversible while-language with recursive procedures. This yields a formalization of the semantics in which the reversibility of the language and its inverse semantics are immediate, as well as the inversion of programs written in the language. We further discuss applications and future research directions for reversible semantics. 

備考(Remarks) https://doi.org/10.1007/978-3-030-54997-8_26 

2019  Analyzing Trade-offs in Reversible Linear and Binary Search Algorithms  共著   
Proceedings of the Third Workshop on Software Foundations for Data Interoperability (SFDI2019+), October 28, 2019, Fukuoka, Japan  , pp.1-5  , 2019/10/23   

概要(Abstract) Reversible algorithms are algorithms in which each step represents a partial injective function; they are useful for performance optimization in reversible systems. In this study, using Janus, a reversible imperative high-level programming language, we have developed reversible linear and binary search algorithms. We have analyzed the non-trivial space-time trade-offs between them, focusing on the memory usage disregarding original inputs and outputs, the size of the output garbage disregarding the original inputs, and the maximum amount of traversal of the input. The programs in this study can easily be adapted to other reversible programming languages. Our analysis reveals that the change of the output data and/or the data structure affects the design of efficient reversible algorithms. For example, the number of input data traversals depends on whether the search has succeeded or failed, while it expectedly never changes in corresponding irreversible linear and binary searches. Our observations indicate the importance of the selection of data structures and what is regarded as the output with the aim of the reversible algorithm design. 

備考(Remarks) https://arxiv.org/abs/1911.05900
https://arxiv.org/abs/1910.10406 

2019  Constructing a Binary Tree from its Traversals by Reversible Recursion and Iteration  共著   
Information Processing Letters  , Elsevier  , 147  , 32-37  , 2019/07   

概要(Abstract) We cast two algorithms generating the inorder and preorder traversals of a binary tree in the context of reversible computing nearly three decades after they were first examined in the light of program inversion. The reversible traversals directly define the inverse algorithms that reconstruct the tree. They have the same linear time and space requirements as the traversals. A while-language is extended with reversible recursion. 

備考(Remarks) https://doi.org/10.1016/j.ipl.2019.03.002 

2018  多重連結領域上の安定非圧縮流のプリミティブな局所構造変換  共著   
電子情報通信学会和文論文誌D  , 電子情報通信学会  , Vol.J102-D, No.3  , 235-238  , 2019/03/01   

概要(Abstract) 局所構造変換を繰り返し適用して,一般に観測される多重連結領域上の非圧縮流の全トポロジーを構成できることを示した.3種類の初期大域構造に対して,7種類の局所構造を置換するアプローチを取った. 

備考(Remarks) http://doi.org/10.14923/transinfj.2018JDL8021 

2018  二分木の辞書順のランク計算の効率的なクリーン可逆シミュレーション  共著   
電子情報通信学会和文論文誌D  , 電子情報通信学会  , Vol.J102-D, No.3  , pp. 130-140  , 2019/03/01   

概要(Abstract) 可逆システム上で非可逆プログラムの可逆シミュレーションを実現するとき,既知の一般解法を用いると,元の入出力の走査回数と,元の入出力用以外のメモリ使用量が増え,元の出力以外を出力してクリーンでなくなってしまうという問題が起こる.しかし,非可逆なアルゴリズムに対して,経験と勘を元に個別の非可逆プログラムの効率的なクリーン可逆シミュレーションが実現されてきている.本稿では,可逆計算システムで用いる可逆アルゴリズムとして,二分木の列挙,二分木の辞書順のランク計算,および辞書順における次の二分木の生成の効率的なクリーン可逆シミュレーションの構築をする.これらは基礎的な可逆アルゴリズムであるので,他の可逆アルゴリズムの一部として使用されたり,可逆アルゴリズムの構築法が利用されたりすることが期待される.また,二分木のランク計算に関する効率的な可逆プログラムの整備を進めることで類似するランク計算やさらには現時点では困難な一般の効率的可逆シミュレーションの自動導出が可能になることが期待される.本稿の可逆プログラムは全てオンラインインタプリタで実行して振る舞いを確かめることが可能である. 

備考(Remarks) 10.14923/transinfj.2018PDP0021 

2018  可逆プログラミング言語R-WHILEの可逆チューリング完全性  共著   
電子情報通信学会和文論文誌D  , 電子情報通信学会  , J101-D, No.9  , pp. 1372-1375  , 2018/09/01   

概要(Abstract) 任意の可逆プログラミング言語のプログラムで計算できるものが,可逆なR-WHILEプログラムによって計算できることを示す. 

備考(Remarks) DOI: 10.14923/transinfj.2018JDL8008 

2018  ハミルトン曲面流に対応する流れの向きを考慮した極大語の列挙アルゴリズム  共著   
電子情報通信学会論文誌 D  , 電子情報通信学会  , Vol.J101-D, No.8  , pp. 1220-1222  , 2018/08/01   

概要(Abstract) ハミルトン曲面流を表す流れの向きを考慮した極大語の表現法,任意の長さの極大語をもれなく重複無く列挙するアルゴリズム,及びステートチャートによる極大語の生成方法の簡潔な表現を示した.本手法で向きを考慮した流れの総数を見積もれる.
 

備考(Remarks) http://search.ieice.org/bin/summary.php?id=j101-d_8_1220&category=D&year=2018&lang=J&abst= 

2017  Clean Reversible Simulation of Ranking Binary Trees  共著   
Reversibility and Universality  , Springer-Verlag  , Vol.30  , pp. 243-267  , 2018/03   

概要(Abstract) We propose clean reversible simulations of ranking binary trees and unranking as reversible algorithms for reversible computing systems, which are useful for enumerating and randomly generating binary trees. Algorithms for ranking binary trees and their inverses have been studied since the 1970s. Each of these algorithms can be converted into a reversible simulation by saving all data and control information otherwise lost, and each pair of ranking and unranking reversible pro- grams can be combined to realize a clean reversible simulation by using the Bennett method. However, such a clean reversible simulation requires multiple traversal of the given data and/or intermediate data as well as additional storage proportional to the length of the computation. We show that for Knott's ranking and unranking algorithms, additional storage usage can be reduced by using the proper assertions of reversible loops in embedded reversible simulations. We also show a clean reversible simulation that involves only one traversal. The running time and memory usage of the proposed clean reversible simulations are asymptotically equivalent to those of the original programs by Knott with intermediate garbage of constant size. In general, the derivation strategy of efficient reversible programs from irreversible ones has not yet been established, and this study can be seen as one of the case studies. All the reversible programs presented in this paper can be run on an interpreter of the reversible programming language Janus. 

備考(Remarks) https://doi.org/10.1007/978-3-319-73216-9_11 

2017  可逆ビンソート  単著   
電子情報通信学会論文誌 D  , 電子情報通信学会  , Vol.J101-D, No.5  , pp. 791-793  , 2018/01/19   

概要(Abstract) 非比較ソートであるビンソートの可逆シミュレーションを示し,効率的な非可逆ビンソートに対して時間/空間計算量が共に線形で出力ゴミが入力データと漸近的に同じ大きさの置換を表す配列になることを示す. 

備考(Remarks) DOI: 10.14923/transinfj.2017JDL8021

2018/01/19に早期公開,2018/05に公開 

2017  可逆プログラムのための償却定数時間かつ定数ゴミ使用量のメモ化  単著   
電子情報通信学会和文論文誌D  , 電子情報通信学会  , Vol.J100-D, No.10  , pp. 895-896  , 2017/10/01   

概要(Abstract) メモ化アルゴリズムの可逆版を提案する.本手法により得られるクリーン可逆プログラムは,可逆二進計数器を抽象解釈とする.単射な隣接2項間漸化式で表される任意の数列に対して償却定数時間で定数ゴミ使用量の可逆プログラムを得る方法を示す. 

備考(Remarks) https://search.ieice.org/bin/summary.php?id=j100-d_10_895 

2017  ハミルトン曲面流に対応する語の列挙アルゴリズム  共著   
電子情報通信学会和文論文誌D  , 電子情報通信学会  , Vol.J100-D, No.10  , pp. 892-894  , 2017/10/01   

概要(Abstract) ハミルトン曲面流に関する極大語の自然な分類が有限個であることを示し,その各分類の下での全ての極大語の列挙アルゴリズムの構成法を明らかにした.また,各分類において極大語の総数を求める方法を形式言語理論を応用して示した.
 

備考(Remarks) http://search.ieice.org/bin/summary.php?id=j100-d_10_892&category=D&year=2017&lang=J&abst= 

2017  A Minimalist's Reversible While Language  共著   
IEICE on Information and Systems  , Institute of Electronics, Information and Communication Engineers  , Vol.E100-D/No.5  , pp. 1026-1034  , 2017/05/01   

概要(Abstract) The paper presents a small reversible language R-CORE, a structured imperative programming language with symbolic tree-structured data (S-expressions). The language is reduced to the core of a reversible language, with a single command for reversibly updating the store, a single reversible control-flow operator, a limited number of variables, and data with a single atom and a single constructor. Despite its extreme simplicity, the language is reversibly universal, which means that it is as powerful as any reversible language can be, while it is linear-time self-interpretable, and it allows reversible programming with dynamic data structures. The four-line program inverter for R-CORE is among the shortest existing program inverters, which demonstrates the conciseness of the language. The translator to R-CORE, which is used to show the formal properties of the language, is clean and modular, and it may serve as a model for related reversible translation problems. The goal is to provide a language that is sufficiently concise for theoretical investigations. Owing to its simplicity, the language may also be used for educational purposes. 

備考(Remarks) http://doi.org/10.1587/transinf.2016EDP7274 

2016  A Linear-Time Self-Interpreter of a Reversible Imperative Language  共著   
Computer Software  , Japan Society for Software Science and Technology (JSSST)  , 3  , pp. 108–128   , 2016/08/10   

概要(Abstract) A linear-time reversible self-interpreter in an r-Turing complete reversible imperative language is presented. The proposed imperative language has reversible structured control flow operators and symbolic tree-structured data (S-expressions). The latter data structures are dynamically allocated and enable reversible simulation of programs of arbitrary size and space consumption. As self-interpreters are used to show a number of fundamental properties in classic computability and complexity theory, the present study of an efficient reversible self-interpreter is intended as a basis for future work on reversible computability and complexity theory as well as programming language theory for reversible computing. Although the proposed reversible interpreter consumes superlinear space, the restriction of the number of variables in the source language leads to linear-time reversible simulation. 

備考(Remarks) http://doi.org/10.11309/jssst.33.3_108

【reprint】Information and Media Technologies 11: 160-180 (2016) https://www.jstage.jst.go.jp/article/imt/11/0/11_160/_article 

2015  Fundamentals of reversible flowchart languages  共著  doi:10.1016/j.tcs.2015.07.046 
Theoretical Computer Science  , Elsevier  , 611  , 87-115  , 2016/01/18   

概要(Abstract) This paper presents the fundamentals of reversible flowcharts. Reversible flowcharts are intended to naturally represent the structure and control flow of reversible (imperative) programming languages in a simple computation model in the same way classical flowcharts do for conventional languages. Although reversible flowcharts are superficially similar to classical flowcharts, there are crucial differences: atomic steps are limited to locally invertible operations, and join points require an explicit orthogonalizing conditional expression.

Despite these constraints, we show that reversible flowcharts are both expressive and robust: reversible flowcharts can simulate irreversible ones by adapting reversibilization techniques to the flowchart model. Thus, reversible flowcharts are r-Turing-complete, meaning that they can compute exactly all injective computable functions. Furthermore, structured reversible flowcharts are as expressive as unstructured ones, as shown by a reversible version of the classic Structured Program Theorem.

We illustrate how reversible flowcharts can be concretized with two example programming languages, complete with syntax and semantics: a low-level unstructured language and a high-level structured language. We introduce concrete tools such as program inverters and translators for both languages, which follow the structure suggested by the flowchart model. To further illustrate the different concepts and tools brought together in this paper, we present two major worked examples: a reversible permutation-to-code algorithm attributed to Dijkstra, and a simulation scheme for reversible Turing machines. By exhibiting a wide range of uses, we hope that the proposed reversible flowcharts can serve as a springboard for further theoretical research in reversible computing. 

備考(Remarks) http://dx.doi.org/10.1016/j.tcs.2015.07.046 

2015  Programming Techniques for Reversible Comparison Sorts  共著  10.1007/978-3-319-26529-2_22 
Lecture Notes in Computer Science  , Springer-Verlag  , 9458  , pp. 407-426  , 2015/12/09   

概要(Abstract) A common approach to reversible programming is to reversibly simulate an irreversible program with the desired functionality, which in general puts additional pressure on the computational resources (time, space.) If the same running time is required, ensuring a minimal space overhead is a significant programming challenge.

We introduce criteria for the optimality of reversible simulation: A reversible simulation is faithful if it incurs no asymptotic time overhead and bounds the space overhead (the garbage) by some function g(n), and hygienic if g is (asymptotically) optimal for faithful simulation.

We demonstrate the programming techniques used to develop faithful and hygienic reversible simulations of several well-known comparison sorts, e.g. insertion sort and quicksort, using representations of permutations in both the output and intermediate additional space required. 

備考(Remarks) https://doi.org/10.1007/978-3-319-26529-2_22 

2014  Designing Garbage-Free Reversible Implementations of the Integer Cosine Transform  共著   
ACM Journal on Emerging Technologies in Computing Systems  , 11  , pp. 1-15  , 2014/11   

概要(Abstract) Discrete linear transformations are important tools in information processing. Many such transforms are injective and therefore prime candidates for a physically reversible implementation into hardware. We present here reversible integer cosine transformations on n input integers. The resulting reversible circuit is able to perform both the forward transform and the inverse transform. The detailed structure of such a reversible design strongly depends on the odd prime factors of the determinant of the transform: whether those are of the form 2k ± 1 or of the form 2k ± 2l ± 1 or neither of these forms. 

備考(Remarks)  

2014  可逆プログラミング言語の引数渡し機構の拡張  共著   
情報処理学会論文誌:プログラミング  , 情報処理学会  , 7  , 21-36  , 2014/08   

概要(Abstract) 本稿では,可逆プログラミング言語Janusの引数渡し機構を拡張して,その拡張言語が可逆であることを示す.参照渡しのモデル化には,同一の参照を持つかもしれない複数の変数名が同じ記憶場所を指せるメモリモデルが必要である.これは既存のJanusで用いられていた状態モデルでは直接には扱うことができない.この問題を解決するために,我々は,環境・記憶域モデルを導入して意味論を改良した.この結果,プロシージャの実引数には,局所変数や局所配列変数だけでなく大域変数や添字付き配列変数の参照,および同一の参照を持つ複数の構文対象も渡せるようになった.拡張言語が可逆であることの保証には,環境と記憶域の更新が可逆であることの保証が必要である.これらの更新は,制限された可逆操作のみ用いて実現されることで,可逆であることが保証される.我々は,拡張言語がほかにも既存のJanusの良い性質を保っていることを示す.すなわち,任意の文やプロシージャ呼び出しの逆実行ができること,および任意の文に対して逆文が存在してそれを求めるプログラム逆変換器が構成できることを示す.さらに,我々は,プログラミング言語を可逆にするために課されていた代入の構文上の制限を緩和する.このことが原因で起こる記憶域の不正な更新は,大域のプログラム解析をしなくても,効率的に検知することができる. 

備考(Remarks) http://id.nii.ac.jp/1001/00102871/
共著者 新海由侑、田中秀明、横山哲郎 

2012  Minimizing Garbage Size by Generating Reversible Simulations  共著   
Reversibility, cellular automata, and unconventional computation. Proceedings.  , IEEE Computer Society  , 379–387  , 2012/12/05   

概要(Abstract) Reversible simulations can realize any irreversible computation on any r-Turing complete reversible computation model at the expense of additional garbage output. The problem of minimizing the garbage size is an important issue in reversible simulations. We discuss the notion of the minimal garbage size of reversible simulations. Then, we propose a three-stage reversible simulation for minimizing garbage size, the first stage generates specialized irreversible programs, the second translates them into reversible simulations, and the third performs reversible simulation using the generated reversible programs. Two case studies on sorting algorithms suggest that the proposed method generates solutions with minimal garbage size. 

備考(Remarks) http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6424599&isnumber=6424528 

2011  Optimizing Input-Erasing Clean Reversible Simulation for Injective Functions  共著   
Multiple-Valued Logic and Soft Computing  , Old City Publishing  , Vol.18/no.1  , 5–24  , 2012/01   

概要(Abstract) Bennett showed that a clean reversible simulation of injective programs is possible without returning the input of a program as additional output. His method involves two computation and two uncomputation phases. This paper proposes an optimization of Bennett’s simulation that requires only half of the computation and uncomputation steps for a class of injective programs. A practical consequence is that the reversible simulation runs twice as fast as Bennett’s simulation. The proposed method is demonstrated by developing lossless encoders and decoders for run-length encoding and range coding. The range-coding program is further optimized by conserving the model over the text-generation phase. This paper may thus provide a new view on developing efficient reversible simulations for a certain class of injective functions. 

備考(Remarks) http://www.oldcitypublishing.com/journals/mvlsc-home/mvlsc-issue-contents/mvlsc-volume-18-number-1-2012/mvlsc-18-1-p-5-24/ 

2011  Towards a Reversible Functional Language  共著   
Lecture Notes in Computer Science  , Springer-Verlag  , Vol. 7165  , 14–29  , 2012   

概要(Abstract) We identify concepts of reversibility for a functional language
by means of a set of semantic rules with specific properties. These properties include injectivity along with local backward determinism, an important operational property for an efficient reversible language. We define a concise reversible first-order functional language in which access to the backward semantics is provided to the programmer by inverse function calls. Reversibility guarantees that in this language a backward run (inverse interpretation) is as fast as the corresponding forward run itself. By adopting a symmetric first-match policy for case expressions, we can write overlapping patterns in case branches, as is customary in ordinary functional languages, and also in leaf expressions, unlike existing inverse interpreter methods, which enables concise programs. In patterns, the use of a duplication/equality operator also simplifies inverse computation and program inversion. We discuss the advantages of a reversible functional language using example programs, including run-length encoding. Program inversion is seen to be as lightweight as for imperative
reversible languages and realized by recursive descent. Finally, we show
that the proposed language is r-Turing complete. 

備考(Remarks)  

2011  Static Task Scheduling Algorithms Based on Greedy Heuristics for Battery-Powered DVS Systems  共著   
IEICE Trans. on Information and Systems  , The Institute of Electronics, Information and Communication Engineers  , E93-D  , 2737-2746  , 2010/10   

概要(Abstract) We identify concepts of reversibility for a functional language by means of a set of semantic rules with specific properties. These properties include injectivity along with local backward determinism, an important operational property for an efficient reversible language. We define a concise reversible first-order functional language in which access to the backward semantics is provided to the programmer by inverse function calls. Reversibility guarantees that in this language a backward run (inverse interpretation) is as fast as the corresponding forward run itself. By adopting a symmetric first-match policy for case expressions, we can write overlapping patterns in case branches, as is customary in ordinary functional languages, and also in leaf expressions, unlike existing inverse interpreter methods, which enables concise programs. In patterns, the use of a duplication/equality operator also simplifies inverse computation and program inversion. We discuss the advantages of a reversible functional language using example programs, including run-length encoding. Program inversion is seen to be as lightweight as for imperative reversible languages and realized by recursive descent. Finally, we show that the proposed language is r-Turing complete. 

備考(Remarks)  

2009  Reversible Computation and Reversible Programming Languages  単著   
Electronic Notes in Theoretical Computer Science  , Elsevier  , 253(6)  , 71-81  , 2010/03   

概要(Abstract)  

備考(Remarks) 以下における招待講演を改訂したもの.
Reversible Computation 2009. 

2009  Practical Energy-Aware Scheduling for Real-Time Multiprocessor Systems  共著   
15th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications  , IEEE Press  , 2009/08   

概要(Abstract) Energy-aware real-time multiprocessor scheduling has been studied extensively so far. However, some of the constraints associated with the practical DVS applications have been ignored for simplicity. These constraints include discrete speed, idle power, inefficient speed, and application-specific power characteristics etc. This work targets energy-aware scheduling of periodic real-time tasks on the DVS-equipped multiprocessor systems with practical constraints. An adaptive minimal bound first-fit (AMBFF) algorithm with consideration of these realistic constraints is proposed for both dynamic-priority and fixed-priority multiprocessor scheduling. Simulation results on three commercial processor models show that our algorithm can save significantly more energy than existing algorithms. 

備考(Remarks) https://doi.org/10.1109/RTCSA.2009.47 

2009  Heuristics for Static Voltage Scheduling Algorithms on Battery-Powered DVS Systems  未設定   
2009 International Conference on Embedded Software and Systems  , IEEE Computer Society  , 265-272  , 2009/05   

概要(Abstract) The principles for good design of battery-aware voltage scheduling algorithms for both aperiodic and periodic task sets on dynamic voltage scaling (DVS) systems are presented. The proposed algorithms are based on greedy heuristics suggested by several battery characteristics and Lagrange multipliers. To construct the proposed algorithms, we use the battery characteristics in the early stage of scheduling more properly. As a consequence, the proposed algorithms show superior results on synthetic examples of periodic and aperiodic tasks from the task sets which are excerpted from the comparative work, on uniprocessor platforms. Especially, for some large task sets, the proposed algorithms enable previously unschedulable task sets due to battery exhaustion to be schedulable. 

備考(Remarks) https://doi.org/10.1109/ICESS.2009.19 

2009  Analyzing and optimizing energy efficiency of algorithms on DVS systems: A first step towards algorithmic energy minimization  共著   
Asia and South Pacific Design Automation Conference (ASP-DAC)  , IEEE Press  , 727–732  , 2009/01   

概要(Abstract) The energy efficiency at the algorithmic level on DVS systems and its analysis and optimization methods are presented. Given a problem the most energy efficient algorithm is not uniquely determined but dependent on multiple factors, including intratask dynamic voltage scaling (IntraDVS) policies, the size of intermediate data structure, and the size of inputs. We show that at the algorithmic level principles behind energy optimization and performance optimization are not identical. We propose a metric for evaluating optimal energy efficiency of static voltage scaling (SVS) and a few new effective IntraDVS policies employing data flow information. Experimental results on sorting algorithms show the existence of several tradeoffs in terms of energy consumption. Transforming algorithms by employing problem specific knowledge and data flow information successfully improves their energy efficiency. 

備考(Remarks) https://doi.org/10.1109/ASPDAC.2009.4796566 

2008  動的電圧制御システムにおける評価戦略選択に基づく高効率消費エネルギー関数型プログラミング  共著  http://ci.nii.ac.jp/naid/110007970891 
情報処理学会論文誌:トランザクション「プログラミング」  , 情報処理学会  , Vol.2, No.2(PRO41)  , 54-69  , 2009/03   

概要(Abstract) 動的電圧制御 (DVS: dynamic voltage scaling) は,プロセッサへの供給電圧とその動作周波数をプログラム実行時に変化させる技術であり,現在,多くの商用プロセッサに実装されている.本稿では,デッドラインなどの制約のあるリアルタイムシステムを対象に,DVS システムにおいて動的エネルギー消費のより少ないプログラムを開発する方法論の 1 つを提示する.DVS システムで実行されるプログラムに動的エネルギー消費の最適化が有効であるためには,残り予測実行時間の実行早期の正確な見積りを容易にすることが重要である.そのため,プログラムは何を計算するかに加えどう計算するかをうまく指定する必要がある.しかし,プログラム改変によるエネルギー消費の最適化はプログラムのモジュール性を著しく損なう.本稿では,プログラムから独立し,エネルギー消費の最適化戦略を開発する手法を提案する.提案手法により,エネルギー消費の最適化を行うときに元のプログラムの部分正当性が容易に保存され,元のプログラムおよびエネルギー消費の最適化を行うための評価戦略が独立してそれぞれモジュール性を有するようになった.遅延評価などのプログラミング言語の特徴や構成的アルゴリズム論における組化などを活用することにより半自動化が実現できたことが,本開発法の特徴の 1 つである.本稿では,整列,選択,文字列検索などの基本的なアルゴリズムに提案手法を適用する.また,電力モデルを備えた命令セットシミュレータ(ISS: instruction set simulator)において実験を行い,エネルギー消費がどれだけ最適化されたかを評価する.基本的なアルゴリズムにおいて,本稿のアプローチが有効であることから,複雑なアルゴリズムに対しても本手法が効果的であることが期待される. 

備考(Remarks) 以下で発表したものを改訂したもの.
動的電圧制御システムにおけるエネルギー効率的な関数プログラム, 第71回情報処理学会プログラミング研究発表会. 

2008  A Generalized Framework for Energy Savings in Real-Time Multiprocessor Systems  共著   
Proceedings of 2008 International SoC Design Conference  , IEEE  , 727-732  , 2009/01   

概要(Abstract) A generalized dynamic energy performance scaling (DEPS) framework is proposed for exploring application-specific energy-saving potential in multiprocessor systems. This software-centric framework takes advantage of possible power control mechanisms to trade off performance for energy savings. Three existing technologies, i.e., dynamic hardware resource configuration (DHRC), dynamic voltage frequency scaling (DVFS), and dynamic power management (DPM), have been employed in this framework to achieve the maximal energy savings. The problem of determining the optimal task allocation and DEPS configurations is formulated as an integer linear programming (ILP) problem. Several practical issues such as how to reduce measurement and computation time and how to reduce the configuration overhead are also addressed. The effectiveness of DEPS is validated through a case study. 

備考(Remarks) DOI: 10.1109/SOCDC.2008.4815570
https://ieeexplore.ieee.org/document/4815570 

2008  Reversible Flowchart Languages and the Structured Reversible Program Theorem  共著   
Automata, Languages and Programming  , Springer  , LNCS 5126  , 258-270  , 2008/08   

概要(Abstract) Many irreversible computation models have reversible counterparts, but these are poorly understood at present. We introduce reversible flowcharts with an assertion operator and show that any reversible flowchart can be simulated by a structured reversible flowchart using only three control flow operators. Reversible flowcharts are r-Turing-complete, meaning that they can simulate reversible Turing machines without garbage data. We also demonstrate the injectivization of classical flowcharts into reversible flowcharts. The reversible flowchart computation model provides a theoretical justification for low-level machine code for reversible microprocessors as well as high-level block structured reversible languages. We give examples for both such languages and illustrate them with a lossless encoder for permutations given by Dijkstra. 

備考(Remarks)  

2008  Principles of a reversible programming languages  未設定   
CF '08: Proceedings of the 5th conference on Computing frontiers  , ACM Press  , 43–54  , 2008/05   

概要(Abstract) The principles of reversible programming languages are explicated and illustrated with reference to the design of a high-level imperative language, Janus. The fundamental properties for such languages include backward as well as forward determinism and reversible updates of data. The unique design features of the language include explicit post-condition assertions, direct access to an inverse semantics and the possibility of clean ({\ie}, garbage-free) computation of injective functions. We suggest the clean simulation of reversible Turing machines as a criterion for computing strength of reversible languages, and demonstrate this for Janus. We show the practicality of the language by implementation of a reversible fast Fourier transform. Our results indicate that the reversible programming paradigm has fundamental properties that are relevant to many different areas of computer science. 

備考(Remarks) https://dl.acm.org/doi/10.1145/1366230.1366239 

2007  Reversible Machine Code and Its Abstract Processor Architecture  共著   
Computer Science -- Theory and Applications  , Springer  , LNCS 4649  , 56-69  , 2007/09   

概要(Abstract) A reversible abstract machine architecture and its reversible machine code are presented and formalized. For machine code to be reversible, both the underlying control logic and each instruction must be reversible. A general class of machine instruction sets was proven to be reversible, building on our concept of reversible updates. The presentation is abstract and can serve as a guideline for a family of reversible processor designs. By example, we illustrate programming principles for the abstract machine architecture formalized in this paper. 

備考(Remarks) 以下で発表したものを改訂したもの.
Second International Symposium on Computer Science in Russia, CSR 2007

https://doi.org/10.1007/978-3-540-74510-5_9 

2006  Program Optimizations and Transformations in Calculation Form  共著   
Generative and Transformational Techniques in Software Engineering  , Springer  , LNCS 4143  , 144-168  , 2006/11   

概要(Abstract) The world of program optimization and transformation takes on a new fascination when viewed through the lens of program calculation. Unlike the traditional fold/unfold approach to program transformation on arbitrary programs, the calculational approach imposes restrictions on program structures, resulting in some suitable calculational forms such as homomorphisms and mutumorphisms that enjoy a collection of generic algebraic laws for program manipulation. In this tutorial, we will explain the basic idea of program calculation, demonstrate that many program optimizations and transformations, such as the optimization technique known as loop fusion and the parallelization transformation, can be concisely reformalized in calculational form, and show that program transformation in calculational forms is of higher modularity and more suitable for efficient implementation. 

備考(Remarks) 以下を改訂したもの.
Program Optimizations and Transformations in Calculation Form, Ralf Lämmel, João Saraiva and Joost Visser (Eds.) Summer School on Generative and Transformational Techniques in Software Engineering,
Technical Report TR-CCTC/DI-35, Centro de Ciências e Tecnologias de Computaçã, Departamento Informática, Universidade do Minho, Braga, Portugal, pp. 41-66, July 4-8, 2005.

https://doi.org/10.1007/11877028_5 

2004  決定論的2階パターンとプログラム変換への応用  共著   
コンピュータソフトウェア  , 日本ソフトウェア科学会  , Vol. 21、No. 5  , 71-76  , 2004/09   

概要(Abstract) 2階パターンと2階照合を用いると高度なプログラム変換を記述することができることが知られている.しかし,2階照合はNP困難であるため効率がよい実装が望めない.われわれは,2階パターンの形を制限することで,どのような項とも得られる最汎照合子が高々1つである決定論的なパターンのクラスを定め,またこの照合を得るための効率の良いアルゴリズムを開発した.本稿では,このような決定論的2階パターンのクラスを拡張し,また線形2階パターンが決定論的であるための必要十分条件を与える.このクラスのパターンを用いて幅広いプログラム変換を記述することが可能である. 

備考(Remarks) https://doi.org/10.11309/jssst.21.403 

2004  Deterministic Second-Order Patterns  共著   
Information Processing Letters  , Elsevier  , 89(6)  , 309-314  , 2004/03   

概要(Abstract) Second-order patterns, together with second-order matching, enable concise specification of program transformation, and have been implemented in several program transformation systems. However, second-order matching in general is nondeterministic, and the matching algorithm is so expensive that the matching is NP-complete. It is orthodox to impose constraints on the form of higher-order patterns so as to obtain the desirable matches satisfying certain properties such as decidability and finiteness. In the context of unification, Miller's higher-order patterns have a single most-general unifier. In this paper, we relax the restriction of his patterns without changing determinism in the context of matching instead of unification. As a consequence, our deterministic second-order patterns cover a wide class of useful patterns for program transformation. The time-complexity of our deterministic matching algorithm is linear in the size of a term for a fixed pattern. 

備考(Remarks) https://doi.org/10.1016/j.ipl.2003.12.008 

2003  Deterministic Higher-Order Patterns for Program Transformation  共著   
Logic Based Program Synthesis and Transformation  , Springer  , LNCS 3018  , 128-142  , 2004/08   

概要(Abstract) Higher-order patterns, together with higher-order matching, enable concise specification of program transformation, and have been implemented in several program transformation systems. However,higher-order matching in general is nondeterministic, and the matching algorithm is so expensive that even second-order matching is NP-complete. It is orthodox to impose constraint on the form of patterns to obtain the desirable matches satisfying certain properties such as decidability and finiteness. In the context of unification, Miller’s higher-order patterns have a single most general unifier. We relax the restrictions in his patterns without changing determinism within the context of matching instead of unification. As a consequence, the new class of patterns covers a wide class of useful patterns for program transformation. The time-complexity of the matching algorithm is linear for the size of a term for a fixed pattern. 

備考(Remarks) 以下を改訂したもの.
Deterministic Second-order Patterns in Program Transformation. Maurice Bruynooghe (Ed.), In Preproceedings of the International Symposium on Logic Based Program Synthesis and Transformation (LOPSTR), pp. 165-178, Uppsala, Sweden, August 2003. Technical Report CW 365 at Dept. of Computer Science, K.U.Leuven, Leuven, Belgium. August 25-27, 2003, Uppsala, Sweden.

https://doi.org/10.1007/978-3-540-25938-1_12 

2002  Yicho - A System for Programming Program Calculations  共著   
Mathematical Engineering Technical Reports  , the University of Tokyo  , 7  , 1-17  , 2002/06   

概要(Abstract)  

備考(Remarks)  

2002  変換戦略の記述に基づくプログラムの自動生成システムの実装  共著   
情報処理学会論文誌:トランザクション「プログラミング」  , 情報処理学会  , Vol. 43 No. SIG3  , 62-77  , 2002/03   

概要(Abstract) プログラムの自動生成においては,変換規則の汎用性を高めるために,変換規則と変換規則の適用順序を制御することが重要である.変換規則と変換戦略を記述する理論的枠組みであるCCP(Calculation Carrying Program)についてはすでに報告しているが,筆者らの知る限りにおいては計算機上で稼動されたという報告はなく,CCPによる大きなプログラムの変換についての報告もない.本論文では,CCPの処理系を実装する方法を考察し,計算機上で実際に最大マーク付け問題のプログラムの自動生成について検討を行い,本システムの有効性を示す.

To relax the tension between clarity and efficiency in programming, we have proposed a theoretical framework called calculation carrying program, which accompanies straightforward specification with calculation specifying the intention (strategy) in a highly abstract way. In this paper, we give its first implementation, showing the system which not only automatically derives efficient programs from initial inefficient specification, but also interactively helps programmers to debug derivation steps. Furthermore, to show its power, we demonstrate how to use our system to generate efficient programs for solving maximum marking problems. 

備考(Remarks) 最大マーク付け問題の効率的プログラムの自動生成(情報処理学会第36回プログラミング研究会)を改訂したもの

http://id.nii.ac.jp/1001/00016802/ 

Page: [<<PREV] [1] [NEXT>>]