Updated on 2024/12/11

写真a

 
YOKOYAMA Tetsuo
 
Organization
Faculty of Science and Technology Department of Electronics and Communication Technology Professor
Title
Professor
Main Research Subjects
Reversible computing / Programming
Major field
Computer science
External link

Degree

  • 博士(情報理工学) ( 2006.3   東京大学 )

      More details

    Doctor

    Dissertation name:Deterministic Higher-order Matching for Program Transformation

  • 修士(情報理工学) ( 2003.3   東京大学 )

      More details

    Master

    Dissertation name:Functional Meta-programming for Program Calculation

  • 工学士 ( 2001.3   東京大学 )

      More details

    Bachelor

    Dissertation name:最左最右関係を用いた最長部分列問題の解法の発展とその有効性

Research Interests

  • Reversible computing

  • Reversible Algorithms

  • Programming languages

Research Areas

  • Informatics / Software  / Reversible Computing / Programming Languages

Education

  • The University of Tokyo

    - 2006.3

  • The University of Tokyo

    - 2003.3

  • The University of Tokyo   Faculty of Engineering

    - 2001.3

Research History

  • Nanzan University   Department of Electronics and Communication Technology, Faculty of Science and Technology   Professor

    2021

      More details

    Country:Japan

    researchmap

  • Nanzan University   Department of Software Engineering, Faculty of Science and Engineering   Professor

    2020 - 2021

      More details

    Country:Japan

    researchmap

  • Nanzan University   Department of Software Engineering, Faculty of Science and Engineering   Associate Professor

    2014 - 2019

      More details

    Country:Japan

    researchmap

  • Nanzan University   Department of Software Engineering, Faculty of Information Science and Engineering   Associate Professor

    2011 - 2014

      More details

    Country:Japan

    researchmap

  • Nanzan University   Department of Software Engineering, Faculty of Information Science and Engineering   Lecturer

    2009 - 2011

      More details

    Country:Japan

    researchmap

Professional Memberships

  • Association for Computing Machinery (ACM)

    2008.10

      More details

  • ACM 会員 2008.10–現在に至る

  • 情報処理学会会員 2011.4–現在に至る

Committee Memberships

  •   16h Conference on Reversible Computation, program committee member  

    2023.10 - 2024.7   

      More details

    Committee type:Academic society

    researchmap

  •   15th Conference on Reversible Computation, program committee member  

    2022.10 - 2023.7   

      More details

    Committee type:Academic society

    https://reversible-computation-2023.github.io/site/index.html

    researchmap

  • 13th International Conference on Reversible Computation (RC 2021)   Program co-chair  

    2020.9 - 2021.7   

      More details

    Committee type:Academic society

    https://reversible-computation-2021.github.io/

    researchmap

  • 情報処理学会   ソフトウェア工学研究会(IPSJ SIGSE) 運営委員  

    2012.4 - 2016.3   

      More details

    Committee type:Academic society

    researchmap

  • The SETO consortium of universities   Vice President  

    2012.4 - 2013.3   

      More details

    Committee type:Other

    researchmap

  • 4th Workshop on Reversible Computation (RC 2012)   Program co-chair  

    2011.9 - 2012.9   

      More details

    Committee type:Academic society

    http://www.reversible-computation.org/2012/

    researchmap

  • 情報処理学会   ESSロボットチャレンジ2011 運営委員長  

    2011   

      More details

    Committee type:Academic society

    researchmap

  • 情報処理学会   プログラミング研究会(IPSJ SIGPRO) 運営委員  

    2009.4 - 2013.3   

      More details

    Committee type:Academic society

    researchmap

  •   情報処理学会会員 2011.4–現在に至る  

       

  •   ACM 会員 2008.10–現在に至る  

       

▼display all

