TSUNEYASU KOMIYA

Department of Computer and Network EngineeringAssociate Professor
Cluster I (Informatics and Computer Engineering)Associate Professor

Degree

  • Doctor of Engineering, Toyohashi University of Technology

Research Keyword

  • プログラミング言語,プログラミング言語処理系

Field Of Study

  • Informatics, Software

Career

  • 01 Apr. 2016
    電気通信大学大学院情報理工学研究科, 准教授
  • 01 Apr. 2007 - 31 Mar. 2016
    電気通信大学大学院情報システム学研究科, 准教授
  • 01 Jan. 2007 - 31 Mar. 2007
    電気通信大学大学院情報システム学研究科, 助教授
  • Dec. 2003 - Dec. 2006
    豊橋技術科学大学情報工学系, 講師
  • Oct. 2005 - Sep. 2006
    静岡大学工学部, 非常勤講師(併任)
  • Apr. 1998 - Nov. 2003
    京都大学大学院情報学研究科通信情報システム専攻, 助手
  • Apr. 1996 - Mar. 1998
    京都大学大学院工学研究科情報工学専攻, 助手

Educational Background

  • Apr. 1993 - Mar. 1996
    Toyohashi University of Technology, Graduate School, Division of Engineering, システム情報工学専攻

Member History

  • Apr. 2024 - Present
    編集委員会副編集委員長, 日本ソフトウェア科学会, Society
  • Apr. 2023 - Present
    プログラミング論研究会 運営委員, 日本ソフトウェア科学会, Society
  • Dec. 2020 - Present
    情報入試委員会, 情報処理学会, Society
  • Apr. 2012 - Mar. 2024
    コンピュータソフトウェア 編集委員, 日本ソフトウェア科学会, Society
  • Jun. 2019 - May 2023
    論文誌ジャーナル/JIP編集委員会, 情報処理学会, Society
  • 2022
    プログラム共同委員長, 日本ソフトウェア科学会 第25回プログラミングおよびプログラミング言語ワークショップ(PPL2023), Society
  • Apr. 2019 - Mar. 2021
    教科科目第一委員会委員及び問題作成部会委員, 独立行政法人大学入試センター
  • 2021
    プログラム委員, 日本ソフトウェア科学会第38回大会, Society
  • 2021
    プログラム委員, 日本ソフトウェア科学会 第24回プログラミングおよびプログラミング言語ワークショップ(PPL2022), Society
  • Apr. 2019 - Mar. 2020
    JSONデータ交換フォーマットJIS原案作成委員会, 情報処理学会, Society
  • Apr. 2013 - Mar. 2017
    プログラミング研究会幹事, 情報処理学会, Society
  • 2017
    FIT2017プログラム委員会, FIT2017 第16回情報科学技術フォーラム, Society
  • 2016
    プログラム委員, 日本ソフトウェア科学会第33回大会, Society
  • 2016
    FIT2016研究専門委員会担当委員, FIT2016 第15回情報科学技術フォーラム, Society
  • 2016
    プログラム委員, 日本ソフトウェア科学会 第19回プログラミングおよびプログラミング言語ワークショップ(PPL2017), Society
  • 2013
    組織委員, 先進的計算基盤システムシンポジウムSACSIS2013, Society
  • 2013
    プログラム委員, 日本ソフトウェア科学会第30回大会, Society
  • 2012
    プログラム委員, 日本ソフトウェア科学会 第14回プログラミングおよびプログラミング言語ワークショップ(PPL2013), Society
  • 2011
    プログラム委員, 先進的計算基盤システムシンポジウムSACSIS2011, Society
  • 2011
    プログラム委員, 日本ソフトウェア科学会 第14回プログラミングおよびプログラミング言語ワークショップ(PPL2012), Society
  • 2010
    審判, ACM/ICPC東京大会, Society
  • Apr. 2007 - Mar. 2009
    教科科目第一委員会委員, 独立行政法人大学入試センター
  • Apr. 2005 - Mar. 2009
    情報処理学会論文誌:プログラミング 編集委員, 情報処理学会, Society
  • 2009
    審判, ACM/ICPC東京大会, Society
  • 2008
    プログラム委員, 日本ソフトウェア科学会第25回大会, Society
  • 2007
    プログラム委員, 日本ソフトウェア科学会第24回大会, Society
  • Apr. 1999 - Mar. 2003
    プログラミング研究会 運営委員, 情報処理学会, Society
  • 2003
    プログラム委員, 先進的計算基盤システムシンポジウムSACSIS2003, Society
  • 2002
    プログラム委員, 並列処理シンポジウムJSPP2002, Society

Award

  • May 1997
    情報処理学会 平成8年度論文賞

