Item type |
Trans(1) |
公開日 |
2022-09-15 |
タイトル |
|
|
タイトル |
計算状態操作機構を備えたS式ベースJava言語の変換に基づく実装に向けて |
タイトル |
|
|
言語 |
en |
|
タイトル |
Towards Transformation-based Implementations of an S-expression-based Java Language That Features Legitimate Execution Stack Access |
言語 |
|
|
言語 |
jpn |
キーワード |
|
|
主題Scheme |
Other |
|
主題 |
[発表概要, Unrefereed Presentatin Abstract] |
資源タイプ |
|
|
資源タイプ識別子 |
http://purl.org/coar/resource_type/c_6501 |
|
資源タイプ |
journal article |
著者所属 |
|
|
|
九州工業大学大学院情報工学府 |
著者所属 |
|
|
|
九州工業大学大学院情報工学研究院 |
著者所属 |
|
|
|
京都橘大学工学部情報工学科 |
著者所属 |
|
|
|
九州大学情報基盤研究開発センター |
著者所属(英) |
|
|
|
en |
|
|
Graduate School of Computer Science and Systems Engineering, Kyushu Institute of Technology |
著者所属(英) |
|
|
|
en |
|
|
Department of Computer Science and Networks, Kyushu Institute of Technology |
著者所属(英) |
|
|
|
en |
|
|
Department of Information and Computer Science, Faculty of Engineering, Kyoto Tachibana University |
著者所属(英) |
|
|
|
en |
|
|
Research Institute for Information Technology, Kyushu University |
著者名 |
西田, 知広
八杉, 昌宏
平石, 拓
小出, 洋
|
著者名(英) |
Tomohiro, Nishida
Masahiro, Yasugi
Tasuku, Hiraishi
Hiroshi, Koide
|
論文抄録 |
|
|
内容記述タイプ |
Other |
|
内容記述 |
SC言語処理系はS式ベースの拡張C言語を標準C言語への変換に基づき実装可能としたもので,C言語の実行スタック中に眠る呼び出し元の変数の値への合法的アクセスを提供する計算状態操作機構などを実現できる.入れ子関数の形態をとる場合,クロージャを生成し,それへのポインタを用いて間接的に入れ子関数を呼び出すことで,クロージャ生成時の環境に含まれる変数へのアクセスが可能となる.クロージャ初期化や変数値維持を遅延した変換に基づく実装には遅延判定コストの問題が見つかったが,入れ子関数を持つ呼び出し元への一時的な制御/文脈移動については,例外処理を用いることで効率化できる可能性がある.本研究では,例外処理の利用や高信頼性を目的として,新たにS式ベースJava言語処理系を整備している.Java言語では,ヒープを消費するものの,finalでない変数を配列要素等に置き換えれば,計算状態操作機構としてラムダ式が利用できる.加えて,非局所脱出することなく例外ハンドラを呼び出せるとした持続型例外処理機構を新たな形態の計算状態操作機構として設計している.本発表では,同機構を備えたS式ベースの拡張Java言語のJava言語への変換に基づく実装手法を提案する.同機構により呼び出し元の変数の値へのアクセスを要する負荷分散などが実現可能となる. |
論文抄録(英) |
|
|
内容記述タイプ |
Other |
|
内容記述 |
The SC language system supports transformation-based implementations of S-expression-based extended C languages by translating them into the standard C language. Mechanisms for legitimate execution stack access (LESA for short) are the most important applications of the SC language system; LESA mechanisms provide legitimate access to values of callers' variables slept deeply in C's execution stack. When a nested function is employed as an LESA mechanism, a closure is created, and a pointer to it is used to indirectly call the nested function, we can access variables in an environment closed in the closure at the creation time. The previous study reveals that the delay judgment costs are considerable in transformation-based implementations which employ lazy initialization of closures and delayed maintenance of variable values; among the delay judgment costs, costs for temporary control transfer (with context restoration) to a caller that owns a nested function may be reduced by using exception handling. In this study, we are newly developing an S-expression-based Java language system for the use of exception handling and high reliability. In Java, although the heap is consumed, we can employ lambda expressions as LESA mechanisms if non-final variables are replaced with array elements or fields. In addition, we are designing restartable exception handling mechanisms as new LESA mechanisms where exception handlers can be called without non-local exits. In this presentation, we propose techniques for a transformation-based implementation of an S-expression-based Java language that features LESA mechanisms by translating it into the standard Java language. LESA mechanisms enable dynamic load balancing which requires legitimate access to values of callers' variables. |
書誌レコードID |
|
|
収録物識別子タイプ |
NCID |
|
収録物識別子 |
AA11464814 |
書誌情報 |
情報処理学会論文誌プログラミング(PRO)
巻 15,
号 4,
p. 3-3,
発行日 2022-09-15
|
ISSN |
|
|
収録物識別子タイプ |
ISSN |
|
収録物識別子 |
1882-7802 |
出版者 |
|
|
言語 |
ja |
|
出版者 |
情報処理学会 |