Papers

  • Reversible computing from a programming language perspective

    Theoretical Computer Science   953   1 - 29   2023.4

     More details

    Publisher:Elsevier  

    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.

  • Reversible Programming: A Case Study of Two String-Matching Algorithms

    Electronic Proceedings in Theoretical Computer Science   373   1 - 13   2022.11

     More details

    Publisher:Open Publishing Association  

    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.

  • Making Programs Reversible with Minimal Extra Data

    New Generation Computing   40   467 - 480   2022.7

     More details

    Publisher:Springer  

    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.

  • From Reversible Programming Languages to Reversible Metalanguages

    Theoretical Computer Science   Vol.920   46 - 63   2022.6

     More details

    Publisher:Elsevier  

    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.

  • 素朴な方法とRabin-Karp法による可逆文字列照合アルゴリズム

    南山大学紀要アカデミア理工学編   22   124 - 132   2022.3

     More details

    Publisher:南山大学  

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

  • Complete Transition Diagrams of Generic Hamiltonian Flows with a Few Heteroclinic Orbits

    Discrete Mathematics, Algorithms and Applications   Vol. 13, No. 02   2150023   2020.9

     More details

    Publisher:World Scientific  

    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.

  • Reversible Programs Have Reversible Semantics

    In: Sekerinski E. et al. (eds) Formal Methods. FM 2019 International Workshops (FM 2019), Lecture Notes in Computer Science   Vol.12233   413 - 427   2020.8

     More details

    Publisher:Springer-Verlag  

    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.

  • 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   1 - 5   2019.10

     More details

    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.

  • Constructing a Binary Tree from its Traversals by Reversible Recursion and Iteration

    Information Processing Letters   147   32 - 37   2019.7

     More details

    Publisher:Elsevier  

    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.

  • 多重連結領域上の安定非圧縮流のプリミティブな局所構造変換

    電子情報通信学会和文論文誌D   Vol.J102-D, No.3   235 - 238   2019.3

     More details

    Publisher:電子情報通信学会  

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

  • 二分木の辞書順のランク計算の効率的なクリーン可逆シミュレーション

    電子情報通信学会和文論文誌D   Vol.J102-D, No.3   130 - 140   2019.3

     More details

    Publisher:電子情報通信学会  

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

  • 可逆プログラミング言語R-WHILEの可逆チューリング完全性

    電子情報通信学会和文論文誌D   J101-D, No.9   1372 - 1375   2018.9

     More details

    Publisher:電子情報通信学会  

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

  • ハミルトン曲面流に対応する流れの向きを考慮した極大語の列挙アルゴリズム

    電子情報通信学会論文誌 D   Vol.J101-D, No.8   1220 - 1222   2018.8

     More details

    Publisher:電子情報通信学会  

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

  • Clean Reversible Simulation of Ranking Binary Trees

    Reversibility and Universality   Vol.30   243 - 267   2018.3

     More details

    Publisher:Springer-Verlag  

    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.

  • 可逆ビンソート

    電子情報通信学会論文誌 D   Vol.J101-D, No.5   791 - 793   2018.1

     More details

    Publisher:電子情報通信学会  

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

  • 可逆プログラムのための償却定数時間かつ定数ゴミ使用量のメモ化

    電子情報通信学会和文論文誌D   Vol.J100-D, No.10   895 - 896   2017.10

     More details

    Publisher:電子情報通信学会  

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

  • ハミルトン曲面流に対応する語の列挙アルゴリズム

    電子情報通信学会和文論文誌D   Vol.J100-D, No.10   892 - 894   2017.10

     More details

    Publisher:電子情報通信学会  

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

  • A Minimalist's Reversible While Language

    IEICE on Information and Systems   Vol.E100-D ( No.5 )   1026 - 1034   2017.5

     More details

    Publisher:Institute of Electronics, Information and Communication Engineers  

    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.

  • A Linear-Time Self-Interpreter of a Reversible Imperative Language

    Computer Software   3   108 - 128   2016.8

     More details

    Publisher:Japan Society for Software Science and Technology (JSSST)  

    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.

  • Fundamentals of reversible flowchart languages

    Theoretical Computer Science   611   87 - 115   2016.1

     More details

    Publisher:Elsevier  

    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.

  • Programming Techniques for Reversible Comparison Sorts

    Lecture Notes in Computer Science   9458   407 - 426   2015.12

     More details

    Publisher:Springer-Verlag  

    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.

  • Designing Garbage-Free Reversible Implementations of the Integer Cosine Transform

    ACM Journal on Emerging Technologies in Computing Systems   11   1 - 15   2014.11

     More details

    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.

  • 可逆プログラミング言語の引数渡し機構の拡張

    情報処理学会論文誌:プログラミング   7   21 - 36   2014.8

     More details

    Publisher:情報処理学会  

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

  • Minimizing Garbage Size by Generating Reversible Simulations

    Reversibility, cellular automata, and unconventional computation. Proceedings.   379 - 387   2012.12

     More details

    Publisher:IEEE Computer Society  

    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.

  • Optimizing Input-Erasing Clean Reversible Simulation for Injective Functions

    Multiple-Valued Logic and Soft Computing   Vol.18 ( no.1 )   5 - 24   2012.1

     More details

    Publisher:Old City Publishing  

    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.

  • Towards a Reversible Functional Language

    Lecture Notes in Computer Science   Vol. 7165   14 - 29   2012

     More details

    Publisher:Springer-Verlag  

    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.

  • Static Task Scheduling Algorithms Based on Greedy Heuristics for Battery-Powered DVS Systems

    IEICE Trans. on Information and Systems   E93-D   2737 - 2746   2010.10

     More details

    Publisher:The Institute of Electronics, Information and Communication Engineers  

    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.

  • Reversible Computation and Reversible Programming Languages

    Electronic Notes in Theoretical Computer Science   253(6)   71 - 81   2010.3

     More details

    Publisher:Elsevier  

  • Practical Energy-Aware Scheduling for Real-Time Multiprocessor Systems

    15th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications   2009.8

     More details

    Publisher:IEEE Press  

    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.

  • Heuristics for Static Voltage Scheduling Algorithms on Battery-Powered DVS Systems

    2009 International Conference on Embedded Software and Systems   265 - 272   2009.5

     More details

    Publisher:IEEE Computer Society  

    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.

  • 動的電圧制御システムにおける評価戦略選択に基づく高効率消費エネルギー関数型プログラミング

    情報処理学会論文誌:トランザクション「プログラミング」   Vol.2, No.2(PRO41)   54 - 69   2009.3

     More details

    Publisher:情報処理学会  

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

  • 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)   727 - 732   2009.1

     More details

    Publisher:IEEE Press  

    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.

  • A Generalized Framework for Energy Savings in Real-Time Multiprocessor Systems

    Proceedings of 2008 International SoC Design Conference   727 - 732   2009.1

     More details

    Publisher:IEEE  

    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.

  • Reversible Flowchart Languages and the Structured Reversible Program Theorem

    Automata, Languages and Programming   LNCS 5126   258 - 270   2008.8

     More details

    Publisher:Springer  

    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.

  • Principles of a reversible programming languages

    CF '08: Proceedings of the 5th conference on Computing frontiers   43 - 54   2008.5

     More details

    Publisher:ACM Press  

    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.

  • Reversible Machine Code and Its Abstract Processor Architecture

    Computer Science -- Theory and Applications   LNCS 4649   56 - 69   2007.9

     More details

    Publisher:Springer  

    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.

  • Program Optimizations and Transformations in Calculation Form

    Generative and Transformational Techniques in Software Engineering   LNCS 4143   144 - 168   2006.11

     More details

    Publisher:Springer  

    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.

  • 決定論的2階パターンとプログラム変換への応用

    コンピュータソフトウェア   Vol. 21、No. 5   71 - 76   2004.9

     More details

    Publisher:日本ソフトウェア科学会  

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

  • Deterministic Higher-Order Patterns for Program Transformation

    Logic Based Program Synthesis and Transformation   LNCS 3018   128 - 142   2004.8

     More details

    Publisher:Springer  

    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.

  • Deterministic Second-Order Patterns

    Information Processing Letters   89(6)   309 - 314   2004.3

     More details

    Publisher:Elsevier  

    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.

  • Yicho - A System for Programming Program Calculations

    Mathematical Engineering Technical Reports   7   1 - 17   2002.6

     More details

    Publisher:the University of Tokyo  

  • 変換戦略の記述に基づくプログラムの自動生成システムの実装

    情報処理学会論文誌:トランザクション「プログラミング」   Vol. 43 No. SIG3   62 - 77   2002.3

     More details

    Publisher:情報処理学会  

    プログラムの自動生成においては,変換規則の汎用性を高めるために,変換規則と変換規則の適用順序を制御することが重要である.変換規則と変換戦略を記述する理論的枠組みである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.