Paper

  • Evaluating Portable Mechanisms for Legitimate Execution Stack Access with a Scheme Interpreter in an Extended SC Language
    Masahiro Yasugi; Reichi Ikeuchi; Tasuku Hiraishi; Tsuneyasu Komiya
    Journal of Information Processing, Information Processing Society of Japan, 27, 177-189, 15 Feb. 2019, Peer-reviwed
    Scientific journal, English
  • L-Closureを用いた真に末尾再帰的なSchemeインタプリタ
    八杉昌宏; 小島啓史; 小宮常康; 平石 拓; 馬谷誠二; 湯淺太一
    情報処理学会論文誌 プログラミング, 情報処理学会, 3, 5, 1-17, Dec. 2010, Peer-reviwed, Scheme処理系は真に末尾再帰的であることが要求されており,アクティブな末尾呼び出しの数に制限がない場合もサポートしなくてはならない.Clingerは真の末尾再帰の形式的定義の1つを空間効率の点から与えており,その定義に従えば,末尾呼び出しの最適化(末尾呼び出しをトランポリンなどによりジャンプに置き換えて実装する方法)だけでなく,BakerのCPS(継続渡しスタイル)変換を用いたC言語におけるSchemeの実装手法も,真に末尾再帰的と分類できる.Bakerの実装手法は,CPS変換された末尾呼び出しにおいて新たな継続を生成せず,C言語の実行スタックに対してもごみ集めを行うため,空間効率が良い.本論文では拡張C言語による真に末尾再帰的なSchemeインタプリタの実装手法を提案する.本手法はCPS変換を用いず,Cの実行スタックがあふれそうになれば,残りの計算に必要な"Frame"オブジェクトのみを含むリストとして表現された空間効率の良い一級継続を生成し,すぐさまその継続を呼び出すというアイディアに基づく.ごみ集めや継続のキャプチャにおいては,実行スタックに合法的にアクセスできる,つまりデータ構造や変数の値としてアクセスできるL-closureという言語機構を用いている.ベースとなるSchemeインタプリタは,Javaアプリケーション組み込み用LispドライバであるJAKLDをもとにC言語で再実装されたものとした.Implementations of Scheme are required to be properly tail-recursive and to support an unbounded number of active tail calls. Clinger proposed a formal definition of proper tail recursion based on space efficiency. The definition covers systematic tail call optimization, where every tail call is converted to a jump (with an optional trampoline), as well as Baker's implementation of Scheme in the C language with CPS (continuation-passing style) conversion. Baker's implementation is space-efficient, since no new continuation is created on a CPS-converted tail call and garbage is collected even on C's execution stack. We propose techniques to implement a properly tail-recursive Scheme interpreter in an extended C language. Our approach does not convert a program into CPS. The key idea is to avoid stack overflow by creating a space-efficient first-class continuation represented as a list containing only the "Frame" objects necessary for the rest of computation and immediately invoking the continuation. We use a language mechanism called "L-closures" to access the contents of the execution stack as values of legal data structures and variables for implementing garbage collection and capturing continuations. This research is based on a Scheme interpreter which is developed in the C language by referring to an existing Lisp driver called JAKLD that is intended to be embedded in Java applications.
    Scientific journal, Japanese
  • Managing continuations for proper tail recursion
    Masahiro Yasugi; Tsuneyasu Komiya; Tasuku Hiraishi; Seiji Umatani
    Proceedings of the 2010 International Conference on Lisp, ILC '10, 65-72, 2010, Peer-reviwed, Implementations of Scheme are required to be properly tail-recursive and to support an unbounded number of active tail calls. Clinger proposed a formal definition of proper tail recursion based on space efficiency. This definition encompasses systematic tail call optimization, where every tail call is converted to a jump (with an optional trampoline), as well as Baker's implementation of Scheme in the C language with CPS (continuation-passing style) conversion. Baker's implementation is space-efficient, since no new continuation is created on a CPS-converted tail call and garbage is collected even on C's execution stack. In our work, we discovered that an abstract machine that runs CPS-converted programs cannot be considered properly tail-recursive according to Clinger's definition if continuation closures are simply created with the lexical environments for all variables. Furthermore, an abstract machine that employs neither explicit environments nor continuations is also improperly tail-recursive. This paper discusses the above issue and also proposes new techniques to implement a properly tail-recursive Scheme interpreter in an extended C language by following space-efficiency-based definitions of proper tail recursion. In our approach, a program is not converted into CPS. The primary concept is to avoid stack overflow by creating a space-efficient first-class continuation represented as a list containing only the "Frame" objects necessary for the rest of the computation and immediately invoking the continuation. We use a language mechanism called "L-closures" to access the contents of the execution stack as values of legal data structures and variables for implementing garbage collection and capturing continuations. © 2010 ACM.
    International conference proceedings, English
  • Real-time GC in JeRTy (TM) VM using the return-barrier method
    H Saiki; Y Konaka; T Komiya; M Yasugi; T Yuasa
    ISORC 2005: Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, Proceedings, IEEE COMPUTER SOC, 140-148, 2005, Runtime systems for applications written in certain languages such as Java (TM) and Lisp usually have a garbage collection (GC) feature to make efficient use of memory. With this feature, the system, before running out of memory space, automatically reclaims unnecessary fragments of memory at one burst and recycles them for use by applications. In conventional implementations, however the system has to suspend the execution of applications while carrying out GC, which renders GC generally unsuitable for real-time processing systems. As a solution to this problem, Yuasa, et al. of Kyoto University developed the return-barrier method based on snapshot GC. Return-barrier enhances real-time GC processing over the original snapshot GC. Some reports have been published on the evaluation of the return-barrier method in the Lisp environment such as Kyoto Common Lisp (KCL). In this paper we report the implementation of the return-barrier method for JeRTy (TM) VM, which is a real-time environment for embedded Java applications developed by OMRON Corporation, and its performance improvement over the conventional GC in JeRTyVM.
    International conference proceedings, English
  • オブジェクト指向並列言語OPAのための遅延正規化手法
    馬谷誠二; 八杉昌宏; 小宮常康; 湯淺太一
    情報処理学会論文誌:プログラミング, 45, SIG 5 (PRO 21), 12-25, 2004, Peer-reviwed
    Scientific journal, Japanese
  • 階層的グループ化に基づくコピー型ごみ集めによる局所性改善
    八杉昌宏; 伊藤智一; 小宮常康; 湯淺太一
    情報処理学会論文誌:プログラミング, Information Processing Society of Japan (IPSJ), 45, SIG 5 (PRO 21), 35-52, 2004, Peer-reviwed, The increasing processor-memory performance gap makes improving cache locality as important as virtual memory locality. Copying garbage collection moves all live objects from one semi-space to another semi-space. Cheney's nonrecursive copying algorithm employs a section of the destination semi-space as a queue of unscanned objects and requires only a negligible working space, but objects are copied in breadth-first order. However, in many applications, the breadth-first copying makes the spatial memory access locality worse and increases cache misses, page faults and TLB misses. In this paper, we propose a mostly depth-first copying algorithm. Since depth-first copying only achieves limited locality improvement we also propose a new "hierarchical clustering" copying algorithm. Since these recursive copying algorithms require a working space (e.g., a stack) for recording unscanned objects whose worst-case size is proportional to the number of live objects, we also propose an efficient technique which achieves depth-first copying or hierarchical clustering as approximately as possible using bounded workspace. This paper also shows the effect of our approach on miss-rate reduction.
    Scientific journal, Japanese
  • 入れ子関数を利用する動的負荷分散と高水準記述
    八杉昌宏; 小宮常康; 湯淺太一
    情報処理学会論文誌:コンピューティングシステム, Information Processing Society of Japan (IPSJ), 45, SIG 11 (ACS 7), 368-377, 2004, Peer-reviwed, In this paper, we show that we can write a program with "Lazy Task Creation"-based load balancing where callers' variables are accessed by using nested functions provided as an extension to C by the GNU C compiler. We also show that we can describe a behavior correspending to backtracking. Our scheme accepts a lower-level description than the original LTC. A task can be created not only to process a continuation but also to process a specified part for parallel execution. The low-level description can be used for the distributed computing such as cluster computing. Since the low-level description is sometimes undesirable, we also discuss its high-level description. We also enhanced GCC to reduce allocation overhead and maintenance overhead of nested functions. The results of preliminary performance measurements on various shared-memory parallel computers exhibit near-ideal speedups and quite low parallelization overhead.
    Scientific journal, Japanese
  • Lazy stack copying and stack copy sharing for the efficient implementation of continuations
    T Ugawa; N Minagawa; T Komiya; M Yasugi; T Yuasa
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, SPRINGER-VERLAG BERLIN, 2895, 410-426, 2003, Peer-reviwed, In order to capture first-class continuations, most stack-based implementations copy contents of the stack to the heap. While various implementation strategies for copying have been proposed, many implementations employ the stack strategy. With this strategy, the entire stack contents is copied to the heap whenever a continuation is captured. This simple strategy is easy to implement and can be used for implementations with foreign language interface. However, this strategy requires a lot of time and memory for creation and invocation of continuations. We propose a lazy stack copying technique. The contents of the stack to copy are preserved on the stack until the function returns that has captured the continuation. So we delay stack copying for the continuation until the function returns. We can avoid stack copying if it is detected that the continuation has become garbage before the function returns. In addition, we propose stack copy sharing, which is realized by using lazy stack copying. We present three models for stack copy sharing. We applied these techniques to Scheme systems and found that the proposed techniques improve runtime and memory efficiency of programs that use first-class continuations.
    Scientific journal, English
  • Pursuing laziness for efficient implementation of modern multithreaded languages
    S Umatani; M Yasugi; T Komiya; T Yuasa
    HIGH PERFORMANCE COMPUTING, SPRINGER-VERLAG BERLIN, 2858, 174-188, 2003, Peer-reviwed, Modern multithreaded languages axe expected to support advanced features such as thread identification for Java-style locks and dynamically-scoped synchronization coupled with exception handling. However, supporting these features has been considered to degrade the effectiveness of existing efficient implementation techniques for fine-grained fork/join multithreaded languages, e.g., lazy task creation. This paper proposes efficient implementation techniques for an extended Java language OPA with the above advanced features. Our portable implementation in C achieves good performance by pursuing 'laziness' not only for task creation but also stealable continuation creation, thread ID allocation, and synchronizer creation.
    Scientific journal, English
  • 継続の生成におけるスタックコピーの遅延
    鵜川始陽; 皆川宜久; 小宮常康; 八杉昌宏; 湯淺太一
    情報処理学会論文誌:プログラミング, Information Processing Society of Japan (IPSJ), 44, SIG 13 (PRO 18), 72-83, 2003, Peer-reviwed, In order to capture first-class continuations, most stack-based implementations copy contents of the stack to the heap. While various implementation strategies for copying are proposed, most implementations employ the stack strategy. With this strategy, the entire stack contents are copied to the heap whenever a continuation is caotured. This simple strategy is easy to implement and can be used for implementations with foreign language interface. However, continuations with this strategy spend a lot of time and memory for their creations and invocations, and this week point often discourages programmers from using first-class continuations. We propose a lazy stack copying technique. The contents of the stack to copy will be preserved on the stack until returning from the function that is capturing the continuation. So we delay stack copying for a continuation until the function returns. We can avoid stack copying if it is detected that the continuation became a garbage before the function returns. In addition, we propose another technique, partial sharing of the copied stack, which is realized by using the lazy stack copying technique. We applied these techniques to Scheme interpreters and found that the proposed techniques improve runtime and memory efficiency of programs that use continuations.
    Scientific journal, Japanese
  • Scheme処理系におけるC言語拡張コードへのライトバリア自動挿入
    花井亮; 小宮常康; 八杉昌宏; 湯淺太一
    情報処理学会論文誌:プログラミング, 情報処理学会, 44, SIG 4 (PRO 17), 17-24, 2003, Peer-reviwed
    Scientific journal, Japanese
  • Indefinite One-time Continuations
    T. Komiya; T. Yuasa
    Advanced Lisp Technology, Taylor & Francis, 155-172, 2002
    Scientific journal, English
  • Extended Continuations for Future-based Parallel Scheme Languages
    T. Komiya; T. Yuasa
    Advanced Lisp Technology, 119-133, 2002
    Scientific journal, English
  • Automatic Recompilation on Macro Redefinition, by Making Use of Weak Conses
    T. Komiya; T. Yuasa; A. Fushimi
    Advanced Lisp Technology, Taylor & Francis, 255-267, 2002
    Scientific journal, English
  • 入れ子関数を利用したマルチスレッドの実現
    田畑悠介; 八杉昌宏; 小宮常康; 湯淺太一
    情報処理学会論文誌:プログラミング, 43, SIG 3 (PRO 14), 26-40, 2002, Peer-reviwed
    Scientific journal, Japanese
  • 共有メモリ向けプリミティブとそのGCCを使った実現
    八杉昌宏; 高田潤; 田畑悠介; 小宮常康; 湯淺太一
    情報処理学会論文誌:プログラミング, 43, SIG 1 (PRO 13), 118-132, 2002, Peer-reviwed
    Scientific journal, Japanese
  • Javaと相互呼び出し可能なScheme処理系「ぶぶ」における継続機能と例外処理機能の実装
    鵜川始陽; 湯淺太一; 小宮常康; 八杉昌宏
    情報処理学会論文誌:プログラミング, 42, SIG 11 (PRO 12), 25-36, 2001, Peer-reviwed
    Scientific journal, Japanese
  • Java上のScheme処理系「ぶぶ」における単一のクラスローダを用いたオブジェクトシステムの実装
    窪田貴志; 湯淺太一; 倉林則之; 八杉昌宏; 小宮常康
    情報処理学会論文誌:プログラミング, 42, SIG 7 (PRO 11), 57-69, 2001, Peer-reviwed
    Scientific journal, Japanese
  • オブジェクト指向並列言語OPAのためのコード生成手法
    八杉昌宏; 馬谷誠二; 田畑悠介; 伊藤智一; 小宮常康; 湯淺太一
    情報処理学会論文誌:プログラミング, 42, SIG 11 (PRO 12), 1-13, 2001, Peer-reviwed
    Scientific journal, Japanese
  • Speculative computation with lazy task creation
    T Komiya; T Yuasa; S Fukushima
    PARALLEL AND DISTRIBUTED COMPUTING FOR SYMBOLIC AND IRREGULAR APPLICATIONS, WORLD SCIENTIFIC PUBL CO PTE LTD, 41-55, 2000, We propose an extended future construct for speculative computation, that can be used together with lazy task creation (LTC). Our goal is to provide a framework for speculative computation on an LTC system. In order to perform speculative computation on an LTC system, we assign an attribute, either mandatory or speculative, to each task. Every task is initially regarded as speculative. Later, if the computation of the task is determined to be actually required, the attribute becomes mandatory. The decision whether the computation is required or not is made by periodically evaluating a condition, that is given to the extended future construct. In this paper, we also present an implementation of the extended future construct, and show the results of some benchmarks.
    International conference proceedings, English
  • リターン・バリア
    湯淺太一; 中川雄一郎; 小宮常康; 八杉昌宏
    情報処理学会論文誌:プログラミング, Information Processing Society of Japan (IPSJ), 41, SIG 9 (PRO 8), 87-99, 2000, Peer-reviwed, Garbage collection(GC)is the most popular method in list processing systems such as Lisp to reclaim discarded cells. GC periodically suspends the execution of the main list processing program. In order to avoid this problem, realtime GC which runs in parallel with the main program so that the time for each list processing primitive is bounded by some small constant has been proposed. The snapshot GC, which is one of the most popular realtime GC methods, has to mark all cells directly pointed from the root area at the beginning of a GC process. The suspension of the main program by this root marking cannot be ignored when the root area is large. This paper proposes"return barrier"in order to divide the process of root marking into small chunks and to reduce the suspension time of the main program. The root area on the stack is marked frame by frame each time a new cell is requierd. When a function returns, the garbage collector checks if cells pointed to from the frame of the caller function have been already marked, and marks them if not. After marking all cells directly pointed to from the root area, other cells are marked as in the original snapshot GC. In this paper, we implemented the snapshot GC equipped with the return barrier in KCL(Kyoto Common Lisp). We compare and discuss the suspension times of this GC and the original snapshot GC.
    Scientific journal, Japanese
  • 無制限の寿命を持つ単一呼出継続
    小宮常康; 湯淺太一
    情報処理学会論文誌, 37, 1, 92-100, 1996, Peer-reviwed
    Scientific journal, Japanese
  • Weak Consを用いたマクロ再定義時の自動再コンパイル
    小宮常康; 伏見明浩; 湯淺太一
    情報処理学会論文誌, Information Processing Society of Japan (IPSJ), 36, 6, 1407-1414, 1995, Peer-reviwed, Some Lisp systems have both an interpreter and a compiler. In such systems, compilation of those functions that contain macro calls sometimes causes a trouble. The interpreter always uses the latest macro definition since macro forms are expanded at execution time. On the other hand, the compiler expands macros at compilation time and thus uses those macro definitions that exist at compilation time. Therefore, when a function is compiled, all macros that the function references must have already been defined. If a macro is re-defined, the change cannot be reflected to compiled functions since macro forms have already been expanded. As the result, the behavior of a compiled function may be different from an interpreted function, depending on the time of macro definition. In this paper, we propose a mechanism to guarantee that a compiled function behaves in the same way as the interpreted function. A Lisp system with this mechanism keeps a dependence graph of functions and macros. When a macro is defined(or re-defined), the system automatically re-compiles or re-defines those functions and macros that depend on the(re-) defined macro. The proposed mechanism can avoid redundant re-compilation and discard unnecessary information for re-compilation, by making use of weak conses. Although some compiled functions may still behave in a different way as the interpreted function, such functions rarely appear in realistic programs and thus cause no realistic problem.
    Scientific journal, Japanese
  • Futureベースの並列Schemeにおける継続の拡張
    小宮常康; 湯淺太一
    情報処理学会論文誌, Information Processing Society of Japan (IPSJ), 35, 11, 2382-2391, 1994, Peer-reviwed, A continuation represents the rest of computation from a given point. Scheme, a dialect of Lisp, provides a function to generate a continuation as a first-class object. Using Scheme continuations, we can express various control structures such as non-local exits and coroutines. The future construct, which provides the mechanisms of process creation and synchronization, is supported in many parallel Scheme languages. However, continuations of these languages are not powerful enough to describe parallel programs. This paper proposes an extension to Scheme continuations to make them adaptable to parallel environment based on the future construct.
    Scientific journal, Japanese

