2026/03/10 更新

写真a

マスハラ ヒデヒコ
増原 英彦
MASUHARA HIDEHIKO
所属
情報理工学院 教授
職名
教授
外部リンク

学位

  • 博士(理学) ( 東京大学 )

研究キーワード

  • プログラミング言語

  • Programming Languages

研究分野

  • 情報通信 / ソフトウェア

経歴

  • 東京科学大学 (旧 東京工業大学)   情報理工学院 数理・計算科学系 (旧 大学院情報理工学研究科 数理・計算科学専攻)   教授

    2013年4月 - 現在

      詳細を見る

  • 東京大学   大学院総合文化研究科   助教授・准教授

    2002年4月 - 2013年3月

      詳細を見る

  • University of British Columbia, Canada   Department of Computer Science   Visiting Professor

    2001年10月 - 2002年9月

      詳細を見る

  • 東京大学   大学院総合文化研究科   講師

    2000年4月 - 2002年3月

      詳細を見る

  • 東京大学   教養学部・大学院総合文化研究科   助手

    1995年8月 - 2000年3月

      詳細を見る

所属学協会

委員歴

  • 日本ソフトウェア科学会   副理事長  

    2018年6月 - 現在   

      詳細を見る

    団体区分:学協会

    researchmap

  • SSR 産学戦略的研究フォーラム 運営委員  

    2015年 - 2016年   

      詳細を見る

  • 情報処理学会 プログミング研究会 幹事  

    2014年4月   

      詳細を見る

  • 日本ソフトウェア科学会 理事  

    2013年6月   

      詳細を見る

  • Aspect-Oriented Software Association steering committee  

    2006年3月   

      詳細を見る

論文

▼全件表示

