Efficient and Portable Implementation of Java-style Exception Handling in C
スポンサーリンク
概要
- 論文の詳細を見る
An important issue in implementing high-level programming languages for use by translators into C is how to support high-level language features not available in C. Java's exception handling is one such feature, and translating it into portable C, which only uses C-style control structures, involves some challenges. Previous studies have proposed ways of translating the Java-style try-catch construct into C. In this paper, we propose a new scheme for implementing it in an efficient and portable manner. We use our parallel language OPA, which is an extended Java language, and its translator. In our scheme, we do not use troublesome setjmp/longjmp routines for non-local jumps. Instead, we check the occurrences of exceptions using functions' return values. Java also has the try-finally construct, mainly used for cleaning up, which cannot be translated directly into C-style control structures. To implement it, we developed a new scheme with integer values corresponding to continuation targets. Compared with other techniques, ours has advantages in both the runtime overhead and the generated code size. For these two features, using some benchmark programs, we measured the performance of our scheme and compared it with those of some other schemes.
- 一般社団法人情報処理学会の論文
- 2006-05-15
著者
-
八杉 昌宏
京都大学大学院情報学研究科
-
Yuasa Taiichi
Department Of Communications And Computer Engineering Graduate School Of Informatics Kyoto Universit
-
Umatani Seiji
Department Of Communications And Computer Engineering Graduate School Of Informatics Kyoto Universit
-
YASUGI MASAHIRO
Department of Communications and Computer Engineering, Graduate School of Informatics, Kyoto Univers
-
SHOBAYASHI HIROKAZU
NTT West Co., Ltd.
-
Shobayashi Hirokazu
Ntt West Co. Ltd.
-
Yasugi Masahiro
Department Of Communications And Computer Engineering Graduate School Of Informatics Kyoto Universit
-
Masahiro Yasugi
Graduate School Of Informatics Kyoto University
-
Yasugi Masahiro
Department of Artificial Intelligence, Kyushu Institute of Technology
関連論文
- L-Closure:安全な計算状態操作機構(平成21年度論文賞の受賞論文紹介)
- L-Closure : 高性能・高信頼プログラミング言語の実装向け言語機構
- 階層的グループ化に基づくコピー型ごみ集めによる局所性改善
- 共有メモリプログラミングのための拡張C言語
- 動的名前解決による通信先・移動先の柔軟な指定が可能な分散アンビエントシステムの設計
- スレッドベース実行における積極的データ転送のためのPlan-Do型コンパイル技法とその評価
- ABCL/EM-4 : データ駆動並列計算機上の並列オブジェクト指向言語処理系の実装と評価
- スレッドベース実行における積極的データ転送のためのPlan-Do型コンパイル技法
- 構成的理論に基づいたプログラミング言語Zとその実装
- L-Closureを用いた真に末尾再帰的なSchemeインタプリタ
- リターンバリア型実時間ごみ集めの抽象モデル検査
- Cache-conscious階層的グループ化データ配置法:Cache-oblivious配置法との実験的比較
- タプル空間によるブラウザ間通信を備えたScheme処理系の開発
- リージョン変数の動的なエイリアス判定によるメモリ効率向上
- 遅延分割型負荷分散フレームワークの試験実装
- スタックベースのML処理系における効率的な一級継続の実装
- S式ベースC言語における変形規則による言語拡張機構
- 実時間処理に適したメモリ管理を行うLisp処理系の設計と実装
- 入れ子関数を利用する動的負荷分散と高水準記述(言語処理系)
- 細粒度マルチスレッド言語における例外処理の効率良い実装
- 組み込みシステムにおける複数のフリーリストに割り振るメモリ量の最適化
- 並行オブジェクトのための型システムとコンパイル技法
- バックトラックに基づく負荷分散のT2K並列環境における評価
- バックトラックに基づく負荷分散の高並列環境における評価
- オブジェクト指向並列言語OPAのための遅延正規化手法
- 遅延タスク生成の反復計算向け拡張(並列処理)
- オブジェクト指向並列言語OPAのためのコード生成手法
- マルチコンテキスト管理をサポートする実装用言語
- 3Z-7 並列言語OPAにおける一貫性制御に対応した差分プログラミング
- Scheme処理系におけるC言語拡張コードへのライトバリア自動挿入
- Scheme処理系におけるC言語拡張コードへのライトバリア自動挿入
- Highly Reliable Embedded Software Development Using Advanced Software Technologies(Software Engineering for Embedded Systems)
- 2ZP-2 バックトラックに基づく負荷分散の広域分散環境における評価(情報爆発時代における分散処理と運用技術,学生セッション,「情報爆発」時代に向けた新IT基盤技術,情報処理学会創立50周年記念(第72回)全国大会)
- 共有メモリ向けプリミティブとそのGCCを使った実現
- 入れ子関数を利用した動的負荷分散
- Java上のScheme処理系「ぶぶ」における単一のクラスローダを用いたオブジェクトシステムの実装
- 3Z-6 並列Schemeにおける即時タスク生成法と遅延タスク生成法の融合
- リターン・バリア
- 既存Cヘッダファイルの構文の異なる言語での有効利用(サイバー増大ページ論文概要,新しいソフトウェアの実現,サイバー増大号)
- 継続の生成におけるスタックコピーの遅延
- SchemeにおけるEvaluation Strategyの設計と実装
- 4L-6 ISLISPコンパイラの実装
- A New Algorithm for 2D Convolution on Mesh-connected SIMD Computers
- ワークスティーリングフレームワークにおけるブロードキャスト機能
- Time-Optimal 2D Convolution on Mesh-Connected SIMD Computers with Bounded Number of PEs (Special Issue on Architectures Algorithms and Networks for Massively Parallel Computing)
- A Transformation-Based Implementation of Lightweight Nested Functions
- Efficient and Portable Implementation of Java-style Exception Handling in C
- Design and Implementation of Kyoto Common Lisp
- 適応的オブジェクトによる排他制御の実行時緩和 (並列処理)
- 入れ子関数を利用したマルチスレッドの実現
- Javaと相互呼び出し可能なScheme処理系「ぶぶ」における継続機能と例外処理機能の実装
- 並列処理と例外処理を統一的に扱う構造化言語
- 並列オブジェクト指向言語ABCL/STにおける共有メモリ型並列計算機上の自動負荷分散方式
- 適応的オブジェクトのための局面解析手法
- オブジェクト指向並列言語によるN体問題の並列化とその評価
- Safe AmbientsのためのJavaフレームワーク
- 動的スコープの利用による並列言語の同期・例外処理の階層的構造化
- Parallel Graph Traversals using Work-Stealing Frameworks for Many-core Platforms
- 共有メモリ関連命令を生成可能な実装用言語の設計
- 並列オブジェクト指向言語のためのガーベジコレクタ(並列処理)
- 実行時メソッド置換を行なう並列言語の実装
- SEAN: Support Tool for Detecting Rule Violations in JNI Coding
- A Transformation-Based Implementation of Lightweight Nested Functions
- A Transformation-Based Implementation of Lightweight Nested Functions
- 並列処理のためのオブジェクト指向言語OPAの設計とその実装
- 分散共有メモリ型並列計算機KSR上の細粒度並列処理用実行方式の評価
- SEAN: Support Tool for Detecting Rule Violations in JNI Coding
- 「情報処理学会論文誌 : プログラミング」の編集について
- Efficient and Portable Implementation of Java-style Exception Handling in C
- Efficient and Portable Implementation of Java-style Exception Handling in C
- L-Closureの呼び出しコストの削減