MISC

  • 大学情報入試の動向:2.国公立大学における情報入試
    小宮常康
    Jan. 2024, 情報処理, 65, 2, e6-e9, Introduction scientific journal
  • 教科「情報」の入学試験問題って?:時間短縮大作戦!
    小宮常康
    Oct. 2022, 情報処理, 63, 11, e34-e52, Introduction scientific journal
  • ぺた語義:全国大会イベント「2025年実施の大学情報入試への展望」の報告
    小宮 常康; 佐藤 喬
    情報処理学会, 15 Aug. 2021, 情報処理, 62, 9, 490-494, Japanese, Introduction scientific journal
  • TUTScheme
    小宮常康; 湯淺太一
    Aug. 2011, コンピュータソフトウェア, 28, 3, 70-75, Japanese, Introduction other
  • A High-level Machine Language for Memory-Location-Conscious Parallel Processing
    WATANABE Nobuya; YOKOYAMA Daisaku; CHIKAYAMA Takashi; KOMIYA Tsuneyasu; YUASA Taiich
    単一計算機内のメモリ階層から計算機間のネットワーク遅延の差異までを統一的に記述できる計算量モデル「計算連続体モデル」を提案している.このモデルでは,計算実体はメモリ上のあらゆる場所に存在し,場所を移動させながら計算を行なう.計算コストは,メモリアクセスに要するコストで表され,計算を行なっている実行場所からアクセス対象データが格納されている場所までの距離に基づいて表現される.これまでに,このモデルの検証に用いる仮想機械を開発しているが,低水準な命令セットであるため,大規模なプログラミングは効率上困難である.そこで,より高水準な記述のできる機械語の設計を行なった.設計した言語は,C言語をベースとし,実行場所を指定する構文とマルチスレッド並列処理の機能を有する.本稿では,この計算連続体モデルに基づく仮想機械用の高水準機械語の設計と実装について述べる., Japan Society for Software Science and Technology, 2003, Conference Proceedings of Japan Society for Software Science and Technology, 2003, 0, 84-84, 1349-3515, 130004638831