▼display all

MISC

  • 日本ソフトウェア科学会第39回大会報告

    コンピュータ ソフトウェア   40 巻 2 号   p. 2_61 - 2_72   2023.4

  • プログラミング言語 R-WHILE の処理系およびオンラインインターフェース

    2015

  • プログラミング言語 JANUS のオンラインインターフェースと整列プログラム

    2015

  • エンドユーザがプログラム可能な Wiki エンジン

    情報処理学会研究報告   2011-5-(3)   6 p.   2012.3

     More details

    Publisher:一般社団法人情報処理学会  

    Wiki は,誰でも自由にウェブブラウザ上でウェブサイトを書き換えることができる手軽さから広く活用 されてきている.Wiki 文書は,HTTP サーバ上では Wiki 記法で記述されており,ウェブブラウザなどか らの要求があるとハイパーテキストに変換されて,エンドユーザから閲覧される.さらに,エンドユーザ は閲覧時にフォームなどから Wiki 記法で Wiki 文書を自由に編集することができる.しかし,Wiki エン ジンが稼働するサーバ上で実行可能であるソースコードは,通常,Wiki 文書には記述できない.この理由 の 1 つは,管理者の意図しない悪意のある動作をするソースコードをサーバ上で実行できないようにする というセキュリティ上の制約である.我々は潜在的に危険をともなう IO アクションを分離して管理する ことにした.プログラミング言語 Haskell を Wiki エンジンの実装言語として選択して,IO モナド内でエ ンドユーザの記述した任意のコードを実行させないことで,管理者の意図しない悪意のある動作を防ぐと いうアプローチをとった.プログラマブルな Wiki ページは,プログラミング言語レベルのモジュールに 対応して,互いに参照し合うことができる.技術上の関心から極力 Wiki エンジンの深い部分まで,その Wiki 上でプログラミングができるように設計を試みた.プログラムの入力は,通常の Wiki 上のフォーム から可能であり,エンドユーザはクライアントに特別な環境を準備しなくても,その Wiki エンジンの開 発にリアルタイムに協調的に携わることが可能である.Wiki 文書において記述された副作用のある任意の アクションが実行されないことは Haskell のクラスを用いて静的型検査によって保証される.

  • 電池駆動システムにおけるプログラミング言語が与える消費エネルギーへの影響

    情報処理学会研究報告   Vol.2011-EMB-21(4)   5 p.   2011.3

     More details

    Publisher:一般社団法人情報処理学会  

    プログラミング言語の選択による情報通信端末の消費エネルギーの変化を定量的に評価する試みについて報告する.本稿では,アプリケーションの実装プログラミング言語ごとの消費電力への影響を,実情報端末において電力計で実測することにより確かめた.その結果,インタープリタ言語では消費電力の大きな揺れが観測されたが,コンパイル言語と同様の平均消費電力を示し,電池に与える影響の変化は限られた.われわれが実験を行った範囲では,プログラミング言語およびアプリケーションを変化させたときの1秒ごとの平均消費電力の変化は高々20%未満であり,その影響は軽微であることが確かめられた.われわれの知る範囲では,プログラミング言語ごとに消費電力/消費エネルギーの比較を行った報告は限られており,本研究で得られた基礎データは低消費エネルギーアルゴリズムや低消費エネルギープログラミングの研究を行う上での参考データとして貴重である.The trial of finding the programming language effects of energy consumption on a battery-powered system is presented. By means of a digital power meter, we measured the energy consumption of an information device on which different applications implemented in various programming languages run. While the power consumption fluctuated substantially when an interpretive language run on the device, the average power consumption of an interpretive language was not much different from that of a compiler language. The experimental results showed that the effects of what programming languages to use were limited; The change of the power consumption was up to approximately 20%. To the best of our knowledge the report on power/energy consumption of each programming language implementation has been limited and the result data is useful for studying the theoretical model of energy consumption and exploring energy efficient algorithms and programming.

  • Optimization of Input-Erasing Clean Reversible Simulation for Injective Functions

    Preliminary Proceedings of Reversible Computation   17 - 24   2010.7

  • AndroidプラットフォームにおけるDalvikバイトコードのCPU負荷量の解析

    組込み技術とネットワークに関するワークショップ   2010.3

     More details

    本稿では,ハードウェア独立な Dalvik バイトコードトレースから得られる情報を活用し,Android プラットフォームにおける CPU 負荷量の解析を行う.各 Dalvik バイトコードの CPU 負荷量を正確に精度良く解析するため,マイクロベンチマークの生成方法および実施方法を提示する.マイクロベンチマークの CPU 負荷量は,バイトコードの種類により最大 67 倍,引数のレジスタ値により最大 10 倍の差が存在した.したがって,アプリケーションの CPU 負荷量の正確なモデル化を行うためには,バイトコードの発行数のみならず,種類・引数を考慮する必要があることが明らかになった.以上により確立された解析手法を用いて,アプリケーション開発者に改善を提案するケーススタディを行った.実際に CPU 負荷量の削減方法を示唆できたことから,本解析手法の有効性が示された.We present a CPU load analysis method on Android platform by using hardware-independent trace information of Dalvik bytecodes. For the purpose of analysis, methods for generating and executing micro-benchmarks which issue the sequence of each Dalvik bytecode are introduced. The experimental results showed that the CPU load of micro-benchmarks was largely affected by the types arguments of bytecodes. Specifically, the variation of CPU load was up to 67 times over the types and 10 times over the arguments of given bytecodes. Therefore, not only the number of issued bytecode but also the types of bytecode and given arguments should be considered to construct an accurate CPU load model. Through a case study, the effectiveness of our approach for reducing CPU load has been validated.

  • 消費エネルギーを意識した可逆圧縮データ受信

    情報処理学会   Vol.2011-EMB-20 No.1   1 - 6   2010

     More details

    情報通信端末において,データ受信と可逆データ解凍を逐次的に行うよりも,パイプライン化した方が消費エネルギーの最適化が実現されるケースが存在することが明らかになった.パイプライン化によって,マルチパスの圧縮コマンド bunzip2 では消費エネルギーは悪化してしまったが,ストリーム処理が可能な LZ(Lempel-Ziv) 系のアルゴリズムの場合,顕著なエネルギー最適化が達成された.データ受信が安定的に行える環境下で,情報通信端末の消費電力を電力測定器によって計測したところ,逐次処理と比較してパイプライン処理は最大 22.8% の消費エネルギー削減が達成された.It has been shown that there is a certain case in which the pipeline processing is more energy efficient than the sequential processing. Because of pipelining processes, LZ (Lempel-Ziv) family algorithms achieved significant energy savings while multi-path compression command bunzip2 suffered energy degradation. The experimentation has been performed on a commercial data transmission device connected to a digital power meter under the stable data transmission. A pipelining processing outperformed a sequential processing by 22.8% in terms of energy consumption.

  • Reversible Computation and Reversible Programming Languages

    Dagstuhl Seminar   2010

  • Modeling Power Consumption of Applications in Wireless Communication Devices Using OS Level Profiles

    Proc. International SoC Design Conference   253 - 256   2009.11

     More details

    Publisher:IEEE  

    We propose a novel system level power estimation method for wireless communication devices. The method estimates the power consumption of a processor and external devices by only using OS level profile information (i.e., the system call information), and is applicable to both off-line and online power optimizations. Evaluations on a commercial wireless communication device showed that the method achieves an estimation error of less than 10%.

  • Functoriality in Reversible Circuits (work in progress)

    Preliminary Proceedings of Reversible Computation   68 - 72   2009.3

  • Reversible computation and reversible programming languages

    Preliminary Proceedings of Reversible Computation   17   2009.3

  • Analyzing and Optimizing Energy Efficiency of Algorithms on DVS Systems: A First Step towards Algorithmic Energy Minimization

    Proc. the Asia and South Pacific Design Automation Conference   727 - 732   2009.1

  • Heuristics for Static Voltage Scheduling Algorithms on Battery-Powered DVS Systems

    Proc. the 6th International Conference on Embedded Software and Systems   265 - 272   2009

  • Practical Energy-Aware Scheduling for Real-Time Multiprocessor Systems

    Proc. the International Conference on Embedded and Real-Time Computing Systems and Applications   383 - 392   2009

  • OSレベルのプロファイリング情報を用いた携帯端末アプリケーションの消費電力モデリング

    電子通信情報学会技術研究報告   Vol.108 No.478   49 - 54   2009

     More details

    Publisher:電子通信情報学会  

    通信端末のシステムレベルの消費電力予測を行う手法を提案する.本手法はプロセッサと周辺デバイスの消費電力を OS レベルのプロファイル情報のみを用いて予測するため,オフラインとオンラインの両者に適応可能である.商用の通信端末において通信を伴うアプリケーションを実行した評価では,本手法による予測消費電力の実測値に対するフィッティング誤差は 10% 以内に収まった.We propose a novel system level power estimation method for wireless communication devices. The method estimates the power consumption of processors and external devices by only using OS level profile information provided by system calls. The proposed method is applicable to on-line power estimation as well as off-line power estimation. Evaluations on a commercial wireless communication device showed that the method achieved an estimation error of less than 10 %.

  • Practical Energy-Aware Rate Monotonic Task Scheduling for DVS-Enabled Multiprocessor

    組込みシステムシンポジウム2008論文集   no. 9   23 - 30   2008.10

     More details

    Publisher:情報処理学会  

  • DVSシステムにおけるアルゴリズムレベルのエネルギー消費の解析と最適化

    組込みシステムシンポジウム2008論文集   no. 9   31 - 40   2008.10

     More details

    Publisher:情報処理学会  

  • Principles of a Reversible Programming Language

    Proc. the 2008 Computing Frontiers Conference   43 - 54   2008

     More details

    Publisher:ACM Press  

  • A Generalized Framework for Energy Savings in Real-Time Multiprocessor Systems

    Proc. the International SoC Design Conference   44 - 49   2008

  • 単射関数のクリーン可逆シミュレーション(Working Paper)

    日本ソフトウェア科学会第25回大会論文集   4C-1   1 - 9   2008

     More details

    Publisher:日本ソフトウェア科学会  

  • Reversible Structured Program Theorem

    Proc. The 18th Nordic Workshop on Programming Theory   93 - 95   2006

  • Calculation Rules for Warming-up in Fusion Transformation

    Proc. The Sixth Symposium on Trends in Functional Programming   399 - 412   2005

  • 決定論的2階パタンとプログラム変換への応用

    日本ソフトウェア科学会第20回記念大会論文集   16 - 19   2003

  • Yicho --- A System for Programming Program Calculations

    Proc. The Third Asian Workshop on Programming Languages and Systems   366 - 382   2002

  • 最大マーク付け問題の効率的プログラムの自動生成

    情報処理学会第36回プログラミング研究会   22 - 23   2001

     More details

    Publisher:情報処理学会  

