首页> 外文期刊>電子情報通信学会技術研究報告 >複合要因によるリソース誤解放を回避するための新しいCキーワードの提案と予備評価
【24h】

複合要因によるリソース誤解放を回避するための新しいCキーワードの提案と予備評価

机译:建议并初步评估一个新的C关键字,以避免由于多种因素而导致资源的错误释放

获取原文
获取原文并翻译 | 示例
           

摘要

While a program is running, a false release of resources can occur if the program is compiled with some optimizations, and if the program uses a garbage collector and a finalizer. You can avoid the false release by manually and correctly suppressing some compiler optimizations that shorten the lifetime of variables. We are convinced that introducing a new reserved word is the best solution for this problem, which suppresses the optimizations automatically while avoiding compiler dependency, low maintainability, and incorrect manual suppressing of the optimizations. Therefore we propose a new reserved world "strict_lifetime" and implemented it in GCC. We also provide a preliminary evaluation using Ruby compiled with the modified GCC.%コンパイラ最適化、CスタックをRoot SetとみなすGC、Finalizerの3つの要因が重なると、まだ使用中のリソースに対する誤解放が発生しうる。この誤解放は関数引数やローカル変数の生存期間を短くする最適化を適切に抑制すれば回避可能である。コンパイラ依存、保守性の低下、記述忘れを回避しつつ最適化抑制を行うには新しいキーワードが必要だと我々は主張する。新キーワードstrict_lifhimeを提案し、Sthct_lifetimeをGCCに実装した。CRubyを用いて予備評価をした結果も述べる。
机译:在程序运行时,如果使用某些优化对程序进行编译,并且该程序使用垃圾回收器和终结器,则可能会导致资源的错误释放。您可以通过手动正确地抑制某些缩短了编译时间的编译器优化来避免错误释放。我们坚信引入一个新的保留字是解决此问题的最佳方法,它可以自动抑制优化,同时避免编译器依赖性,低可维护性和不正确的手动抑制优化,因此,我们提出了一个新的保留世界“ strict_lifetime”并在GCC中实现。我们还提供了使用经过修改的GCC编译的Ruby进行的初步评估。%编译器优化,将C堆栈视为根集的GC和在三个因素重叠的情况下使用Finalizer可能会错误地释放资源。通过适当地抑制优化(可以缩短函数参数和局部变量的寿命),可以避免这种错误的释放。我们认为需要新的关键字来抑制优化,同时避免编译器依赖性,降低的可维护性和忘记编写。提出了一个新关键字strict_lifhime,并在GCC中实现了Sthct_lifetime。还描述了使用CRuby进行初步评估的结果。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号