Books and other publications

  • ガベージコレクション 自動的メモリ管理を構成する理論と実装
    前田敦司; 鵜川始陽; 小宮常康
    Scholarly book, Japanese, Joint translation, 翔泳社, 14 Mar. 2016, 9784798134208

Lectures, oral presentations, etc.

  • 関数型言語の諸概念を取り入れたシェル
    眞田龍史; 小宮常康
    Oral presentation, Japanese, 情報処理学会第86回全国大会
    16 Mar. 2024
  • 電気通信大学における情報入試体験会の実施結果概要の報告
    小宮常康; 渡辺博芳; 中山泰一; 成見 哲; 山路浩夫
    Oral presentation, Japanese, 情報処理学会第86回全国大会
    15 Mar. 2024
  • 演算の融合による数値計算ライブラリIFNのメモリ効率の改善
    齊藤百香; 岩崎英哉; 川端英之; 小宮 常康
    Poster presentation, Japanese, 第26回プログラミングおよびプログラミング言語ワークショップ(PPL 2024)
    05 Mar. 2024- 07 Mar. 2024
  • GCアサーションにおけるメモリリーク要因の提示機能
    楊 光; 小宮常康
    情報処理学会第85回全国大会
    04 Mar. 2023
  • インタプリタとコンパイラ生成コードの対比によるコンパイラ実行時環境理解支援ツール
    李 志弘; 小宮常康
    Oral presentation, 情報処理学会第85回全国大会
    04 Mar. 2023
  • 各教科で使用可能なフローチャートを利用した論理的思考力育成システムの開発
    杉山 尚也; 中山 泰一; 小宮 常康
    Oral presentation, 情報処理学会第64回プログラミング・シンポジウム
    07 Jan. 2023
  • 前処理による静的解析ツールsolhintの解析性能向上
    橋本 樹; 小宮常康
    Oral presentation, Japanese, 情報処理学会第84回全国大会講演論文集, 情報処理学会, 愛媛県松山市(ハイブリッド), Domestic conference
    03 Mar. 2022
  • 値への追跡子付与による動的プログラム解析手法
    西谷幸太郎; 小宮常康
    Oral presentation, Japanese, 情報処理学会第84回全国大会講演論文集, 情報処理学会, 愛媛県松山市(ハイブリッド), Domestic conference
    03 Mar. 2022
  • Evaluating Implementations of First-class Continuations for a Scheme Interpreter in an Extended SC Language
    Daiki Bise; Masahiro Yasugi; Tasuku Hiraishi; Tsuneyasu Komiya
    Poster presentation, English, The 18th Asian Symposium on Programming Languages and Systems (APLAS)
    01 Dec. 2021
  • ごみ集めにおける自動ルート保護と手動ルート保護の併用手法
    半澤順一; 小宮常康
    Oral presentation, Japanese, 情報処理学会第129回プログラミング研究発表会
    02 Jun. 2020
  • アサーションを取り入れた静的解析に基づくデバッグ支援ツール
    関口雄太; 小宮常康
    Poster presentation, Japanese, 第22回プログラミングおよびプログラミング言語ワークショップ(PPL2020), オンライン開催, Domestic conference
    09 Mar. 2020
  • TypeScriptにおける型定義を切り替え可能な型検査補助ツールの実装
    木戸章紀; 小宮 常康
    Poster presentation, Japanese, 第22回プログラミングおよびプログラミング言語ワークショップ(PPL2020), オンライン開催, Domestic conference
    09 Mar. 2020
  • FFIをもつSchemeインタプリタのための部分コンパイル方式コンパイラの構成法
    寺澤哉門; 小宮常康
    Oral presentation, Japanese, 情報処理学会第81回全国大会講演論文集, 情報処理学会, 福岡市, Domestic conference
    15 Mar. 2019
  • 最近のプログラミング言語の動向
    小宮常康
    Public discourse, 日本技術士会情報工学部会・情報処理学会CPDコラボ・ワークショップ, Invited
    20 Oct. 2018
  • 拡張SC言語で記述したSchemeインタプリタによる計算状態操作機構の評価
    八杉昌宏; 池内嶺知; 平石 拓; 小宮常康; 重本孝太
    Oral presentation, Japanese, 日本ソフトウェア科学会 第20回プログラミングおよびプログラミング言語ワークショップ(PPL2018), Domestic conference
    06 Mar. 2018
  • アロケーションサイトに応じてGCアルゴリズムを選択可能なハイブリッドGC
    半澤順一; 小宮常康; 佐藤 喬
    Oral presentation, Japanese, 情報処理学会第118回プログラミング研究発表会
    28 Feb. 2018
  • LLDBを用いたソース-to-C型トランスレータ用ソースレベルデバッガの実装手法
    柳 震; 小宮常康
    Oral presentation, Japanese, 情報処理学会第79回全国大会講演論文集, 情報処理学会, 名古屋市, Domestic conference
    16 Mar. 2017
  • 類似コード検出に向けた中間言語の視覚化
    半澤順一; 佐藤 喬; 小宮常康
    Oral presentation, Japanese, 情報処理学会第78回全国大会講演論文集, 情報処理学会, 横浜市, Domestic conference
    12 Mar. 2016
  • 並列分散軽量プログラミング言語に適したブレークポイント手法
    工藤朋哉; 小宮常康
    Oral presentation, Japanese, 情報処理学会第77回全国大会講演論文集, Domestic conference
    19 Mar. 2015
  • オフラインWebアプリケーションにおける事前データ取得の半自動化
    磯谷俊明; 小宮常康
    Oral presentation, Japanese, 情報処理学会第77回全国大会講演論文集, Domestic conference
    19 Mar. 2015
  • 仮想メソッド呼出しを用いることによるプログラムの難読化のオーバヘッド削減
    石田峰文; 小宮常康
    Oral presentation, Japanese, 情報処理学会第76回全国大会講演論文集
    13 Mar. 2014
  • 実行時情報を活用した第一級継続のオーバーヘッド削減手法
    片桐国建; 小宮常康
    Oral presentation, Japanese, 情報処理学会第76回全国大会講演論文集
    11 Mar. 2014
  • JavaScriptにおける動的情報流解析のソースコード変換による実装
    佐藤寛之; 小宮常康
    Oral presentation, Japanese, 情報処理学会第75回全国大会講演論文集,情報処理学会第75回全国大会
    Mar. 2013
  • プログラム変換器によるメモ化の適用範囲拡張
    康 娜丹; 小宮常康
    Oral presentation, Japanese, 情報処理学会,情報処理学会 第74回全国大会
    Mar. 2012
  • 遅延スイープ法における局所性の改善
    金野 千顕; 小宮 常康
    Oral presentation, Japanese, 日本ソフトウェア科学会,第14回プログラミングおよびプログラミング言語ワークショップ (PPL2012)
    Mar. 2012
  • イベント駆動型プログラミングのためのストリームを導入したJavaScript拡張言語の設計
    雪本 修一; 小宮 常康
    Oral presentation, Japanese, 日本ソフトウェア科学会,第14回プログラミングおよびプログラミング言語ワークショップ (PPL2012)
    Mar. 2012
  • 例外処理を用いた継続導入におけるオーバーヘッドの軽減
    片桐 国建; 小宮 常康
    Oral presentation, Japanese, 日本ソフトウェア科学会,第14回プログラミングおよびプログラミング言語ワークショップ(PPL2012)
    Mar. 2012
  • Webブラウザのしくみ
    小宮常康
    Public discourse, ちょうふ市内・近隣大学等公開講座
    06 Sep. 2011
  • サーバ・クライアント処理の動的分割・再配置機能を備えたWebアプリケーション用言語
    石橋 崇; 小宮常康; 多田好克
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング,情報処理学会第83回プログラミング研究発表会
    Apr. 2011
  • データの更新を漸次的に行う動的ソフトウェア更新機構
    荻山温夫; 小宮常康; 佐藤 喬; 多田好克
    Oral presentation, Japanese, 情報処理学会第73回全国大会講演論文集,情報処理学会第73回全国大会
    Mar. 2011
  • ページ遷移を考慮したWebアプリケーション記述言語の設計と実装
    三島 航; 小宮常康; 佐藤 喬; 多田好克
    Oral presentation, Japanese, 情報処理学会創立50周年記念(第72回)全国大会
    Mar. 2010
  • Webアプリケーションにおけるサーバ・クライアント処理の分割支援
    石橋 崇; 小宮常康; 佐藤 喬; 多田好克
    Oral presentation, Japanese, 第12回プログラミングおよびプログラミング言語ワークショップ(PPL2010)
    Mar. 2010
  • L-closureを用いた真に末尾再帰的なSchemeインタプリタの実装
    小島啓史; 八杉昌宏; 小宮常康; 平石 拓; 馬谷誠二; 湯淺太一
    Oral presentation, Japanese, 第12回プログラミングおよびプログラミング言語ワークショップ(PPL2010)
    Mar. 2010
  • 継続の共有化による継続ベースWebサーバのメモリ使用量削減
    新宮澄夫; 小宮常康; 佐藤 喬; 多田好克
    Oral presentation, Japanese, 情報処理学会第71回全国大会講演論文集,情報処理学会第71回全国大会
    Mar. 2009
  • Webアプリケーションのための動的適応可能な処理分担機構の設計と実装
    山之井啓泰; 石橋 崇; 佐藤 喬; 小宮常康
    Oral presentation, Japanese, 情報処理学会第71回全国大会講演論文集,情報処理学会第71回全国大会
    Mar. 2009
  • Real-time Stack Garbage Collection
    Tsuneyasu KOMIYA; Takashi ISHINAKA
    Public symposium, English, Workshop on Software Science and Technology in China and Japan (WSST/CJ 2008), 中国桂林
    Sep. 2008
  • Design and Implementation of JavaScript/MC^2
    So Ishibashi; Tsuneyasu Komiya; Toshio Hirotsu
    Public symposium, Japanese, 先進的計算基盤システムシンポジウム(SACSIS 2008), 情報処理学会, 筑波
    Jun. 2008
  • Web アプリケーションにおける JavaScript 計算の移送機構
    石橋 崇; 小宮常康; 廣津登志夫
    Oral presentation, Japanese, 情報処理学会第70回全国大会講演論文集
    Mar. 2008
  • 情報化社会の舞台裏〜プログラムの動く仕組み〜
    小宮常康
    Public discourse, 平成19年度市内・近隣大学等公開講座
    06 Nov. 2007
  • CPSを用いた実行方式におけるスタックごみ集めの実時間化手法
    石中 貴; 小宮常康
    Oral presentation, Japanese, 情報処理学会,第69回情報処理学会全国大会
    Mar. 2007
  • スタックの直接操作を必要としない一級継続の実装
    川田大蔵; 小宮常康
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    Mar. 2006
  • 細粒度マルチスレッド言語における例外処理の効率良い実装
    庄林宏和; 馬谷誠二; 八杉昌宏; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2004
  • 実時間処理に適したメモリ管理を行うLisp処理系の設計と実装
    森住大樹; 小宮常康; 八杉昌宏; 湯淺太一
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2004
  • アプリケーションの定常動作に基づく複数フリーリストの初期メモリ量設定方式
    渡邊宣寿; 小宮常康; 八杉昌宏; 湯淺太一
    Public symposium, Japanese, 第一回ディペンダブルソフトウェアワークショップ(DSW04)
    2004
  • 組み込みシステムにおける複数のフリーリストに割り振るメモリ量の最適化
    渡邊宣寿; 小宮常康; 八杉昌宏; 湯淺太一
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2004
  • Lazy Stack Copying and Stack Copy Sharing for Efficient Implementation of Continuations
    Ugawa, T; Minagawa, N; Komiya, T; Yasugi, M; Yuasa, T
    Public symposium, English, The First Symposium on Programming Languages and Systems
    2003
  • Pursuing Laziness for Efficient Implementation of Modern Multithreaded Languages
    Umatani, S; Yasugi, M; Komiya, T; Yuasa, T
    Public symposium, English, The fifth International Symposium on High Performance Computing
    2003
  • 共有メモリプログラミングのための拡張C言語
    高田潤; 八杉昌宏; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2003
  • メモリ上の配置を意識する並列処理向き高水準機械語の設計と実装
    渡邊誠也; 横山大作; 近山隆; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 日本ソフトウェア科学会第20回記念大会論文集
    2003
  • 拡張と変形に適したS式ベースC言語の設計と実装
    平石拓; 八杉昌宏; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 日本ソフトウェア科学会第20回記念大会論文集
    2003
  • リターンバリアを用いた並列実時間ごみ集めの実装
    Setiadi Rachmat; 小宮常康; 八杉昌宏; 湯淺太一
    Oral presentation, Japanese, 日本ソフトウェア科学会第19回大会論文集
    2002
  • 局所性を高める階層的コピーGC方式
    伊藤智一; 八杉昌宏; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 日本ソフトウェア科学会第19回大会論文集
    2002
  • スタックのコピーを遅延させる継続の実装方式
    鵜川始陽; 小宮常康; 八杉昌宏; 湯淺太一
    Oral presentation, Japanese, 日本ソフトウェア科学会第19回大会論文集
    2002
  • 入れ子関数を利用した動的負荷分散
    八杉昌宏; 田畑悠介; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2002
  • 投機的実行用の条件付 future 構文とその実装
    Setiadi Rachmat; 小宮常康; 湯淺太一
    Public symposium, Japanese, 第3回プログラミングおよびプログラミング言語ワークショップ
    2001
  • SchemeにおけるEvaluation Strategy の設計と実装
    西村祥治; 湯淺太一; 八杉昌宏; 小宮常康
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2001
  • 共有メモリ関連命令を生成可能な実装用言語の設計
    八杉昌宏; 田畑悠介; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2001
  • プログラムの部分移送に基づく遠隔実行機構とその知的インターフェースへの応用
    倉林 則之; 湯淺太一; 小宮常康
    Public symposium, Japanese, Japan Lisp User Group Meeting
    2000
  • プログラムの部分移送に基づく遠隔実行機構とその知的インタフェースへの応用
    倉林則之; 湯淺太一; 小宮常康
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2000
  • 少量のスタックで大部分を深さ優先順にコピーするゴミ集め方式
    八杉昌宏; 伊藤智一; 小宮常康; 湯淺太一
    Public symposium, Japanese, 第3回プログラミングおよび応用のシステムに関するワークショップ(SPA2000)
    2000
  • マルチコンテキスト管理をサポートする実装用言語
    八杉昌宏; 馬谷誠二; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会論文誌:プログラミング
    2000
  • 並列Schemeにおける即時タスク生成法と遅延タスク生成法の融合
    窪田貴志; 湯淺太一; 八杉昌宏; 小宮常康
    Oral presentation, Japanese, 情報処理学会第59回(平成11年後期)全国大会
    1999
  • ISLISPコンパイラの実装
    西村祥治; 湯淺太一; 八杉昌宏; 小宮常康
    Oral presentation, Japanese, 情報処理学会第59回(平成11年後期)全国大会
    1999
  • 並列言語OPAにおける一貫性制御に対応した差分プログラミング
    馬谷誠二; 湯淺太一; 八杉昌宏; 小宮常康
    Oral presentation, Japanese, 情報処理学会第59回(平成11年後期)全国大会
    1999
  • データ並列C言語NCXの実装
    河内隆仁; 渡邊誠也; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会第55回(平成9年度)全国大会
    1997
  • Java上のScheme処理系「ぶぶ」の実装
    山中政宣; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会第55回(平成9年度)全国大会
    1997
  • Javaクラスライブラリに対する言語間インタフェース
    木俣功; 小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会第55回(平成9年度)全国大会
    1997
  • call/ccからcall/iocへの自動変換
    大谷友佳子; 湯淺太一; 小宮常康
    Oral presentation, Japanese, 情報処理学会研究会報告 96-PRO-9
    1996
  • Indefinite One-time Continuation
    小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会研究会報告 95-PRO-4
    1995
  • future ベースの並列 Scheme における継続の拡張
    小宮常康; 湯淺太一
    Oral presentation, Japanese, 情報処理学会研究会報告 93-SYM-67
    1993