▼display all

Presentations

  • Injectivity of a 2D Rabin-Karp String Matching Algorithm

    Yuki Yamahata, Souta Takase, Tetsuo Yokoyama

    Workshop on Informatics 2024  2024.12 

     More details

    Event date: 2024.12

    Language:Japanese   Presentation type:Oral presentation (general)  

    Venue:Nagoya   Country:Japan  

    researchmap

  • A Metric for Streamline Topology

    Toya Makino, Tetsuo Yokoyama

    Workshop on Informatics 2024  2024.12 

     More details

    Event date: 2024.12

    Language:Japanese   Presentation type:Oral presentation (general)  

    Venue:Nagoya   Country:Japan  

    researchmap

  • 可逆ハフマン符号化の設計および解析に関する研究

    第21回情報学ワークショップ  2023.12  静岡大学情報学部,第21回情報学ワークショップ実行委員会

  • 単射ハフマン木構築法の可逆的実現

    令和5年度 電気・電子・情報関係学会東海支部連合大会  2023.8  電気学会東海支部、電子情報通信学会東海支部、 情報処理学会東海支部、照明学会東海支部、 映像情報メディア学会東海支部、日本音響学会東海支部、 IEEE名古屋支部

  • 構造化可逆言語の拡張とその可逆性

    令和4年度 電気・電子・情報関係学会東海支部連合大会  2022.8  電気・電子・情報関係学会

     More details

    水野幹大,横山哲郎

  • 可逆ハフマン符号化のゴミ出力量の最適化

    電子情報通信学会2022年総合大会  2022.3  電子情報通信学会

     More details

    消費エネルギー最適化や量子コンピュータの実現に用いられる可逆計算法が研究されている.可逆計算法は計算の全過程の単射化により実現される.ハフマン符号化法と漸近的に同じ時間及び空間計算量でゴミ出力量Θ(n lg n) の可逆アルゴリズムが報告されている.ゴミ出力は,計算を単射化するために出力される情報であり,問題の本質的な解決に関わらない.本稿では,整列された頻度表を入力とするハフマン木構築法を基礎とする,ゴミ出力がなく1パスの可逆ハフマン木構築法を提案する.

  • 木構造の可逆深さ優先探索アルゴリズム

    令和2年度電気・電子・情報関係学会東海支部連合大会  2020.9  電気学会東海支部,電子情報通信学会東海支部,情報処理学会東海支部,照明学会東海支部,映像情報メディア学会東海支部,日本音響学会東海支部,IEEE名古屋支部

     More details

    線形時間かつ入力以外の空間使用量のオーバーヘッドが定数に収まるような木構造に対する可逆優先探索法を提案した。

  • Reversible Programs Have Reversible Semantics

    Reversibility in Programming, Languages, and Automata  2019.10 

     More details

    During the past decade reversible programming languages have been formalized using various established semantics frameworks. Common to these semantics is that they are weak at specifying the distinct properties of reversible languages at the metalevel, even including the central question whether the defined language is reversible. In this paper, we build upon a metalanguage foundation for reversible languages 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. This leads to 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 discuss further applications and directions for reversible semantics.

  • 量子桁上げ伝播加算器回路の深さの効率化について

    令和元年度 電気・電子・情報関係学会 東海支部連合大会  2019.9 

  • LMSを用いた理系文書作成能力向上のためのPDCAサイクル構築の試み

    2019年度ICT利用による教育改善研究発表会  2019.8  公益社団法人 私立大学情報教育教会,ICT利用教育改善発表会運営委員会

     More details

    理工系学部の学生に求められる理系文章作成能力の向上を目的として2017年度に取り組んだピアフィードバックの多様化に加えて,実習科目における課題解決の検討,レポート作成,相互評価,自己評価,次回に向けての改善の手順をPDCAサイクルとして構築する試みに取り組んだ.他者のレポートを閲覧・評価することで評価者としての視点を得ることができ,その後に他者からの評価を確認して自分のレポートを見直し自己評価することでレポートの問題点や改善点に気付き,次回のレポート作成に繋げることができる環境を整えた.

  • あるクラフトゲームの計算モデルについて

    情報処理学会 第81回全国大会  2019.3  情報処理学会

     More details

    Minecraftは,立方体のマス目に区切られた3次元空間にブロックを設置したり破壊したりしてものづくりを楽しむゲームである.本稿では,Minecraftの計算モデルの計算能力を調べる.具体的には,Minecraftの世界をセル・オートマトンとして抽象化し,論理ゲートを模倣するブロックの組合せをいくつか示し,論理ゲートの集合が完全系になる条件を述べる.また,計算万能であることが知られている機械を構成するための条件とその構成法を示す.

  • 円板上の非圧縮流の反転の解析

    情報処理学会 第81回全国大会  2019.3  情報処理学会

     More details

    円板上の非圧縮流は,血管などのパイプ流や医療機器における軸対称流の近似となっており,医学分野において重要な解析対象である.最外境界部をもつ単連結領域上の非圧縮流の反転をトポロジーにのみ着目することで解析を行う.トポロジーにのみ着目することで少量の計算資源でそのダイナミクスの解析が可能である一方で,流体の特性をどの程度表せるかは未知数である.本研究では,形式言語理論で広く使われている木文法の拡張を用いて,木表現で流線図のトポロジーを表現し,木表現の列で流線図の時間発展を表現する.本アプローチによって,ランダム外力駆動の2次元反転流の数値流体計算における反転現象をどの程度解析できるかを評価する.

  • Reversible Programming Languages and Reversible Programming

    SFDI2019: Second Workshop on Software Foundations for Data Interoperability  2019.2 

  • 理系文章作成能力の向上を目的としたピアフィードバック多様化

    ICT利用による教育改善研究発表会  2018.8  公益社団法人 私立大学情報教育協会

     More details

    理工系学部の学生に求められる理系文書作成能力を向上させ,その技術を定着させるための手法として実習科目におけるレポート作成,成果発表,ピアレビュー等のピアフィードバック(PF)の多様化に取り組んだ.PFの多様化には資料提供やレポート提出に使用してきたLMSを用いることで学生,教員の負担を増すことなく効率的な導入を実現した.アンケート調査やピアレビューの結果から本実践の有効性を確認した.

  • 可逆プログラミング言語R-WHILEによる万能可逆チューリング機械の構成

    情報処理学会第79回全国大会  2017.3  情報処理学会

     More details

    可逆プログラミング言語R-WHILEの計算モデルは,万能可逆チューリング機械と同じ計算能力があるとされている.しかし,筆者の知る限りにおいて,その具体的な証明についてはこれまで報告が無かった.本稿では任意の可逆チューリング機械を,意味が同じR-WHILEプログラムに変換できることを示す.このことにより,可逆万能チューリング機械のR-WHILEプログラムが構成できることを示す.

  • Clean Reversible Simulation of Ranking Binary Trees

    The 19th JSSST Workshop on Programming and Programming Languages  2017.3  JSSST

     More details

    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 them can be made to be a reversible simulation by saving all the data and control information otherwise lost, and each pair of ranking and unranking reversible programs can be combined to realize a clean reversible simulation. 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 the 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. All the reversible programs presented in this paper can be run on an interpreter of the reversible programming language Janus.

  • 二分木のランク計算のクリーン可逆シミュレーション

    日本ソフトウェア科学会第33回大会  2016.9  日本ソフトウェア科学会

     More details

    可逆計算システムで用いる可逆アルゴリズムのひとつとして,二分木の列挙やランダム生成に有用な二分木のランク・アンランク計算のクリーン可逆シミュレーションを提案する.二分木のランク計算やその逆計算を行う非可逆アルゴリズムは1970年代から研究が行われてきており,これらの成果を用いてランク計算の関数とその逆関数のそれぞれの可逆シミュレーションを組み合わせてクリーン可逆シミュレーションを行うことはできる.しかし,こうした可逆シミュレーションでは,複数回のパスおよびに実行時間に比例した大きさのメモリが必要である.これに対してわれわれの可逆シミュレーションは,1パスで,漸近的な実行時間とメモリ使用量が元のアルゴリズムと同じである.本稿中の可逆プログラムは,可逆言語Janusの処理系で動作を確認できる.

  • On the Theory of Reversible Flowchart Languages

    Quantum Programming and Circuits Workshop  2015.6  University of Waterloo

     More details

    Flowcharts are a fundamental tool used pervasively in computer science. In this talk, we survey the fundamental properties of reversible flowcharts, which are classical flowcharts with restrictions on join points and atomic step operators. Reversible flowcharts are as expressive as any reversible computation models such as reversible Turing machines and are able to simulate any irreversible computation. The theoretical basis of structured programming in high-level reversible languages is provided by a reversible version of the Structured Program Theorem. We illustrate the design of high-level and low-level reversible programming languages and their translators, based on the reversible flowchart model. We highlight their features by demonstrating a reversible version of Dijkstra's permutation-to-code algorithm.

  • A Linear-Time Reversible Self-Interpreter

    第17回プログラミングおよびプログラミング言語ワークショップ  2015.3  日本ソフトウェア科学会

     More details

    This paper explores a novel combination of language features in re- versible programming languages. The two imperative languages that we introduce have reversible structured control flow operators and symbolic tree-structured data (S-expressions). The latter allows to model many familiar data structures in an easy way, which is more difficult in existing reversible imperative languages, which so far only provide integers, stacks and arrays as data types. Most importantly, it is shown for the first time in a most expressive reversible imperative language that tree-structured data enable efficient self-interpretation in the sense of Jones. We prove that the languages are r-Turing complete (most expressive), i.e. they are computationally as powerful as any reversible language can get, and cleanly reversible, i.e. programs can run backward without first tracing a forward computation. The languages presented here are two new versatile instances of our structured reversible flowchart paradigm, and intended to serve as a basis for future studies of reversible programming languages, transformation and algorithms.

  • 可逆プログラミング言語の引数渡し機構の拡張

    第98回プログラミング研究会  2014.3  情報処理学会

     More details

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

  • リストの可逆分割アルゴリズムを利用したゴミ情報が最適な可逆クイック整列法の生成

    第76回全国大会  2014.3  情報処理学会

     More details

    本論文では文献[1] におけるゴミ情報の生成・マージの手法を応用し,より一般性の高い手法を提案する.文献[1] では,ゴミ情報量が最適なリストの可逆分割アルゴリズムを提案している.ここではさらに提案したアルゴリズムを利用してクイックソートを生成し,分割の際のゴミ情報量が最適であること,再帰呼び出しの際にゴミ情報の最適な伝播が実現できていることの2 点を示している.しかし,この手法はクイックソートに特有のサブプロシージャに対して最適なゴミ情報の生成を保証することにより実現されており,この手法をそのまま他のアルゴリズムに応用することが難しい.そこで,本研究ではアルゴリズムのより小さな構成要素に最適なゴミ情報を生成させ,それらの最適性を保ったままより大きな構成要素へとマージを行う手法を提案し,既存の手法の応用性を高める.なお,ここではゴミ情報とは非可逆アルゴリズムを可逆化する際に記録する必要があり,可逆化する前の非可逆アルゴリズムにおいては記録する必要のない情報を表す.

  • 引数渡し機構をもつ可逆プログラミング言語の可逆性

    第76回全国大会  2014.3  情報処理学会

     More details

    計算過程が可逆とは,任意の状態でその直前と直後の状態が存在すればそれぞれ必ず一意に定まることをいう.可逆プログラミング言語とは,そのプログラムの実行過程が必ず可逆になるような言語設計がなされているプログラミング言語であり,可逆論理回路の設計[1] やプログラミング言語理論の研究対象[2] として使われている.そうした言語のひとつであるJanusでは,構文規則や意味規則における制限によって可逆性を実現しており,その結果,可逆プログラムでのみ可能な逆実行をするための機構を備えている.現在のJanus[3] は,引数機構が未整備のために可読性や簡潔性が欠如していると考えられる点がある.原因のひとつとして,状態モデルによって識別子のみを渡すことのできる引数渡し機構が用いられていることが挙げられる.このため,識別子以外の式の評価値や参照を渡すことが困難であった.そこで,我々は左辺値を意味領域に含むことのできる環境・記憶域モデルを採用し,可逆性をもつ値渡しと参照渡しの機構を実現する.Janus では,複合代入演算の左辺に出現した識別子が右辺に出現してはならないという制約があるが,この拡張により,プログラム全域のプログラム解析をしなくてもその複合代入演算文の実行時にその文の情報だけからこの制約の確認ができるようになる.また,引数を伴うプロシージャ呼出しが,より読みやすく簡潔に記述できるようになる.本稿では,引数渡し機構を拡張して表現力の増したJanus が可逆性をもつことの説明の概略を示す.

  • A High-Level Reversible Programming Language

    Dagstuhl Seminar on Design of Reversible and Quantum Circuits  2011.12 