書籍等出版物

  • Proceedings of the 2nd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming (ARRAY'15). 査読

    Laurie Hendren, Hidehiko Masuhara, Mary Sheeran, Jan Vitek( 範囲: Proceedings of ACM SIGPLAN 2nd International Workshop on Libraries, Languages and Compilers for Array Programming)

    2015年6月  ( ISBN:9781450335843

     詳細を見る

    記述言語:英語   著書種別:学術書

    researchmap

  • Lecture notes in computer science, LNCS

    Gul Agha, Atsushi Igarashi, Naoki Kobayashi, Hidehiko Masuhara, Etsuya Shibayama, Kenjiro Taura, Satoshi Matsuoka, Akinori Yonezawa( 範囲: Concurrent Objects and Beyond)

    Springer-Verlag  2014年9月 

     詳細を見る

    記述言語:英語   著書種別:一般書・啓蒙書

    researchmap

  • 情報科学入門―Rubyを使って学ぶ

    増原 英彦, 東京大学情報教育連絡会( 担当: 共著)

    東京大学出版会  2010年6月  ( ISBN:4130624520

     詳細を見る

  • 情報: 東京大学教養学部テキスト

    川合 慧

    東京大学出版会  2006年1月  ( ISBN:4130624512

     詳細を見る

  • Reflection in Concurrent Object-Oriented Languages

    Formal Methods for Distributed Processing: An Object Oriented Approach (Cambridge University Press)  2001年 

     詳細を見る

  • Reflection in Concurrent Object-Oriented Languages

    Formal Methods for Distributed Processing: An Object Oriented Approach (Cambridge University Press)  2001年 

     詳細を見る

▼全件表示

MISC

  • (少し)反転してみた 査読

    増原英彦

    コンピュータソフトウェア   Vol. 35 ( No. 2 )   85--86   2018年5月

     詳細を見る

    記述言語:日本語   掲載種別:記事・総説・解説・論説等(学術雑誌)  

    researchmap

  • A Layer-based Approach to Hierarchical Dynamically-scoped Open Classes

    Matthias Springer, Hidehiko Masuhara, Robert Hirschfeld

    情報処理学会論文誌プログラミング(PRO)   10 ( 2 )   2017年2月

     詳細を見る

    記述言語:英語  

    Open classes are frequently used in programming languages such as Ruby and Smalltalk to add or change methods of a class that is defined in the same component or in a different one. They are typically used for bug fixing, multi-dimensional separation of concerns, or to modularly add new operations to an existing class. However, they suffer from modularity issues if globally visible: Other components using the same classes are then affected by their modifications. This work presents Extension Classes, a hierarchical approach for dynamically scoping such modifications in Ruby, built on top of ideas from Context-oriented Programming (COP). Our mechanism organizes modifications in classes and allows programmers to define their scope according to a class nesting hierarchy and based on whether programmers regard an affected class as a black box or not. Moreover, Extension Classes support modularizing modifications as mixins, such that they can be reused in other components.------------------------------This is a preprint of an article intended for publication Journal ofInformation Processing(JIP). This preprint should not be cited. Thisarticle should be cited as: Journal of Information Processing Vol.25(2017) (online)------------------------------Open classes are frequently used in programming languages such as Ruby and Smalltalk to add or change methods of a class that is defined in the same component or in a different one. They are typically used for bug fixing, multi-dimensional separation of concerns, or to modularly add new operations to an existing class. However, they suffer from modularity issues if globally visible: Other components using the same classes are then affected by their modifications. This work presents Extension Classes, a hierarchical approach for dynamically scoping such modifications in Ruby, built on top of ideas from Context-oriented Programming (COP). Our mechanism organizes modifications in classes and allows programmers to define their scope according to a class nesting hierarchy and based on whether programmers regard an affected class as a black box or not. Moreover, Extension Classes support modularizing modifications as mixins, such that they can be reused in other components.------------------------------This is a preprint of an article intended for publication Journal ofInformation Processing(JIP). This preprint should not be cited. Thisarticle should be cited as: Journal of Information Processing Vol.25(2017) (online)------------------------------

    CiNii Books

    researchmap

  • Declaring Constraints on Object-oriented Collections

    Tim Felgentreff, Robert Hirschfeld, Maria Graber, Alan Borning, Hidehiko Masuhara

    情報処理学会論文誌プログラミング(PRO)   9 ( 4 )   2016年9月

     詳細を見る

    記述言語:英語  

    Logic puzzles such as Sudoku are described by a set of properties that a valid solution must have. Constraints are a useful technique to describe and solve for such properties. However, constraints are less suited to express imperative interactions in a user interface for logic puzzles, a domain that is more readily expressed in the object-oriented paradigm. Object constraint programming provides a design to integrate constraints with dynamic, object-oriented programming languages. It allows developers to encode multi-way constraints over objects using existing, object-oriented abstractions. These constraints are automatically maintained at run-time. In this paper we present an application of this design to logic puzzles in the Squeak/Smalltalk programming environment, as well as an extension of the design and the formal semantics of Babelsberg to allow declaring constraints using the imperative collection API provided in Squeak. We argue that our implementation facilitates creating applications that use imperative construction of user interfaces and mutable program state as well as constraint satisfaction techniques for different parts of the system. The main advantage of our approach is that it moves the burden to maintain constraints from the developer to the runtime environment, while keeping the development experience close to the purely object-oriented approach.------------------------------This is a preprint of an article intended for publication Journal ofInformation Processing(JIP). This preprint should not be cited. Thisarticle should be cited as: Journal of Information Processing Vol.24(2016) No.6(online)------------------------------Logic puzzles such as Sudoku are described by a set of properties that a valid solution must have. Constraints are a useful technique to describe and solve for such properties. However, constraints are less suited to express imperative interactions in a user interface for logic puzzles, a domain that is more readily expressed in the object-oriented paradigm. Object constraint programming provides a design to integrate constraints with dynamic, object-oriented programming languages. It allows developers to encode multi-way constraints over objects using existing, object-oriented abstractions. These constraints are automatically maintained at run-time. In this paper we present an application of this design to logic puzzles in the Squeak/Smalltalk programming environment, as well as an extension of the design and the formal semantics of Babelsberg to allow declaring constraints using the imperative collection API provided in Squeak. We argue that our implementation facilitates creating applications that use imperative construction of user interfaces and mutable program state as well as constraint satisfaction techniques for different parts of the system. The main advantage of our approach is that it moves the burden to maintain constraints from the developer to the runtime environment, while keeping the development experience close to the purely object-oriented approach.------------------------------This is a preprint of an article intended for publication Journal ofInformation Processing(JIP). This preprint should not be cited. Thisarticle should be cited as: Journal of Information Processing Vol.24(2016) No.6(online)------------------------------

    CiNii Books

    researchmap

  • Proof of Soundness of Concurrent Separation Logic for GPGPU in Coq

    Izumi Asakura, Hidehiko Masuhara, Tomoyuki Aotani

    情報処理学会論文誌プログラミング(PRO)   8 ( 4 )   2015年12月

     詳細を見る

    記述言語:英語  

    We design a concurrent separation logic for GPGPU, namely GPUCSL, and prove its soundness by using Coq. GPUCSL is based on a CSL proposed by Blom et al., which is for automatic verification of GPGPU kernels, but employs different inference rules because the rules in Blom's CSL are not standard. For example, Blom's CSL does not have a frame rule. Our CSL is a simple extension of the original CSL, and it is more suitable as a basis of advanced properties proposed for other studies on CSLs. Our soundness proof is based on Vafeiadis' method, which is for a CSL with a fork-join concurrency model. The proof reveals two problems in Blom's approach in terms of soundness and extensibility. First, their assumption that thread ID independence of a kernel implies barrier divergence freedom does not hold. Second, it is not easy to extend their proof to other CSLs with a frame rule. Although our CSL covers only a subset of CUDA, our preliminary experiment shows that it is useful and expressive enough to verify a simple kernel with barriers.\n------------------------------This is a preprint of an article intended for publication Journal ofInformation Processing(JIP). This preprint should not be cited. Thisarticle should be cited as: Journal of Information Processing Vol.24(2016) No.1(online)------------------------------We design a concurrent separation logic for GPGPU, namely GPUCSL, and prove its soundness by using Coq. GPUCSL is based on a CSL proposed by Blom et al., which is for automatic verification of GPGPU kernels, but employs different inference rules because the rules in Blom's CSL are not standard. For example, Blom's CSL does not have a frame rule. Our CSL is a simple extension of the original CSL, and it is more suitable as a basis of advanced properties proposed for other studies on CSLs. Our soundness proof is based on Vafeiadis' method, which is for a CSL with a fork-join concurrency model. The proof reveals two problems in Blom's approach in terms of soundness and extensibility. First, their assumption that thread ID independence of a kernel implies barrier divergence freedom does not hold. Second, it is not easy to extend their proof to other CSLs with a frame rule. Although our CSL covers only a subset of CUDA, our preliminary experiment shows that it is useful and expressive enough to verify a simple kernel with barriers.\n------------------------------This is a preprint of an article intended for publication Journal ofInformation Processing(JIP). This preprint should not be cited. Thisarticle should be cited as: Journal of Information Processing Vol.24(2016) No.1(online)------------------------------

    CiNii Books

    researchmap

  • Rubyの20年, Rubyのこれから

    松本行弘, 加藤和彦, 千葉滋, 増原英彦, 小野寺民也, 笹田耕一, 高橋征義

    情報処理学会会誌   Vol. 56 ( No. 12 )   1192 - 1197   2015年12月

     詳細を見る

    記述言語:日本語   掲載種別:記事・総説・解説・論説等(学術雑誌)   出版者・発行元:情報処理学会  

    researchmap

  • OCommand:OCaml上の型安全なシェルプログラミングのための領域特化言語の提案

    朝倉 泉, 増原 英彦, 青谷 知幸

    情報処理学会論文誌プログラミング(PRO)   7 ( 5 )   14 - 14   2014年12月

     詳細を見る

    記述言語:日本語   出版者・発行元:一般社団法人情報処理学会  

    OCamlプログラム中からシェルコマンドを型安全に実行するための領域特化言語OCommandを提案する.OCommandはコマンドの仕様である,出力行の各欄の型とコマンドオプションによって起きる変化の記述を受け取り,コマンド起動関数とコマンドオプションを表す値定義を持つOCamlモジュールを生成する.生成された起動関数は,複数のオプション値を受け取りコマンドを実行し,オプションに応じてコマンド出力行をパースして型付きのフィールドからなるレコードを返す.出力行レコードにおけるフィールドの型や存在の変化を静的に検査するため,一般化代数的データ型を用いた.Camlp4を用いて実現した処理系を用いて,これまでにlsやpsなどのコマンドを扱えることを確めている.This presentation proposes We proposes a domain-specific language (DSL), called OCommand, for executing shell commands from within OCaml programs in a type safe way. OCommand takes a command specification consisting of types of output columns from the command and effects of command options on the types of the columns, and generates an OCaml module that contains a command-executing function and a set of values representing the command options. The command-executing function takes options as arguments, runs the command, parses the output lines, and returns them as a list of records. In order to statically-check existence and types of fields of the output record that can be changed by command options, we used generalized algebraic data type. With our implementation constructed by using Camlp4, we successfully handle typical Unix commands like ls and ps by using OCommand.

    CiNii Books

    researchmap

  • Aspect Interfaces: Towards Separate Type-checking of Aspect-oriented Programs with Inter-type Declarations

    Manabu Toyama, Tomoyuki Aotani, Eric Bodden, Hidehiko Masuhara, Eric Tanter

    情報処理学会論文誌プログラミング(PRO)   6 ( 4 )   79 - 79   2013年12月

     詳細を見る

    記述言語:英語  

    This presentation discusses about separate type-checking of aspect-oriented programs with inter-type declarations. Inter-type declarations is one of the mechanisms that achieve aspect-oriented programming and supported by AspectJ. It enables aspects to introduce methods and fields to classes and interfaces. Separate type-checking is a method that, given a set of modules and their interfaces, ensures the program consists of the modules is type safe if each module is type safe with respect to the interfaces. Although inter-type declarations is useful, it makes aspects and classes hard to be type-checked separately. In other words, if a class depends on the introduced methods and/or fields (e.g., invoking or accessing them), its type safety cannot be assured without aspects because the signatures of the introduced methods or fields are absent. In this presentation, we propose to achieve separate type-checking of classes and aspects with inter-type declarations using Aspect Interfaces, which are contracts between aspects and classes. Aspect interfaces describe the signatures of the introduced methods. Introduced classes, which are the target classes of the inter-type declarations, specifies aspect interfaces so that the classes provide the signatures of introduced methods along with the methods within the classes. Then each calls to the introduced methods can be then type checked normally. Introducing aspects, which provide the bodies of the introduced methods, specifies aspect interfaces that contains the signatures of the introduced methods so that it is easy to check every introduced method in the aspect interfaces is actually provided by the introducing aspect. When composing aspects and classes (i.e., weaving aspects), it is enough to ensure type safety to check whether or not at least one introducing aspect exists for each aspect interface along with the usual linking-time type-checking.This presentation discusses about separate type-checking of aspect-oriented programs with inter-type declarations. Inter-type declarations is one of the mechanisms that achieve aspect-oriented programming and supported by AspectJ. It enables aspects to introduce methods and fields to classes and interfaces. Separate type-checking is a method that, given a set of modules and their interfaces, ensures the program consists of the modules is type safe if each module is type safe with respect to the interfaces. Although inter-type declarations is useful, it makes aspects and classes hard to be type-checked separately. In other words, if a class depends on the introduced methods and/or fields (e.g., invoking or accessing them), its type safety cannot be assured without aspects because the signatures of the introduced methods or fields are absent. In this presentation, we propose to achieve separate type-checking of classes and aspects with inter-type declarations using Aspect Interfaces, which are contracts between aspects and classes. Aspect interfaces describe the signatures of the introduced methods. Introduced classes, which are the target classes of the inter-type declarations, specifies aspect interfaces so that the classes provide the signatures of introduced methods along with the methods within the classes. Then each calls to the introduced methods can be then type checked normally. Introducing aspects, which provide the bodies of the introduced methods, specifies aspect interfaces that contains the signatures of the introduced methods so that it is easy to check every introduced method in the aspect interfaces is actually provided by the introducing aspect. When composing aspects and classes (i.e., weaving aspects), it is enough to ensure type safety to check whether or not at least one introducing aspect exists for each aspect interface along with the usual linking-time type-checking.

    CiNii Books

    researchmap

  • Introducing Composite Layers in EventCJ

    Tetsuo Kamina, Tomoyuki Aotani, Hidehiko Masuhara

    情報処理学会論文誌プログラミング(PRO)   6 ( 1 )   1 - 8   2013年1月

     詳細を見る

    記述言語:英語  

    Context-oriented programming (COP) languages provide a modularization mechanism called a layer, which modularizes behaviors that are executable under specific contexts, and specify a way to dynamically switch behaviors. However, the correspondence between real-world contexts and units of behavioral variations is not simple. Thus, in existing COP languages, context-related concerns can easily be tangled within a piece of layer activation code. In this paper, we address this problem by introducing a new construct called a composite layer, which declares a proposition in which ground terms are given other layer names (true when active). A composite layer is active only when the proposition is true. We introduce this construct into EventCJ, out COP language, and verify this approach by conducting two case studies involving a context-aware Twitter client and a program editor. The results obtained in our approach show that the layer activation code is simple and free from tangled context-related concerns. We also discuss the efficient implementation of this mechanism in EventCJ.Context-oriented programming (COP) languages provide a modularization mechanism called a layer, which modularizes behaviors that are executable under specific contexts, and specify a way to dynamically switch behaviors. However, the correspondence between real-world contexts and units of behavioral variations is not simple. Thus, in existing COP languages, context-related concerns can easily be tangled within a piece of layer activation code. In this paper, we address this problem by introducing a new construct called a composite layer, which declares a proposition in which ground terms are given other layer names (true when active). A composite layer is active only when the proposition is true. We introduce this construct into EventCJ, out COP language, and verify this approach by conducting two case studies involving a context-aware Twitter client and a program editor. The results obtained in our approach show that the layer activation code is simple and free from tangled context-related concerns. We also discuss the efficient implementation of this mechanism in EventCJ.

    CiNii Books

    researchmap

  • Activation Order Analysis of Context-oriented Programs Based on Resource Usage Analysis

    Tomoyuki Aotani, Tetsuo Kamina, Hidehiko Masuhara

    情報処理学会論文誌プログラミング(PRO)   6 ( 1 )   29 - 29   2013年1月

     詳細を見る

    記述言語:英語  

    Context-oriented programming (COP) languages help programmers to modularize behavioral variations that depend on contexts such execution environments and internal states of the program. The programmer specifies when and which variations get activated explicitly. This paper addresses the following two issues in context-oriented programs. First, it is hard to check whether each variation is activated according to the specification of the program. Second, programs written in COP languages are generally not efficient from the view point of runtime performance, because there is an overhead to check whether each variation is activated at runtime. All these issues fall into the problem to find a sound order of activation with respect to the specification of the program. As a foundation to address the problem, this paper proposes a type-based analysis to check whether or not the program activates each behavioral variation correctly, i.e., the inferred order is a subset of the one described in the specification. The analysis is based on the resource usage analysis proposed by Igarashi and Kobayashi. It models a value that records a set of active variations as a resource, and an operation that activates a variation as use.Context-oriented programming (COP) languages help programmers to modularize behavioral variations that depend on contexts such execution environments and internal states of the program. The programmer specifies when and which variations get activated explicitly. This paper addresses the following two issues in context-oriented programs. First, it is hard to check whether each variation is activated according to the specification of the program. Second, programs written in COP languages are generally not efficient from the view point of runtime performance, because there is an overhead to check whether each variation is activated at runtime. All these issues fall into the problem to find a sound order of activation with respect to the specification of the program. As a foundation to address the problem, this paper proposes a type-based analysis to check whether or not the program activates each behavioral variation correctly, i.e., the inferred order is a subset of the one described in the specification. The analysis is based on the resource usage analysis proposed by Igarashi and Kobayashi. It models a value that records a set of active variations as a resource, and an operation that activates a variation as use.

    CiNii Books

    researchmap

  • オブジェクト毎の層遷移を宣言的に記述できる文脈指向言語EventCJ

    青谷 知幸, 紙名 哲生, 増原 英彦

    日本ソフトウェア科学会大会論文集   28   1 - 11   2011年9月

     詳細を見る

    記述言語:日本語   出版者・発行元:[日本ソフトウェア科学会]  

    CiNii Books

    researchmap

  • ユースケースを用いた文脈指向ソフトウェア開発

    紙名 哲生, 青谷 知幸, 増原 英彦, 玉井 哲雄

    ソフトウェアエンジニアリングシンポジウム2011論文集   2011   1 - 8   2011年9月

     詳細を見る

    記述言語:日本語  

    researchmap

  • Traceglasses:欠陥の効率良い発見手法を実現するトレースに基づくデバッガ

    櫻井 孝平, 増原 英彦, 古宮 誠一

    情報処理学会論文誌プログラミング(PRO)   3 ( 3 )   1 - 17   2010年6月

     詳細を見る

    記述言語:日本語   出版者・発行元:情報処理学会  

    現状のデバッグはプログラムの不正な動作を理解するために多くの時間とコストを必要とする.本研究は実行トレースを使った新たな欠陥の発見手法を提案することでデバッグの効率化を図り,トレースに基づく Java のためのデバッガである Traceglasses として実装する.Traceglasses は,プログラムの実行中のイベントを記録したトレースの対話的な表示と検索が可能で,利用者がプログラムの動作を遡って欠陥を発見することを支援する. Traceglasses は,トレースをメソッド呼び出し関係により木構造に変換し,ブレークポイントデバッガに見られるようなステップ操作を行わずに,トレースの表示を行う.また,指定されたオブジェクトに対する操作のみを抽出したトレースを表示できる.これらの特徴により,利用者は,実行順に並んだ膨大なトレースに対して局所的および大域的に,必要な部分だけを理解し,効率良く欠陥を発見できる.Traceglasses の実装は,木構造を持つ膨大なトレースを効率良く探索し表示するために,専用のデータ構造を構築する.本発表では,Traceglasses の実装により実際のテキスト整形プログラムの欠陥をプログラムの出力から遡り発見する事例を説明し,提案した欠陥の発見手法と実装について実用上の有用性を示す.Debugging requires considerable time and effort to understand incorrect behavior of a program. We developed a trace-based debugger called Traceglasses for Java. It provides the programmer a better means of navigating an execution history so that he or she can efficiently spot a defect in the program. First, the developers can browse an execution trace namely a sequence of events in the execution, with a view of local trace information, and a function to jump to a distant point in the trace. A local trace information is shown as a tree structure of method call, which liberate the programmers from stepped program executions, which are inevitable with breakpoint-based debuggers. In order to globally jump to a distant point in a trace the programmer can restrict a trace view to an object. Our implementation achieved efficient recording and displaying of traces by designing a dedicated data structure. In this presentation, we demonstrate usefulness of our debugger through a case study that is to find a defect in a practical text-formatiing program.

    CiNii Books

    researchmap

    その他リンク: http://id.nii.ac.jp/1001/00069718/

  • ユーザー定義されたプログラム解析を利用するアスペクト指向プログラムのコンパイル手法(サイバー増大ページ論文概要,<特集>新しいソフトウェアの実現,サイバー増大号)

    青谷 知幸, 増原 英彦, Tomoyuki Aotani, Hidehiko Masuhara, 東京大学大学院総合文化研究科, 東京大学大学院総合文化研究科

    コンピュータソフトウェア = Computer software   23 ( 2 )   109 - 109   2006年4月

     詳細を見る

    記述言語:日本語  

    CiNii Books

    researchmap

  • ASB : A Framework for Implementing Extensible Aspect - oriented Programming Languages

    Naoyasu Ubayashi, Hidehiko Masuhara, Tetsuo Tamai

    情報処理学会論文誌プログラミング(PRO)   45 ( 12 )   98 - 98   2004年11月

     詳細を見る

    記述言語:英語   出版者・発行元:一般社団法人情報処理学会  

    Mechanisms in aspect-oriented programming (AOP) can be characterized by a join point model consisting of the join points a means of identifying the join points and a means of effecting at the join points. Each of current AOP languages is based on a few fixed set of join point models. Many different join point models have been proposed and they are still evolving so that they could better modularize various crosscutting concerns. There are several AOP systems such as AspectJ Hyper/J and Demeter that deal with different kinds of crosscutting concerns. Moreover there are crosscutting concerns specific to certain kinds of user applications and these concerns may not be modularized with current join point models. Extensible AOP languages are needed to address this problem. In this paper a framework for implementing extended join point models is proposed. The framework called X-ASB (eXtensible Aspect Sand Box) is based on a common framework for modeling different join point models proposed by Masuhara and Kiczales. Using X-ASB programmers can rapid-prototype new join point models for designing and evaluating new AOP languages. We believe that clarifying programming interfaces for extending join point models is an important milestone towards computational reflection for AOP.Mechanisms in aspect-oriented programming (AOP) can be characterized by a join point model consisting of the join points, a means of identifying the join points, and a means of effecting at the join points. Each of current AOP languages is based on a few fixed set of join point models. Many different join point models have been proposed, and they are still evolving so that they could better modularize various crosscutting concerns. There are several AOP systems, such as AspectJ, Hyper/J, and Demeter, that deal with different kinds of crosscutting concerns. Moreover, there are crosscutting concerns specific to certain kinds of user applications, and these concerns may not be modularized with current join point models. Extensible AOP languages are needed to address this problem. In this paper, a framework for implementing extended join point models is proposed. The framework, called X-ASB (eXtensible Aspect Sand Box), is based on a common framework for modeling different join point models proposed by Masuhara and Kiczales. Using X-ASB, programmers can rapid-prototype new join point models for designing and evaluating new AOP languages. We believe that clarifying programming interfaces for extending join point models is an important milestone towards computational reflection for AOP.

    CiNii Books

    researchmap

  • Reasoningを容易にする並列自己反映言語のメタオブジェクトの設計

    増原 英彦, 米澤 明憲, Hidehiko Masuhara, Akinori Yonezawa, 東京大学大学院総合分化研究科広域システム科学系情報・図形科学, Depertment of Graphics and Computer Science University of Tokyo, Depertment of Information Science University of Tokyo

    コンピュータソフトウェア = Computer software   15 ( 4 )   342 - 346   1998年7月

     詳細を見る

    記述言語:日本語   出版者・発行元:日本ソフトウェア科学会  

    CiNii Books

    researchmap

    その他リンク: https://projects.repo.nii.ac.jp/?action=repository_uri&item_id=288004

  • 並列自己反映言語システムの部分計算によるコンパイル技法

    増原 英彦, 松岡 聡, 米澤 明憲

    情報処理学会論文誌   37 ( 7 )   1290 - 1298   1996年7月

     詳細を見る

    記述言語:日本語   出版者・発行元:一般社団法人情報処理学会  

    並列自己反映言語システムは 並列アプリケーションの最適化等を簡潔に記述するメタプログラミングの機能を持つ一方 解釈実行に基づくモデルから来る効率上の問題を持つ.本論文では部分計算を用いた並列自己反映言語のコンパイル技法を提案する.この技法では 副作用について拡張された部分計算やプログラム変換を適用することで基本的に解釈実行を除去し 直接実行のみとする.並列計算機上の実験では 並列アプリケーションのメタレベルに記述された最適化が 7?17%のオーバヘッドで実行できるという結果が得られている.Meta-programmability of parallel reflective language systems is beneficial for parallel applications to describe optimizations, etc. On the other hand, their execution model based on interpretation is an obstacle to efficient implementation. We propose a compilation technique for parallel reflective languages using partial evaluation. The technique, which effectively eliminates program interpretation, includes partial evaluation extended for side-effects, and several program transformation techniques. Benchmarks on a MPP show that parallel applications with meta-level optimizations can be executed with small overhead.

    CiNii Books

    researchmap

    その他リンク: http://id.nii.ac.jp/1001/00013611/

  • Implementing Parallel Language Constructs Using a Reflective Object-Oriented Language

    MASUHARA Hidehiko

    Reflection'96 Conference, San Francisco, California   1996年

     詳細を見る

  • 並列オブジェクト指向言語ABCL/fのメタレベルアーキテクチャ

    増原 英彦, 松岡 聡, 米澤 明憲

    情報処理学会研究報告. PRO, [プログラミング]   95 ( 82 )   65 - 72   1995年8月

     詳細を見る

    記述言語:日本語   出版者・発行元:一般社団法人情報処理学会  

    並列アプリケーションのための機能拡張や最適化を行う手段として、自己反映計算によるメタレベルプログラミングが有効であることが認められつつあるが、実際のアプリケーションに応用した場合の有効性は、メタアーキテクチャの設計に大きく左右される。現在我々は、並列オブジェクト指向言語ABCL/fのメタアーキテクチャを設計している。特徴は、メタインタプリタ・メタオブジェクトによる拡張、annotationによるメタレベルへの指示、継承によるメタプログラムの再利用などである。本論文では、いくつかの並列プログラムにおける機能拡張の例を挙げ、それらがどのように記述されるかを検討することで、メタアーキテクチャの有効性を確かめる。

    CiNii Books

    researchmap

  • 高並列計算における動的資源管理のための自己反映並列オブジェクト指向言語

    増原 英彦, 松岡 聡, 米澤 明憲

    情報処理学会研究報告. [プログラミング-言語基礎実践-]   94 ( 65 )   57 - 64   1994年7月

     詳細を見る

    記述言語:英語   出版者・発行元:一般社団法人情報処理学会  

    データや通信パターンが実行時のみに定まるような,不規則な並列アプリケーションを高並列計算機上で効率よく実行するためには,計算資源の実行時管理ポリシーが重要である.本論文では,様々な動的資源管理システムを柔軟に記述するための自己反映(リフレクティブ)並列オブジェクト指向言語ABCL/R3を提案する.ABCL/R3では,抽象化されたシステムのメタレベルに対する変更・拡張をアプリケーションから隠蔽された形で記述することで,スケジューリング・オブジェクト配置・負荷分散などの資源管理が柔軟に提供できる.本論文ではまた,並列計算機AP1000上に作成したプロトタイプシステムを用いて,予備的な評価を行った.

    CiNii Books

    researchmap

  • 自己反映並列オブジェクト指向言語ABCL/R2の設計と実現 (<特集>自己反映計算(リフレクション))

    増原 英彦, 松岡 聡, 渡部 卓雄, Hidehiko Masuhara, Satoshi Matsuoka, Takuo Watanabe, 東京大学理学部情報科学科:(現)東京大学工学部計数工学科, 東京大学理学部情報科学科:(現)北陸先端科学技術大学院大学情報科学研究科, Department of Information Science The University of Tokyo., Department of Information Science The University of Tokyo:(Present address) Department of Mathematical Engineering The University of Tokyo, Department of Information Science The University of Tokyo:(Present address) School of Information Science Japan Advanced Institute of Science and Technology

    コンピュータソフトウェア = Computer software   11 ( 3 )   175 - 192   1994年5月

     詳細を見る

    記述言語:日本語   出版者・発行元:日本ソフトウェア科学会  

    並行オブジェクトの間で共有される計算資源の概念をとり入れた自己反映計算モデルであるHybrid Group Architectureと,その記述言語ABCL/R2を提案した.ABCL/R2では,オブジェクト単位の自己反映計算と,オブジェクトグループ単位での自己反映計算の両方が可能なため,スケジューリングのような,並列・分散システムにおける共有計算資源に関する制御を,本来の計算から隠蔽された形をとりつつ,言語の枠内から柔軟に記述できる.また,自己反映システムの効率的な処理系は,作成が困難とされていたが,部分コンパイル・段階的なメタレベル生成・軽量オブジェクトなどの技法による効率的な処理系の作成方法を示した.実際に共有記憶型並列計算機上に作成したABCL/R2処理系では,自己反映計算を行うことによる速度低下を,行わない場合の10倍以下に抑えられ,非自己反映計算の実行速度は,非自己反映処理系とほぼ同等であるというベンチマーク結果を得た.

    CiNii Books

    researchmap

    その他リンク: https://projects.repo.nii.ac.jp/?action=repository_uri&item_id=287616

  • IMSA'92国際リフレクションワークショップ

    松岡 聡, 増原 英彦, Satoshi Matsuoka, Hidehiko Masuhara, 東京大学理学部情報科学科, 東京大学理学部情報科学科, Department of Information Science the University of Tokyo., Department of Information Science the University of Tokyo.

    コンピュータソフトウェア = Computer software   10 ( 4 )   364 - 370   1993年7月

     詳細を見る

    記述言語:日本語   出版者・発行元:日本ソフトウェア科学会  

    CiNii Books

    researchmap

    その他リンク: https://projects.repo.nii.ac.jp/?action=repository_uri&item_id=287545

▼全件表示

講演・口頭発表等

  • デザインレシピに基づいた初学者のための学習環境

    能勢純哉, 叢悠悠, 増原英彦

    第24回プログラミングおよびプログラミング言語ワークショップ(PPL 2022)  2022年3月 

     詳細を見る

    開催年月日: 2022年3月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • エラー生成クイズの提案と実施様子の観察結果の紹介

    角田和広, 増原英彦, 叢 悠悠

    第24回プログラミングおよびプログラミング言語ワークショップ(PPL 2022)  2022年3月 

     詳細を見る

    開催年月日: 2022年3月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • Intrinsically-Typed Interpreters for Effectful and Coeffectful Languages (discussion) 国際会議

    Shouki Tsuyama, Youyou Cong, Hidehiko Masuhara

    WITS 2022  2022年1月 

     詳細を見る

    開催年月日: 2022年1月

    記述言語:英語   会議種別:ポスター発表  

    researchmap

  • Intrinsically-Typed Interpreters for Effectful and Coeffectful Languages

    Syouki Tsuyama, Youyou Cong, Hidehiko Masuhara

    First Workshop on the Implementation of Type Systems (WITS 2022)  2022年1月 

     詳細を見る

    開催年月日: 2022年1月

    記述言語:英語   会議種別:口頭発表(一般)  

    開催地:Philadelphia, PA  

    researchmap

  • 型安全性の証明付きインタプリタのための汎用ライブラリの実装へ向けて

    津山勝輝, 叢悠悠, 増原英彦

    日本ソフトウェア科学会第38回大会  2021年9月 

     詳細を見る

    開催年月日: 2021年9月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • エラーを起こさせる初学者向けプログラミングドリルの提案

    角田和広, 増原英彦, 叢 悠悠

    日本ソフトウェア科学会第38回大会  2021年9月 

     詳細を見る

    開催年月日: 2021年9月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • Towards an Automated Code Rewriting Tool for Alleviating Concurrency Problems in the Go Programming Language

    Fumi Takeuchi, 増原 英彦, Raffi Khatchadourian, 叢 悠悠

    日本ソフトウェア科学会第38回大会  2021年9月 

     詳細を見る

    開催年月日: 2021年9月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • Design with Blocks, Code in Text: A Hybrid Environment for Program Design Recipe 国際会議

    Junya Nose, Youyou Cong, Hidehiko Masuhara

    The Scheme and Functional Programming Workshop (Scheme '21)  2021年8月 

     詳細を見る

    開催年月日: 2021年8月

    記述言語:英語   会議種別:口頭発表(一般)  

    researchmap

  • Contextual Polymorphism Meets Bidirectional Effects 国際会議

    Kazuki Niimi, Youyou Cong, Hidehiko Masuhara, Jonathan Immanuel Brachthäuser

    The 6th Workshop on Type-Driven Development (TyDe 2021)  2021年8月 

     詳細を見る

    開催年月日: 2021年8月

    記述言語:英語   会議種別:口頭発表(一般)  

    researchmap

  • Koka言語に対するエフェクト割り当て最適化

    古殿 直也, 叢 悠悠, 増原 英彦

    第23回プログラミングおよびプログラミング言語ワークショップ(PPL 2021)  2021年3月 

     詳細を見る

    開催年月日: 2021年3月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • デザインレシピに基づいたプログラミングための開発環境の構築に向けて

    能勢 純弥, 叢 悠悠, 増原 英彦

    第23回プログラミングおよびプログラミング言語ワークショップ(PPL 2021)  2021年3月 

     詳細を見る

    開催年月日: 2021年3月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • 代数的エフェクトを特徴に持つ計算体系へのエフェクト強制の導入と健全性の証明

    池守 和槻, 叢 悠悠, 増原 英彦

    第23回プログラミングおよびプログラミング言語ワークショップ(PPL 2021)  2021年3月 

     詳細を見る

    開催年月日: 2021年3月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • An Interpreter Design for Supporting Different JIT Compilations in RPython Framework

    伊澤侑祐, 増原英彦, 叢悠悠

    第23回プログラミングおよびプログラミング言語ワークショップ(PPL 2021)  2021年3月 

     詳細を見る

    開催年月日: 2021年3月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • 汎言語的ライブプログラミング環境のためのデータ構造解析手法

    高橋 修祐, 伊澤 侑祐, 増原 英彦, 叢 悠悠

    第23回プログラミングおよびプログラミング言語ワークショップ(PPL 2021)  2021年3月 

     詳細を見る

    開催年月日: 2021年3月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • Toward Automated Feedback in HtDP-based Programming: A DSL-based Approach 国際会議

    Junya Nose, Youyou Cong, Hidehiko Masuhara

    10th International Workshop on Trends in Functional Programming in Education (TFPIE 2021)  2021年2月 

     詳細を見る

    開催年月日: 2021年2月

    記述言語:英語   会議種別:口頭発表(一般)  

    researchmap

  • デザインレシピに基づいたプログラミング環境の実装に向けて

    能勢純哉, 叢悠悠, 増原英彦

    日本ソフトウェア科学会第37回大会  2020年9月 

     詳細を見る

    開催年月日: 2020年9月

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • デザインレシピに沿ったプログラミング環境の実装

    能勢純哉, 叢悠悠, 増原英彦

    第22回プログラミングおよびプログラミング言語ワークショップ(PPL 2020)  2020年3月 

     詳細を見る

    開催年月日: 2020年3月

    記述言語:日本語   会議種別:ポスター発表  

    開催地:佐賀  

    デザインレシピとは、プログラミングの手順を示したものである。このアイディアに基づいた環境は既にいくつかあるが、プログラムの構造の決定と網羅性の高いテストの作成へのサポートが不十分である。これらの問題を解決するために、本研究では、データ構造の分析を誘導し、その結果を使って場合分けやテストの作成を行う。また、今後の展望として、プログラム合成を用いたフィードバック機能について検討する。

    researchmap

  • RPythonを用いたErlang仮想機械PyrlangにおけるJITコンパイル方針の改良

    Ruochen Huang, 増原英彦, 青谷知幸

    第18回プログラミングおよびプログラミング言語ワークショップ(PPL2016)  2016年 

     詳細を見る

    開催年月日: 2016年3月

    記述言語:日本語   会議種別:ポスター発表  

    開催地:岡山県玉野市  

    researchmap

  • 多次元的文脈指向言語Korzのメソッドディスパッチの改善

    渡邉恵大, 増原英彦, 青谷知幸

    第18回プログラミングおよびプログラミング言語ワークショップ(PPL2016)  2016年 

     詳細を見る

    開催年月日: 2016年3月

    記述言語:日本語   会議種別:ポスター発表  

    開催地:岡山県玉野市  

    researchmap

  • Context-oriented programming and units of adaptation

    Hidehiko Masuhara

    NII Shonan Meeting on Engineering Adaptive Software Systems(EASSy)  2016年 

     詳細を見る

    開催年月日: 2015年9月

    記述言語:英語   会議種別:口頭発表(一般)  

    開催地:Kanagawa, Hayama  

    researchmap

  • Toward a Multi-Language and Multi-Environment Framework for Live Programming 国際会議

    Hidehiko Masuhara, Shusuke Takahashi, Yusuke Izawa, Youyou Cong

    LIVE 2020  2020年11月 

     詳細を見る

    記述言語:英語   会議種別:口頭発表(一般)  

    researchmap

  • On Teaching Type Systems as Macros 国際会議

    Youyou Cong, Naoya Furudono, Hidehiko Masuhara

    The Scheme and Functional Programming Workshop (Scheme '20)  2020年8月 

     詳細を見る

    記述言語:英語   会議種別:口頭発表(一般)  

    researchmap

  • Automated Refactoring of Legacy Java Software to Default Methods

    Raffi Khatchadourian, Hidehiko Masuhara

    2018年9月 

     詳細を見る

    記述言語:英語   会議種別:口頭発表(招待・特別)  

    researchmap

  • CertSkel: 高水準GPGPU言語のための形式検証済みコンパイラ

    朝倉泉, 増原英彦, 青谷知幸

    2017年9月 

     詳細を見る

    記述言語:日本語   会議種別:口頭発表(一般)  

    researchmap

  • ライブプログラミング環境によるプログラマの行動と生産性への影響に関する実証研究

    今井朝貴, 増原英彦, 青谷知幸

    2017年3月 

     詳細を見る

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • 証明支援器Coqを使ったプログラミング言語の操作的意味論に基づく型安全性の拡張可能な形式化の研究

    奥河諒, 青谷知幸, 増原英彦

    2017年3月 

     詳細を見る

    記述言語:日本語   会議種別:口頭発表(一般)  

    researchmap

  • プログラミング言語へのバージョンの導入の研究

    田辺裕大, 青谷知幸, 増原英彦

    2017年3月 

     詳細を見る

    記述言語:日本語   会議種別:口頭発表(一般)  

    researchmap

  • Iterative Stencil Computations in Ruby on GPUs

    Matthias Springer, Peter Wauligmann, Hidehiko Masuhara

    2017年3月 

     詳細を見る

    記述言語:英語   会議種別:ポスター発表  

    researchmap

  • 実用的なライブプログラミングに向けて

    増原英彦

    2017年9月 

     詳細を見る

    記述言語:日本語   会議種別:口頭発表(招待・特別)  

    researchmap

  • Automated Refactoring of Legacy Java Software to Default Methods

    Raffi Khatchadourian, Hidehiko Masuhara

    2017年9月 

     詳細を見る

    記述言語:英語   会議種別:口頭発表(招待・特別)  

    researchmap

  • メタ混合JITコンパイラの提案

    伊澤侑祐, 増原英彦, 青谷知幸

    2017年3月 

     詳細を見る

    記述言語:日本語   会議種別:口頭発表(一般)  

    researchmap

  • Kani-CUDAによるGPGPUプログラムの合成

    蟹暁, 朝倉泉, 増原英彦, 青谷知幸

    2017年3月 

     詳細を見る

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • 検証済みコンパイラCertSkelによるGPGPUプログラム開発

    朝倉泉, 増原英彦, 青谷知幸

    2017年3月 

     詳細を見る

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

  • Kanonライブプログラミング環境を用いたデータ構造のプログラミング

    岡明央, 増原英彦, 今井朝貴, 青谷知幸

    2017年3月 

     詳細を見る

    記述言語:日本語   会議種別:ポスター発表  

    researchmap

▼全件表示

受賞

  • 第19回研究論文賞 (2014年度)

    2015年9月   日本ソフトウェア科学会  

     詳細を見る

  • 第17回研究論文賞

    2013年9月   日本ソフトウェア科学会   ContextJ: Java上の文脈指向プログラミング

    Malte Appeltauer, Robert Hirschfeld, Michael Haupt, 増原 英彦

     詳細を見る

  • 論文賞

    2011年   情報処理学会   Traceglasses:欠陥の効率良い発見手法を実現するトレースに基づくデバッガ

    櫻井孝平, 増原英彦, 古宮誠一

     詳細を見る

  • 科学技術分野の文部科学大臣表彰・若手科学者賞

    2009年  

     詳細を見る

    受賞国:日本国

    2009年度

    researchmap

  • 日本ソフトウェア科学会解説論文賞

    2008年  

     詳細を見る

    受賞国:日本国

    2008年度

    researchmap

  • 情報処理学会論文誌論文賞

    1996年  

     詳細を見る

    受賞国:日本国

    researchmap

▼全件表示

共同研究・競争的資金等の研究課題

  • 高い抽象度レベルを持つ宣言的分散プログラミング言語の実現と高度化

    研究課題/領域番号:24K02922  2024年4月 - 2029年3月

    日本学術振興会  科学研究費助成事業  基盤研究(B)

    紙名 哲生, 青谷 知幸, 増原 英彦

      詳細を見る

    配分額:18590000円 ( 直接経費:14300000円 、 間接経費:4290000円 )

    researchmap

  • 言語処理系フレームワークによる性能と開発効率を両立させる言語基盤の創出

    研究課題/領域番号:23H03368  2023年4月 - 2028年3月

    日本学術振興会  科学研究費助成事業  基盤研究(B)

    増原 英彦, 叢 悠悠

      詳細を見る

    配分額:18460000円 ( 直接経費:14200000円 、 間接経費:4260000円 )

    researchmap

  • 仮想空間と現実世界の融合を支援する反応的計算基盤の構築

    研究課題/領域番号:21H03418  2021年4月 - 2025年3月

    日本学術振興会  科学研究費助成事業  基盤研究(B)

    紙名 哲生, 増原 英彦

      詳細を見る

    配分額:12740000円 ( 直接経費:9800000円 、 間接経費:2940000円 )

    researchmap

  • 仮想空間と現実世界の融合を支援する反応的計算基盤の構築

    研究課題/領域番号:23K21656  2021年4月 - 2025年3月

    日本学術振興会  科学研究費助成事業  基盤研究(B)

    紙名 哲生, 増原 英彦

      詳細を見る

    配分額:12740000円 ( 直接経費:9800000円 、 間接経費:2940000円 )

    永続シグナルを、Webフロントエンドから利用できるようにした。特に、前年度において構築したJavaScript内の永続シグナルDSLにおける問題点(永続シグナルが多プロセス間(ネットワーク上の他ホスト含む)で共有されたときに、他プロセスで更新される永続シグナルの値更新時の即時的な計算ができない)を解決し、JavaScriptにおける永続シグナルの仕組みを、SignalJのそれと同等なものとした。これにより、永続シグナルはバックエンド/フロントエンドの区別無く利用するものとなり、本研究が目指すものは多層プログラミング言語からサーバレスな言語へと変貌した。
    <BR>
    また、分散永続シグナルの理論や実装の精緻化に取り組んだ。実装としては、ある時点以前の永続シグナル間の内容を整合させるチェックポイント機構を実現した。理論としては、初年度に取り組んだSignalJの核言語を基に、個々の永続シグナルをプロセスとしてモデル化したプロセス計算(永続シグナル間の値伝播を表現)をその核言語に統合し、シングルスレッド抽象(SignalJユーザの視点)に並行プロセスとしての永続シグナル(値伝播の視点)を取り入れた新たな計算体系を実現した。この体系において、チェックポイント機構の整合性(チェックポイントとして記録された時刻印以前の値伝播の記録は、永続シグナルの定義と必ず整合する)を保証する定理を証明した(投稿中)。
    <BR>
    永続シグナルは時系列データベースを内包する仕組みであるが、その存在は暗黙的であるため、永続シグナルを定義する際に時系列データベースを意識することはない。そのため、永続シグナルの定義を変更する際には、時系列データベースのスキーマが暗黙的に変わらなければならない場合がある。それを実現するため、既存のデータベーススキーマ進化言語をもとに、永続シグナルのための進化言語について、理論的な検討を行った(投稿中)。

    researchmap

  • Raffi Takvor KHATCHADOURIAN

    2021年 - 2022年

    その他補助金  外国人研究者招へい(再招へい)プログラム

      詳細を見る

  • 多言語・多開発環境に対応する実用的ライブプログラミングシステムの構築手法

    研究課題/領域番号:20K21790  2020年7月 - 2023年3月

    日本学術振興会  科学研究費助成事業  挑戦的研究(萌芽)

    増原 英彦

      詳細を見る

    配分額:6110000円 ( 直接経費:4700000円 、 間接経費:1410000円 )

    研究計画に従ってライブプログラミング環境Kanonの多言語・多開発環境のための開発と、効率的な実行方式についての研究を進めた。
    処理系の開発に関しては、昨年度までの研究で構築した処理系のモジュール化を進め、今後の研究に備えた。特にユーザインタフェース部分を最新のライブラリに置き換えること、配置アルゴリズムを交換可能なモジュールとすることを行い、実験用のコード例を挿入する機能などを追加した。この作業はRAとして雇用した博士課程学生が主に担当し、オープンソースソフトウェアとして公開した。
    実行方式については、Kanon処理系が行っているオブジェクトグラフの収集をTruffle/Graalフレームワーク上で動作するJavaScript言語処理系を改変する方法を提案し、その基本的な実現の作成および効率的なデータ表現方法を示した。これまでの処理系ではプログラム変換による収集を行っていたのに対し今回提案した方式は(1)言語処理系内部での収集を行うため、将来様々な最適化を行うことが容易になること(2)基本ライブラリのようにソースコードが存在しないプログラムに対しても適用可能なこと(3)Truffleフレームワークで実現されているJavaScript以外の言語にも将来適用可能となることといった特徴がある。この成果は情報処理学会プログラミング研究会において発表され、同学会英文論文誌Journal of Information Processingへの掲載が決定している。
    また上記の研究に並行する形で、様々なプログラミング環境の形態を検討するために (a) 問題分析段階、即ちプログラムを書くよりも前の段階のための視覚的な「プログラミング環境」Mioの作成や、(b) プログラム理解作業時のメモ作成を支援する CodeMap 環境の提案も行った。

    researchmap

  • 汎用性と高性能を両立するハイブリッド型実行時コンパイラ

    2020年 - 2022年

    受託研究(政府系)  戦略的創造研究推進事業・個人型研究(ACT-X)

      詳細を見る

  • 生産性の高いGPU向けプログラミング言語処理系

    研究課題/領域番号:18H03219  2018年4月 - 2023年3月

    日本学術振興会  科学研究費助成事業  基盤研究(B)

    増原 英彦

      詳細を見る

    配分額:17160000円 ( 直接経費:13200000円 、 間接経費:3960000円 )

    本年度の成果は後述する高水準言語に関するもの他に、以下のものがあった。実行時コンパイラを従来よりも柔軟にするコンパイル方式を可能にする提案が国際会議Dynamic Language Symposiumに採択発表された。モジュール化機構に関しては、反応的プログラミングに永続性を取り入れる試みと、文脈指向プログラミングのモジュール性を向上させる言語設計の提案を行いそれぞれ国際ワークショップにて発表した。さらに柔軟かつ安全な制御構造を可能にする代数的エフェクト機構に関して基礎的な貢献を行い、国内ワークショップにて発表した。
    <BR>
    GPU上での動的なオブジェクト生成を可能にするDynaSOArに対して、より高度なオブジェクト指向機能を追加した。具体的には入れ子になったオブジェクトをstructure-of-arrays配置へ変換する機構である。この成果は日本ソフトウェア科学会プログラミングとプログラミング言語研究会で発表したほか、PLDI国際会議に併設されてARRAY 2021ワークショップでの発表も予定している。また、これまでの一連の研究成果をAsian Symposium on Programming Languages and Systems (APLAS 2002)における基調講演として発表した。
    <BR>
    GPU向け高水準言語LIFTを拡張し、より多くのプログラムが記述可能となるようにした。LIFT言語の型システムは配列長が静的に固定される制限を課していた。この型システムを存在型を用いて拡張し、配列長に関する安全性を保ったままより広範囲のプログラムが書けることを示し、実際にコンパイラを試作してその有効性を確認した。この成果は情報処理学会論文誌論文として採録され、筆頭著者の学生が情報処理学会コンピュータサイエンス領域奨励賞を受賞した。

    researchmap

  • 開発者背景情報を活用するコード推薦システム

    研究課題/領域番号:26330078  2014年4月 - 2018年3月

    日本学術振興会  科学研究費助成事業  基盤研究(C)

    増原 英彦, 青谷 知幸, 櫻井 孝平, フィルシュフェルド ロベルト, 今井 朝貴, カチャドリアン ラフィ, 村上 直也, 岡 明央

      詳細を見る

    配分額:4680000円 ( 直接経費:3600000円 、 間接経費:1080000円 )

    開発者と開発環境の相互作用に焦点を当てて研究進め、(1)開発者の編集操作履歴から開発者の意図を推定し、コード推薦システムの推薦精度を向上させる手法の提案、(2)プログラムの大域的な構造を変更するようなリファクタリングアルゴズムの提案と実証、(3)細粒度の編集操作履歴と、開発者が認識する作業単位の関連性を発見する手法の提案、(4)開発者の意図に反してプログラムに漏れ(omission)がある場合の巻き戻し型デバガの提案、(5)ライブプログラミング環境を実用的にする目的で、テスト実行機能との統合およびデータ構造可視化機能の統合を行い、また開発者の行動変化ついての利用者実験を行った。

    researchmap

  • スーパーコンピューティングのための動的言語処理系

    2013年 - 2016年

    受託研究(政府系)  戦略的創造研究推進事業チーム型研究(CREST)

      詳細を見る

  • ポスト・アスペクト指向時代の階層的分割と横断的分割を統合するモジュール化の研究

    研究課題/領域番号:22240002  2010年4月 - 2015年3月

    日本学術振興会  科学研究費助成事業  基盤研究(A)

    千葉 滋, 玉井 哲雄, 中島 震, 鵜林 尚靖, 増原 英彦, 五十嵐 淳, 紙名 哲生

      詳細を見る

    配分額:49530000円 ( 直接経費:38100000円 、 間接経費:11430000円 )

    ソフトウェアのモジュール化技術は、現在のソフトウェア開発の鍵となる技術の一つである。本研究では、従来別々の言語機構を用いて実現されてきた階層的モジュール分割と横断的モジュール分割を統一的に扱える言語機構を研究した。新しい言語機構を考案し、その周辺技術を包括的に研究することで、ポスト・アスペクト指向と呼べるものを生み出すことをめざした。主に、述語ディスパッチ機構と文脈指向プログラミングに基づく言語機構をそれぞれ研究し、階層的な分割と横断的な分割を統一的に扱えるようにした。さらにそれらの言語機構について、基礎理論やモデリングの視点から包括的に研究した。

    researchmap

  • 生産性と安全性向上のためのアスペクト指向ソフトウェア開発に関する研究

    研究課題/領域番号:18200001  2006年 - 2009年

    日本学術振興会  科学研究費助成事業  基盤研究(A)

    玉井 哲雄, 中島 震, 千葉 滋, 鵜林 尚靖, 増原 英彦, 五十嵐 淳, 紙名 哲生

      詳細を見る

    配分額:48620000円 ( 直接経費:37400000円 、 間接経費:11220000円 )

    「生産性と安全性向上のためのアスペクト指向ソフトウェア開発に関する研究」と題した研究を2006年度から2009年度まで4年間実施し,アスペクト指向モデルの型安全性を実際的に検証する理論とツールを整備し,高度な機能を備えたアスペクト指向言語の設計と,高い処理能力と使いやすさを兼ね備えた言語処理系を作成した.また,WebサービスのBPELによる記述に関するセキュリティの検証という応用で,この研究で開発した方法の実用性を明らかにするとともに,アスペクト指向を用いたソフトウェアの開発方法論を整備した.

    researchmap

  • アスペクト指向言語の基礎モデルとその応用

    研究課題/領域番号:18680004  2006年 - 2008年

    日本学術振興会  科学研究費助成事業  若手研究(A)

    増原 英彦

      詳細を見る

    配分額:7410000円 ( 直接経費:5700000円 、 間接経費:1710000円 )

    横断的関心事をモジュール化する技術として知られているアスペクト指向プログラミング言語に関して、言語モデルの深化および言語機構の拡張と実現を行った。実際の成果はいくつかのテーマに分かれるが、代表的なものとしては解析に基づくポイントカットを利用した動的なポイントカットの最適化手法の提案と、テストに基づくポイントカットの提案と実証が挙げられる。

    researchmap

  • 状況評価機能の広範囲への適用に関する研究

    研究課題/領域番号:17500086  2005年 - 2006年

    日本学術振興会  科学研究費助成事業  基盤研究(C)

    川合 慧, 山口 和紀, 増原 英彦, 金子 知適

      詳細を見る

    配分額:3500000円 ( 直接経費:3500000円 )

    本研究は大きく分けて次の3点を目標とした.
    1.評価特徴の自動獲得プロセスのさらなる効率化
    2.判定関数固有の性質の解明
    3.適用できる分野の開拓
    概念解析及び評価用のデータベースの構築の研究と,評価・判定エージェントの自己反映計算による実現については,これまでの準備の延長としての研究を継続した.
    1.についてはきわめて多量の計算量を必要とするが,これまでと比較して100,000倍を越す高速化を実現した,これを利用して研究の成果を発展させるとともに,幾何パターンによる評価等の方向も探り,満足すべき結果を得ることができた.
    2.について.各種の「判定」においては,その局面がどれくらいある性質に合致するかを求めることが要求される.たとえば将棋における「詰み」局面は,受け手が最良のプレーをしても攻め手は詰みの状態に導くことができる.普通はこの判定は実際に詰みの局面まで先読みすることによって行われるが,本研究では評価特徴を利用し,先読みなしでこれを判定することを目的とした.その結果,評価を行う特徴と判定を行う特徴とは,若干性質が異なることを明らかとした.さらに,先手と後手との状況の違いを勝率をもとに補正する方式を考案し,満足すべき結果を得た.
    3.については適用可能な分野についての調査を行なった.

    researchmap

  • 高精度な状況評価機能の自動学習の研究

    研究課題/領域番号:15500084  2003年 - 2004年

    日本学術振興会  科学研究費助成事業  基盤研究(C)

    川合 慧, 山口 和紀, 増原 英彦, 金子 知適

      詳細を見る

    配分額:3900000円 ( 直接経費:3900000円 )

    本研究は,学習による局面評価,概念の形成,および効率的な評価器の自動生成という3項目を統合的に扱う研究の一環であり,最終的には,評価プログラムの学習による自動生成を目標としている.それぞれの研究内容と研究実績とを示す.
    1.評価関数の自動生成
    評価関数の作成においては,局面判断のための単純な部分データの集合を自動的に生成し選別することによって,その分野の基本的規則のみから人間の介入なしに創出する。この部分の基礎的な研究は平成13及び14年度に実施し、ある程度満足すべき結果を得ているが、さらに大量の局面データについての解析を行ない,より高精度な評価関数を構成することに成功した。
    2.概念形成と構造分析
    評価関数のための単純な部分局面の間に導入した半順序を基礎としたガロア束の構造を「概念」とみなし,それをもととしたより高度な解析を試みた.本研究では理論的に整った構造のみならず,現実世界の中で構成されている「必ずしも整ってはいない構造」である非有基的構造について,その構造サマリの抽出と撹乱因子の検出の手法を扱った.最終目的である概念データベースを自動的構築へ向けての基礎的成果を上げることができた.
    3.自己反映計算とアスペクト
    具体的なシステムにおいては,局面判断を行なう多数のエージェントを自己反映計算の手法を使って作っておき、概念集合データベースの内容をもとにして、局面ごとに最適な判断を動的に採り入れて効率良く評価を行なうことになる.本研究ではとくに,クラス横断的な機能の追加を目的とするアスペクトプログラミングに関する研究を行ない,支援系及び理論的体系化について成果を得ることができた.

    researchmap

  • 信頼性の高いコンポーネント技術の研究

    研究課題/領域番号:13224013  2001年 - 2005年

    日本学術振興会  科学研究費助成事業  特定領域研究

    玉井 哲雄, 柴山 悦哉, 中島 震, 鵜林 尚靖, 増原 英彦, 五十嵐 淳, 金子 知適, 青山 幹雄

      詳細を見る

    配分額:136200000円 ( 直接経費:136200000円 )

    本研究の大きな狙いは,以下の2点に集約される.
    1.コンポーネントおよびコンポーネントから合成されるシステムの構造的複雑さを克服すること.
    2.コンポーネントおよびコンポーネントから合成されるシステムの振舞いの複雑さを克服すること.
    この問題に次のように取り組み,成果をえた.
    1.明確で柔軟なコンポーネントのモジュール化を可能とするモデルと言語を開発し,それに基づいたコンポーネントでシステムを組み立てることにより,構造的な複雑さに対応した.
    2.コンポーネントとその上のシステムの振舞いに関し形式的な検証技術を適用して,その振舞いが望ましい性質を満たし,障害を起こさないことを示す手法を開発して,振舞いめ複雑さに対応した.
    最終的には5年度にわたって開発した技術を集大成し,一つの開発環境の下での統合化を行った.統合された成果の特徴は,以下に挙げるように新しいコンポーネントの構築技術(アスペクト指向と役割モデルに基づくもの)とその上での検証技術を,具体的に実装したことである.
    ・ソフトウェアのコンポーネント化とそれを合成してシステムを組み立てるためのアーキテクチャ技術として,役割モデルEpsilon」とその実装言語"EpsilonJ"の仕様を定め,実装した.
    ・コンポーネントの動作時の性能を確保するために,汎用コンポーネントから個々の具体的な使用状況に特化したコードを自動生成し,実行時オーバーヘッドを削減する方式を提案した.
    ・ソフトウェア開発の上流行程で作成する設計記述を対象として,織込みの系統的な方法を考案した.
    ・アスペクト指向言語の代表であるAspectJに対し,ユーザが記述したプログラム解析をコンパイラするコンパイラを提案し開発した.
    ・コンポーネントの再利用性と安全性を両立させるための型理論として,相互再帰的クラスのための型システムを考案した.

    researchmap

  • 状況評価関数の自動獲得と動的評価器の自動生成の研究

    研究課題/領域番号:13680434  2001年 - 2002年

    日本学術振興会  科学研究費助成事業  基盤研究(C)

    川合 慧, 増原 英彦, 山口 和紀

      詳細を見る

    配分額:3600000円 ( 直接経費:3600000円 )

    本研究は、学習による局面評価、概念の形成、及び効率的な評価器の自動生成という3項目を統合的に扱つことが特徴である.初年度には性能として満足すべきレベルの評価特徴の自動生成を実現し,2年目には評価特徴の分析,有用な概念抽出及びそのデータベース化,更には具体的な評価器についての研究を行なった.以下要素的な研究実績を示す.
    ◎評価関数に関する高度な研究
    評価関数の自動獲得の研究では,理論ばかりでなく,実用的に充分な大きさの関数集合を高速に生成し処理しなければならない.このために,ネットワーク型及びパターン型について実験にもとずく研究を行ない,成果を得ている.
    ◎概念形成に関する枠組みの準備
    評価特徴では構造情報が不完全なことが多いので,それを許すデータ構造の研究を行なった.また,概念間の一種の距離をもととして,概念全体を自動分類するための数学的手法,プロセスの時間順序に関する研究などで成果を上げた.
    ◎実働評価器の構築
    個々の評価特徴に対応した計算を行なう評価器を、言語Javaを基礎とするバイトコードレベルでの部分計算手法を用いて実現するための,自己反映計算に関する研究を行なった.
    本研究が対戦型ゲームのような単純な対象にとどまらず,金融予測やデータマイニングなどの実用的な事例にも,充分適用可能であることを示すことができた.

    researchmap

  • 移動コードを基本としたセキュアなプログラミング言語処理系

    研究課題/領域番号:12133203  2000年 - 2003年

    日本学術振興会  科学研究費助成事業  特定領域研究

    米澤 明憲, 大山 恵弘, 増原 英彦, 田浦 健次朗, 住井 英二郎, 遠藤 敏夫

      詳細を見る

    配分額:37800000円 ( 直接経費:37800000円 )

    移動コードを基本としたセキュアなプログラミング言語処理系について研究を行った。本研究では、プログラミング言語およびシステムソフトウェアの安全性にかかわる諸問題について、理論と実用の両面から研究を行った。まず、ソフトウェアの開発においてもっとも重要な要素であるプログラミング言語の様々な問題について、場当たり的な対症療法ではなく、堅固な理論にもとづく系統的な解決策を与えた。さらに、コンピュータ上でプログラムを実行する際に安全性を保証する基盤となるシステムソフトウェアに関しても、対象となるシステムへの深い理解にもとづく体系的な解決策によって問題を解決した。具体的には、C言語の安全な処理系Fail-Safe C、 Fail-Safe Cのためのインタフェース記述言語、型システムを利用して安全性を保証するOS Kernel Mode Linux、分散DoS攻撃からネットワークを守るシステムMoving Firewall、暗号ラムダ計算、文字列処理のための正規表現型、自己修復型リファレンスモニタ、プログラム部品間のアクセスをきめ細かく制御する機構、移動コードの記述を支援する言語処理系JavaGoおよびJavaGoX、Javaにおけるオブジェクト使用解析、動的型付き言語Schemeのためのリージョンベースのメモリ管理、分散計算におけるアクセス制御のための型システムなど、国内外から極めて高い評価を得ている研究実績を残した。本研究は、3つのソフトウェアの公開と30本近い査読つき論文の発表などを通じ、学術的・社会的に大きなインパクトを与え、日本ソフトウェア科学会や日経BP社から論文賞などの4つの賞を受賞した。

    researchmap

  • 高性能広域分散計算のための適応的な基盤ソフトウェア

    研究課題/領域番号:12308012  2000年 - 2002年

    日本学術振興会  科学研究費助成事業  基盤研究(A)

    米澤 明憲, 増原 英彦, 住井 英二郎, 田浦 健次朗, 小林 直樹, 遠藤 敏夫, 山本 泰宇, 大山 恵弘

      詳細を見る

    配分額:41120000円 ( 直接経費:36200000円 、 間接経費:4920000円 )

    本研究では、高性能なプログラム実行時処理系、とくに、実行時に判明する資源(CPU、メモリ、ネットワーク)の状況に適応して、常に良好な性能を発揮する処理系を構築することを目指した。主な成果は以下のとおりである。(1)並列言語で必要となる、共有データに対するアクセスの調停方法を、アプリケーションが持つ並列度に適応して選択し、常に良好なアクセスを行う方式を確立した(ACM PaCTに採択)。(2)分散計算において、ノードやネットワークの状況に応じて計算に参加するノードを変更できるフレームワークの設計と実装について提案を行った(ACM PPoPP, ACM/IEEE CCGridに採択)。(3)アプリケーションが必要とする計算・通信比と、与えられた資源とから、適切な(性能を最適にする)資源を選び出す問題について、アプリケーション・資源ともに性質が時間不変という仮定の下でモデル化を行い、アルゴリズムの提案とシミュレーションによる実験を行った。(4)動的なメモリ管理システムにおいて、割り当てられるメモリの局所性とメモリ使用量を自在にバランスさせることのできるメモリ管理システム方式を確立した。(5)これまで難しいとされてきた、保守的GCにおいて実時間性を確保する方式を達成した(ACM ISMMに採択)。

    researchmap

  • 自己反映言語による並列・分散アプリケーション記述の改善

    研究課題/領域番号:11780196  1999年 - 2000年

    日本学術振興会  科学研究費助成事業  奨励研究(A)

    増原 英彦

      詳細を見る

    配分額:2100000円 ( 直接経費:2100000円 )

    自己反映言語を効率的に実行するための技術である部分計算について研究を進めた。具体的には、部分計算の一種である実行時特化について生成されるコードをより効率的なものとする、バイトコード特化(BCS)の枠組を提案し、Java仮想機械を使ったプロトタイプを構築した。
    この技法では、機械語上で特化を行うかわりに、一度仮想機械語上で特化を行い、それを最適化された機械語命令列へ変換することでより効率的なプログラムを生成する。また、コンパイルされた仮想機械命令列を直接解析して特化器を作成することで、ソース言語に依存しない技術となっている。
    今年度は特に、作成したプロトタイプを用いて、実行時に特化されたプログラムの性能評価を行い、特化に要する基本的なコストおよびアプリケーション全体の性能の向上の程度を測定することができた。測定対象のアプリケーションとしては、数式を対話的に入力し、それをもとにマンデルブロ集合を描画するものを用いた。
    Sun Microsystems社製のJava SDK 1.2をSun Enterprise 4000上で実行した場合の実験では、
    ●特化対象となるメソッドは、提案したシステムによって約3〜4倍高速化された。
    ●実行時に特化されたメソッドと予めソース言語レベルで特化されたメソッドは、ほぼ同じ性能を示す。
    ●特化に要するオーバーヘッドは約2.7〜3.1ミリ秒であった。さらに特化されたメソッドをJITコンパイルするための1.3〜150ミリ秒のオーバーヘッドがかかる。
    ●特960〜72,000回(使用するJITコンパイラに依存する)の繰り返し実行によって上記オーバーヘッドと特化による速度向上が均衡する。
    といったことが分かり、提案した手法の有効性と問題点が明らかになった。

    researchmap

  • 多様な並行オブジェクトモデルをサポートする言語処理系の研究

    研究課題/領域番号:09780243  1997年 - 1998年

    日本学術振興会  科学研究費助成事業  奨励研究(A)

    増原 英彦

      詳細を見る

    配分額:2100000円 ( 直接経費:2100000円 )

    本研究の目標は、ネットワーク環境や、ワークステーションクラスタ等を対象とした並列・分散プログラミング言語において見られる、様々な並行オブジェクトのモデルを容易にサポートするような言語処理系の作成であった。
    この目標に対し、昨年度までに、自己反映計算(リフレクション)を利用することを提案している。この提案では、オブジェクトの排他制御やメソッド探索といった機能を、メタレベルのプログラムによって与えることで、異なった「並行オブジェクトのモデル」を拡張・変更可能にするというものである。
    この提案にもとづき、本年度は、(1)処理系を試作し、(2)その処理系上で実際にメタレベルプログラミングを行って、拡張性を確めることと、(3)それらのプログラムの実行効率を測り、同時に提案している効率的な実行方式の有効性を調べるという研究を行った。
    処理系は、東京大学の田浦・大山らが開発した並行オブジェクト指向言語Schematicをベースとして、東京大学の浅井が開発したScheme向け部分計算機を利用したコンパイラを作成した。このコンパイラでは、メタレベルの定義を適切に変換することにより、解釈実行のない効率的なプログラムを生成する。
    メタレペルプログラミングに関しては、いくつかの単純なアプリケーションとともに、ガード付きメソッドなどの並行オブジェクトの同期モデルを、メタレベルプログラミングによって提供できることを示した。
    また、効率に関しては、部分計算によるコンパイルによって、従来の(拡張性がない)最適化コンパイラによる実行と比べて1.1〜3倍程度のオーバーヘッドしかかからず、これまでのインタプリタによる実行と比べて約6倍の高速化が得られることが示された。

    researchmap

  • 同期チャネルとオブジェクトを持つ並列言語の分散共有記憶型並列計算機上の高効率実現

    研究課題/領域番号:08408008  1996年 - 1998年

    日本学術振興会  科学研究費助成事業  基盤研究(A)

    米澤 明憲, 増原 英彦, 小林 直樹, 松岡 聡, 田浦 健次朗

      詳細を見る

    配分額:34600000円 ( 直接経費:34600000円 )

    並列計算のための実行時基盤ソフトウェアである、(1)細粒度スレッドライブラリ\stackthreadsおよび(2)共有・分散ヒープ用の保守的ゴミ集めライブラリ、を研究開発した。\stackthreadsは既存のスレッドライブラリ(Solarisスレッドなど)の上に多数の細粒度スレッドを実行時に生成し、実行することのできるライブラリであり、Cの関数呼び出し$+$10命令程度のオーバーヘッドでスレッドを生成する。共有ヒープ用保守的ゴミ集めライブラリは、複数のメモリ割り当て要求の並行処理により並列アプリケーションに十分なメモリ割り当て性能を提供し、並列マーク\&スイープによって、高速なゴミ集めを達成する。現在、Ultra Enterprise 10000上で64プロセッサ使用時に最大30倍程度の台数効果を達成している。分散ヒープ用ゴミ集めは、マーク\&スイープと遠隔参照カウントの両方式を実装し、興味深い性能評価結果を得ている。どのライブラリとも、無変更のgcc+コンパイラから利用可能であり、その意味で新しい「並列言語」ではない。そのため、既存のC/C++でかかれたプログラムに容易に組み込むことが可能である。また、高級言語処理系の実行時システムとして利用することで、処理系構築の手間が軽減されるとともに、こうして作られた複数の言語間に自然に相互運用性を提供する。

    researchmap

  • 並列計算のための自己反映オブジェクト指向言語処理系

    研究課題/領域番号:08780247  1996年

    日本学術振興会  科学研究費助成事業  奨励研究(A)

    増原 英彦

      詳細を見る

    配分額:1000000円 ( 直接経費:1000000円 )

    本研究では、自己反映並列オブジェクト指向言語ABCL/R3の言語設計および、インタプリタ処理系の作成を行い、従来のものより、より記述が容易で効率的な実行が可能となる言語処理系作成のための方向付けが得られた。具体的には、以下のとおりである。
    (1)ABCL/R3の言語設計、特にメタオブジェクトプロトコルに関しては、継承と委譲(delegation)による拡張を念頭に置き、細分化されたメソッド群によって定義を行った。特にこの細分化は、部分計算による実現を前提とすることで、プログラマが利用しすい形で定義することが可能になっている。そのため、報告者らがこれまで設計・実現を行ってきたABCL/R./R2に比べて、メタオブジェクトの拡張に継承機構が利用でき、再利用性を向上させている。
    また、メタインタプリタ設計に関しては、新しく委譲にもとづいた設計を行った。これによって、インタプリタ実行時にインタプリタ定義を拡張することが可能になり、動的かつ局所的な変更を容易にしている。さらに委譲オブジェクトは、関数定義への変換できるように制限されているため、部分計算を用いたコンバイルを容易にしている。
    (2)Schemeの並列オブジェクト指向拡張であるSchematicをもとにして、ABCL/R3のインタプリタ処理系を作成した。現在のところ、メタレベルの変更を含めた簡単なサンプルプログラムが動いている。Schematic処理系は、並列環境に対応しているため、ABCL/R3処理系を並列に動作させることは容易であると思われる。
    また、コンパイル方法については、メタオプジェクトを部分計算した結果を、他のオブジェクトと同様に扱うための枠組が必要であることが分かり、現在はその解決方法を新たな研究課題として検討している。

    researchmap

  • Reflective Computation

      詳細を見る

    資金種別:競争的資金

    researchmap

  • 高速な部分計算

      詳細を見る

    資金種別:競争的資金

    researchmap

  • 自己反映計算

      詳細を見る

    資金種別:競争的資金

    researchmap

  • プログラミング環境

      詳細を見る

    資金種別:競争的資金

    大量文書処理技術を応用した新しいプログラミング支援環境の構築

    researchmap

  • 先進的なプログラミング言語システム

      詳細を見る

    資金種別:競争的資金

    researchmap

  • アスペクト指向プログラミング

      詳細を見る

    資金種別:競争的資金

    アスペクト指向プログラミングの基礎モデル、言語拡張、実行方式に関する研究

    researchmap

  • Advanced Programming Language Systems

      詳細を見る

    資金種別:競争的資金

    researchmap

  • High-Speed Partial Evaluation

      詳細を見る

    資金種別:競争的資金

    researchmap

▼全件表示

社会貢献活動

  • Modularity'16 Workshop on Live Adaptation of Software Systems(LASSY 2016)

    University of Malaga, Spain  2016年3月

     詳細を見る

    対象: 学術団体

    researchmap

  • Constrained and Reactive Objects Workshop(CROW 2016)

    役割:運営参加・支援

    University of Malaga, Spain  2016年3月

     詳細を見る

    対象: 学術団体

    researchmap

  • Foundations of Aspect-Oriented Languages(FOAL 2016)

    役割:運営参加・支援

    2016年3月

     詳細を見る

    対象: 学術団体

    researchmap

  • International Conference on Modularity(Modularity 2016)

    役割:運営参加・支援

    University of Malaga, Spain  2016年3月

     詳細を見る

    対象: 学術団体

    researchmap

  • International Workshop on Language Modularity A La Mode(LaMoD'2016)

    役割:運営参加・支援

    University of Malaga, Spain  2016年3月

     詳細を見る

    対象: 学術団体

    researchmap

  • The 2016 International Workshop on Modularity Across the System Stack(MASS2016)

    University of Malaga, Spain  2016年3月

     詳細を見る

    対象: 学術団体

    researchmap

  • Asia-Pacific Software Engineering Conference(ASPEC2015)

    役割:運営参加・支援

    New Delhi, India  2015年12月

     詳細を見る

    対象: 学術団体

    researchmap

  • 日本ソフトウェア科学会 第22回ソフトウェア工学の基礎ワークショップ(FOSE2015)

    役割:運営参加・支援

    山形県天童市  2015年11月

     詳細を見る

    対象: 学術団体

    researchmap

  • Special Session on Intelligent Systems and Software Engineering Advances(ISSEA) at the 21st International Conference on Information and Software Technologies(ICIST)

    役割:運営参加・支援

    Kaunas University of Technology, Lithuania  2015年10月

     詳細を見る

    対象: 学術団体

    researchmap

  • 7th International Workshop on Context-Oriented Programming(COP 2015)

    役割:運営参加・支援

    Prague Mariott Hotel, Czech Republic  2015年7月

     詳細を見る

    対象: 学術団体

    researchmap

  • 2nd International Workshop on Libraries, Languages and Compilers for Array Programming(ARRAY'15)

    役割:運営参加・支援

    Oregon Convention Center, Oregon, USA  2015年6月

     詳細を見る

    対象: 学術団体

    researchmap

  • ACM SAC track on Programming for Separation of Concerns(SAC PSC 2015)

    役割:運営参加・支援

    University of Salamanca, Spain  2015年4月

     詳細を見る

    対象: 学術団体

    researchmap

  • FOAL'15(International Workshop on Founadations of Aspect-Oriented Languages) Organizing Committee

    役割:運営参加・支援

    Colorado State Univerisity  2015年3月

     詳細を見る

    対象: 学術団体

    researchmap

  • ICSR’15(International Conference on Software Reuse) Program Committee

    役割:運営参加・支援

    Florida, USA  2015年1月

     詳細を見る

    対象: 学術団体

    researchmap

  • AOAsia/Pacific 2014, 9th International Workshop on Advanced Modularization Techniques, Organizing Committee

    役割:運営参加・支援

    Hong Kong, China  2014年11月

     詳細を見る

    対象: 学術団体

    researchmap

  • 東京大学教養学部非常職講師「情報科学」

    役割:講師

    東京大学  東京大学駒場キャンパス  2014年10月 - 2015年2月

     詳細を見る

    対象: 大学生

    researchmap

  • FOOL'14, 21th International Workshop on Foundations of Object-Oriented Languages, Program Committee

    役割:運営参加・支援

    Oregon, USA  2014年10月

     詳細を見る

    対象: 学術団体

    researchmap

  • ECOOP 2014, European Conference on Object-Oriented Programming, External Review Committee

    役割:運営参加・支援

    2014年7月 - 2014年8月

     詳細を見る

    対象: 学術団体

    researchmap

  • Modularity 2014(International Conference on Modularity), Program Committee

    役割:運営参加・支援

    University of Lugano  2014年4月

     詳細を見る

    対象: 学術団体

    researchmap

  • FOAL'14(International Workshop on Foundations of Aspect-Oriented Lanaguages Organizing Committee

    役割:運営参加・支援

    University of Lugano  2014年4月

     詳細を見る

    対象: 学術団体

    researchmap

  • 情報処理学会論文誌 プログラミング

    役割:編集

    2014年4月

     詳細を見る

  • 日本ソフトウェア科学会 編集委員

    役割:運営参加・支援

    日本ソフトウェア科学会  2008年4月

     詳細を見る

    対象: 学術団体

    researchmap

  • Aspect Oriented Software Association、Steering Committee

    役割:運営参加・支援

    Aspect Oriented Software Association  2006年3月

     詳細を見る

    対象: 学術団体

    researchmap

▼全件表示