Courses

  • 基盤ソフトウェア特論
    The University of Electro-Communications
  • 情報数理工学実験第二A,第二B
    The University of Electro-Communications
  • 基礎プログラミングおよび演習
    The University of Electro-Communications
  • 計算機通論
    The University of Electro-Communications

Affiliated academic society

  • 情報処理学会
  • 日本ソフトウェア科学会

Research Themes

  • Enhancing and Exploiting a Language Mechanism for Legitimate Manipulation of Execution States
    YASUGI Masahiro; HIRAISHI Tasuku; KOMIYA Tsuneyasu
    Japan Society for the Promotion of Science, Grants-in-Aid for Scientific Research, Grant-in-Aid for Scientific Research (B), We can implement language systems with the functionality of dynamic maintenance of software execution by using a language mechanism (called L-closures) which enables legitimate manipulation of execution states. In this study, we applied the proposed mechanism to the efficient implementation of proper tail recursion. We also proposed and evaluated various schemes for exploiting available resources in parallel systems by applying the proposed mechanism to dynamic load balancing. Using a new implementation of the proposed mechanism, we reduced amortized invocation costs of L-closures. We also supported x86-64 in the compiler implementation, and evaluated the effect of register allocation for short functions., 21300008
    01 Apr. 2009 - 31 Mar. 2014
  • Software Development based on Continuous Computing Resources
    YUASA Taiichi; CHIKAYAMA Takashi; UEDA Kazunori; MORI Shinichiro; YASUGI Masahiro; KOMIYA Tsuneyasu
    Japan Society for the Promotion of Science, Grants-in-Aid for Scientific Research, Kyoto University, Grant-in-Aid for Scientific Research on Priority Areas, In order to make it possible to construct complexity analysis models and software systems that can cope with both extent and locality of computer systems, we have been working to revisit, unify and develop existing computation concepts from various points of view, based on the notion of Continuous Computing Resources. The major outcomes of this project are the following. 1. Complexity Analysis based on Continuous Computing Resource: We proposed a computation model that can uniformly and concisely express various concepts of computation from the memory hierarchy of a single computer to network delay among computers. We showed that complexity analysis results based on this model reflect real computation more precisely than previous models. In order to make it easier to understand the behavior of sophisticated parallel algorithms, we designed a virtual machine of the model and implemented language systems including simulators and visualizers. 2. Concurrent Language Model LMNtal: We designed LMNTal (pronounced as "elemental"), a scalable language model for concurrent computation based on hierarchical graph reduction. On this model, we have established techniques for process structure analysis and implemented this model as realistic and useful programming languages. Since hierarchical graph reduction includes a variety of computation models such as multi-set rewriting models and self-organizing models, it is expected that our results will be useful as a bridge between existing computation models. 3. Language Implementation based on Locality: We showed that runtime efficiency of programming language systems can be remarkably improved by focusing on locality. A typical example is the locality improvement by the use of copying garbage collection based on "hierarchical clustering of data objects". This technique is proposed by further improving the existing technique where live objects are copied in depth-first order, with a small stack area and additionally with a queue that is used in case of stack overflow. This technique improves not only the locality in the virtual memory, but also the locality in the CPU cache, and thus allows high performance implementations on real computer systems., 13224050
    2001 - 2005
  • Study for Optimization of Continuations
    YUASA Taiichi; YASUGI Masahiro; KOMIYA Tsuneyasu
    Japan Society for the Promotion of Science, Grants-in-Aid for Scientific Research, KYOTO UNIVERSITY, Grant-in-Aid for Scientific Research (C), While first-class continuations as in the Scheme programming language are powerful, the cost of creating and calling continuations is very high. In order to avoid this problem, we have proposed light-weight continuations called indefinite one-time continuations (or IOCs for short). An IOC can be called at most once but can be called at any time. If we are sure that a continuation is called at most once during the execution of a program, then by replacing the function "call/cc" which generates a continuation with "call/ioc" which generates an IOC, the performance of the program will be significantly increased. In general, however, it is difficult to determine whether a continuation is called at most once. In this research, we proposed an algorithm to automatically detect those continuations that can be replaced by IOCs, by analyzing an entire program using a kind of abstract interpretation. Based on this algorithm, we developed a system which detects those "call/cc" calls that can be replaced by "call/ioc" calls. We then analyzed several practical Scheme programs on this system. This algorithm cannot detect all replaceable continuations since the algorithm uses only the information which is statically obtained from a program. However, our experiments showed that most replaceable continuations in practical Scheme programs can be detected by this algorithm., 09680333
    1997 - 1998
  • Study for Effective Use of Vector Processors Based on Data-Parallel Model
    YUASA Taiichi; KOMIYA Tsuneyasu; UMEMURA Kyoji
    Japan Society for the Promotion of Science, Grants-in-Aid for Scientific Research, Grant-in-Aid for Scientific Research (B), We have made fundamentl research on data-parallel computation model and its application to vector processors, from various points of view. The following research topics are included : 1.Parallel processing system based on data-parallel model We have developed a massively parallel computer system which can execute data-parallel programs efficiently. The hardware of the system includes a SIMD machine SM-1 with 1024 processors, and the software includes language processors for new languages, such as an extended C language and an extended Common Lisp. 2.Applications based on data-parallel model For some advanced application programs, we have proposed new data-parallel algorithms which greatly increase execution performance. We implement these algorithms in our data-parallel languages, measured their performance on SM-1, and proved the effectiveness. 3.The programming language NCX based on data-parallel model In order to make data-parallel programming widely available, we have designed a new extended C language, called NCX,which is independent of computer architectures. We have developed NCX compilers for various parallel machines with difference architectures. In order to reduce the cost of compiler development, we have developed a preprocessor that performs architecture-independent analysis of NCX programs. This preprocessor is used in all NCX compilers so far developed. 4.Code generation of a data-parallel language for vector processors we have developed a new method to execute data-parallel programs efficiently on vector processors. The basic idea of this method is to handle a set of data objects in data-parallel programs as a single vector that can be processed efficiently on vector processors. We have developed an experimental NCX compiler based on this method. Using this compiler, we have executed some applications on the Micro VP and proved the effectiveness of the method., 07458059
    1995 - 1996