Skip to main content
QUICK REVIEW

[論文レビュー] Design and Implementation of Dynamic Memory Management in a Reversible Object-Oriented Programming Language

Martin Holm Cservenka|arXiv (Cornell University)|Apr 12, 2018
Cloud Computing and Resource Management被引用数 3
ひとこと要約

この論文では、二分探索木や双方向リンクリストのような非自明な可逆データ構造をサポートするため、可逆オブジェクト指向言語Rooplの拡張版であるRoopl++を提示する。Buddy Memoryレイアウトを用いた動的メモリ管理を実装し、Pisaにおける可逆アセンブリ翻訳を通じてガーベジフリーな計算を実現している。これにより、可逆計算の枠組みにおいて、複雑で表現力のあるデータ構造が可逆性の原則に反することなく実現可能であることが示された。

ABSTRACT

The reversible object-oriented programming language (ROOPL) was presented in late 2016 and proved that object-oriented programming paradigms works in the reversible setting. The language featured simple statically scoped objects which made non-trivial programs tedious, if not impossible to write using the limited tools provided. We introduce an extension to ROOPL in form the new language ROOPL++, featuring dynamic memory management and fixed-sized arrays for increased language expressiveness. The language is a superset of ROOPL and has formally been defined by its language semantics, type system and computational universality. Considerations for reversible memory manager layouts are discussed and ultimately lead to the selection of the Buddy Memory layout. Translations of the extensions added in ROOPL++ to the reversible assembly language PISA are presented to provide garbage-free computations. The dynamic memory management extension successfully increases the expressiveness of ROOPL and as a result, shows that non-trivial reversible data structures, such as binary trees and doubly-linked lists, are feasible and do not contradict the reversible computing paradigm.

研究の動機と目的

  • 可逆オブジェクト指向言語Rooplに動的メモリ管理および固定長配列を拡張し、表現力を向上させること。
  • ガーベジを生成せずに複雑なデータ構造をサポートする可逆メモリ管理システムを設計すること。
  • Roopl++の意味論、型システム、計算的普遍性を形式的に定義すること。
  • Roopl++の構文を可逆アセンブリ言語Pisaに翻訳し、ガーベジフリーな実行を可能にすること。
  • 双方向リンクリストや二分木のような非自明な可逆データ構造が、可逆計算モデル内で実現可能であることを示すこと。

提案手法

  • 決定的かつ可逆なメモリ管理を保証するため、可逆メモリ割り当てに適したBuddy Memoryレイアウトを採用した。
  • 表現力を高めるために、Rooplに配列サポート、オブジェクトインスタンス生成、ローカルブロックを拡張した。
  • 環境-ストアの判断と可逆ストア変換を用いて、Roopl++の形式的型システムと操作的意味論を定義した。
  • ストアを変更せずに可逆性を保持する新しい配列要素アクセスの式ルールを導入した。
  • Roopl++プログラムを可逆アセンブリ言語Pisaに翻訳し、後退実行とガーベジフリー計算を可能にした。
  • 双方向リンクリストと二分木の可逆版を実装・検証することで、アプローチの有効性を検証した。

実験結果

リサーチクエスチョン

  • RQ1可逆オブジェクト指向言語に動的メモリ管理を統合しても、可逆性が損なわれないか?
  • RQ2断片化とガーベジを最小限に抑えるとともに、可逆的な割り当てと解放を可能にするメモリレイアウト戦略は何か?
  • RQ3双方向リンクリストや二分木のような複雑なデータ構造を、完全な計算的普遍性を保ちながら可逆言語で実装可能か?
  • RQ4可逆言語における配列アクセスやオブジェクト操作において、可逆的意味論をどのように維持できるか?
  • RQ5高水準な可逆プログラムを、完全な後退実行をサポートする可逆アセンブリコードに翻訳することは可能か?

主な発見

  • 決定的かつ可逆な割り当て・解放パターンを有するため、Buddy Memoryレイアウトが最適なメモリ管理戦略として選ばれた。
  • Roopl++は、双方向リンクリストや二分木を含む非自明な可逆データ構造の実装に成功しており、完全な可逆性が保証されている。
  • Roopl++をPisa可逆アセンブリ言語に翻訳することで、ガーベジフリーな計算と完全な後退実行が可能になった。
  • 言語拡張は一対一(単射)変換を保ち、すべての操作が局所的に可逆であり、情報の損失がないことを保証した。
  • Roopl++の形式的意味論と型システムにより、可逆計算フレームワーク内での型安全性と計算的普遍性が保証された。
  • 本研究は、動的メモリ管理が可逆計算と両立可能であることを示し、可逆性は静的または単純なデータ構造に限られるという仮定に疑問を呈した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。