▼display all

Awards

  • 高橋奨励賞

    2010.3   日本ソフトウェア科学会  

  • The Best Paper Award

    2008.11   LG Electronics   2008年に発表した論文

  • LG Electronics Co., Ltd. Best Paper Award

    2008   International SoC Design Conference 2008  

     More details

Research Projects

  • 最小の余剰データをもつ効率的プログラム可逆化に関する研究

    2022

    日本学術振興会  科学研究費補助金 基盤研究(C)  基盤研究(C)

      More details

    Grant type:Competitive

    Grant amount:\2080000

  • 効率性と拡張性をもつ可逆アルゴリズム族の系統的な設計と解析

    2018

    日本学術振興会  科学研究費補助金 基盤研究(C)  基盤研究(C)

      More details

    Authorship:Principal investigator  Grant type:Competitive

    Grant amount:\3510000

    https://kaken.nii.ac.jp/ja/grant/KAKENHI-PROJECT-18K11250/

  • 関数型の視点からの効率的可逆シミュレーションおよび可逆プログラミング方法論の拡張

    2013

    独立行政法人 日本学術振興会  科学研究費補助金 若手研究(B)  若手研究(B)

      More details

    Grant type:Competitive

    Grant amount:\4030000

  • 可逆計算と双方向変換の学術的研究フロンティアの探究

    2011.4 - 2012.3

    国立情報学研究所  共同研究一般研究公募型 

      More details

    Authorship:Principal investigator 

    researchmap

  • Design and Implementation of Reversible Computing Systems andReversible Programming Languages

    Grant number:22700042  2010 - 2012

    Japan Society for the Promotion of Science  Grants-in-Aid for Scientific Research Grant-in-Aid for Young Scientists (B)  Grant-in-Aid for Young Scientists (B)

    YOKOYAMA Tetsuo

      More details

    Grant amount:\2730000 ( Direct Cost: \2100000 、 Indirect Cost:\630000 )

    We conducted a research for developing the fundamental theory on reversible computing systems, finding the principles on high-level programming languages, and developing the methodology for manipulating such languages. We proposed an optimization of Bennett's reversible simulation that requires half of the computational steps for a class of injective programs such as some lossless encoders and decoders. The proposed reversible simulationwas demonstrated on a high-level programming language that we formalized.

    researchmap

  • 可逆計算系と可逆プログラミング言語の設計と実現に関する研究

    2010

    独立行政法人 日本学術振興会  科学研究費補助金 若手研究(B)  若手研究(B)

      More details

    Authorship:Principal investigator  Grant type:Competitive

    Grant amount:\2730000

  • プログラム運算の記述言語の設計及びその実現に関する研究

    2004

    独立行政法人 日本学術振興会  科学研究費補助金 特別研究員奨励費  特別研究員奨励費

      More details

    Authorship:Principal investigator  Grant type:Competitive

  • プログラミングの方法論

      More details

    計算機プログラムおよび計算機アーキテクチャを数理的にとらえて、プログラミングの方法論にあらたな視点を与える。

  • 効率的プログラム可逆化に関する研究

      More details

    プログラムの実行による効果を元に戻すためには、実行履歴などの余剰データを保持するようなプログラム可逆化が有効である。この余剰データを最小化する具体的な構成方法を精査する。また、基本的なアルゴリズムに対して、この余剰データを最小化するような効率的プログラム可逆化を考案して評価する。

▼display all

Other

  • 令和6年度数学科高大連携研究会

    2024.6

     More details

    愛知県高等学校数学研究会が例年開催している数学科高大連携研究会に講師として参加した。
    http://www.tcp-ip.or.jp/~aisuu/

  • 令和5年度数学科高大連携研究会

    2023.6

     More details

    愛知県高等学校数学研究会が例年開催している数学科高大連携研究会に講師として参加した。
    http://www.tcp-ip.or.jp/~aisuu/

Teaching Experience

  • Information Systems

    2025.11 Institution:Nanzan University

     More details

    Level:Postgraduate  Country:Japan

    researchmap

  • Project-based learning

    2023.6 Institution:Nanzan University

     More details

    Level:Undergraduate (specialized)  Country:Japan

    researchmap

  • Network programming

    2022.9 Institution:Nanzan University

     More details

  • Advanced Programming

    2018.11 Institution:Nanzan University

     More details

  • Basic programming

    2015 Institution:Nanzan University

     More details

  • Informatics

    2013 Institution:Nanzan University

     More details

    Level:Graduate (liberal arts)  Country:Japan

    researchmap

  • ソフトウェア工学特別講義

    2020 Institution:南山大学

     More details

    Level:Undergraduate (specialized)  Country:Japan

    2020年 https://porta.nanzan-u.ac.jp/syllabus/html/2020_40008922.html

    researchmap

  • Special Topics in Software Engineering

    2019 Institution:南山大学

     More details

    Level:Undergraduate (specialized)  Country:Japan

    2019年

    researchmap

  • 情報システム開発実習

    2018 - 2021 Institution:南山大学

     More details

  • Advanced Programming

    2016 Institution:Nanzan University

     More details

  • プログラミング応用実習

    2016 Institution:南山大学

     More details

  • ソフトウェア工学演習

    2015 - 2016 Institution:南山大学

     More details

    Level:Postgraduate  Country:Japan

    2015年 https://porta.nanzan-u.ac.jp/syllabus/html/2015_30002053.html
    2016年 https://porta.nanzan-u.ac.jp/syllabus/html/2016_30002053.html

    researchmap

  • ソフトウェア工学実習

    2015 Institution:南山大学

     More details

    Level:Undergraduate (liberal arts)  Country:Japan

    2015年 https://porta.nanzan-u.ac.jp/syllabus/html/2015_30003766.html

    researchmap

  • プログラミング基礎実習

    2015 Institution:南山大学

     More details

  • 卒業研究I~IV/IE~IVE

    2013.4 Institution:南山大学

     More details

  • ソフトウェア工学実習

    2013 Institution:南山大学

     More details

    2013年 https://porta.nanzan-u.ac.jp/syllabus/html/2013_30002647.html

    researchmap

  • 情報理工学概論

    2013 Institution:南山大学

     More details

    Level:Undergraduate (liberal arts)  Country:Japan

    2013年 https://porta.nanzan-u.ac.jp/syllabus/html/2013_30002094.html

    researchmap

  • ソフトウェア工学演習I~VIII

    2012.4 Institution:南山大学

     More details

  • 基礎演習

    2011 - 2013 Institution:南山大学

     More details

  • ソフトウェア開発技術II

    2011 Institution:南山大学

     More details

    Level:Undergraduate (specialized)  Country:Japan

    2011年 http://office.nanzan-u.ac.jp/SYLLABUS/2011/SYLLABUS/20110234341.htm
    2012年 https://porta.nanzan-u.ac.jp/syllabus/html/2012_30001762.html

    researchmap

  • プログラミング応用実習

    2010 - 2012 Institution:南山大学

     More details

  • プログラミング基礎実習

    2009 - 2013 Institution:南山大学

     More details

    2009年プログラミング実習II http://office.nanzan-u.ac.jp/SYLLABUS/2009/SYLLABUS/20090230242.htm
    2010年 http://office.nanzan-u.ac.jp/SYLLABUS/2010/SYLLABUS/20100230242.htm

    researchmap

  • コンピュータ基礎演習II

    2009 - 2011 Institution:南山大学

     More details

  • コンピュータ基礎演習I

    2009 - 2010 Institution:南山大学

     More details

    Level:Undergraduate (liberal arts)  Country:Japan

    researchmap

  • プログラミング実習III

    2009 Institution:南山大学

     More details

    Level:Undergraduate (liberal arts)  Country:Japan

    2009年 http://office.nanzan-u.ac.jp/SYLLABUS/2009/SYLLABUS/20090230253.htm
    2010年 http://office.nanzan-u.ac.jp/SYLLABUS/2010/SYLLABUS/20100230253.htm

    researchmap

▼display all

Social Activities

  • 「愛知からくりくふう展in刈谷」におけるレゴライントレースカーのプログラミング体験教室

    Role(s): Lecturer, Planner

    愛知県,刈谷市,公共社団法人日本プラントメンテナンス協会  2016.3

     More details

    Type:Science cafe

    researchmap

  • 大学コンソーシアムせと協議会副会長

    2012.4 - 2013.3

  • 南山大学オープンキャンパス

    Role(s): Lecturer, Organizing member

    2009

     More details

  • 大学コンソーシアムせと協議会委員

    Role(s): Organizing member

    大学コンソーシアムせと