arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1804.05097cs.PLcs.DS
收藏

可逆面向对象程序设计语言中动态存储管理的设计与实现

Design and Implementation of Dynamic Memory Management in a Reversible Object-Oriented Programming Language

Martin Holm Cservenka

摘要:

可逆面向对象程序设计语言(ROOPL)于2016年底提出,并证明了面向对象编程范式在可逆环境中工作。该语言的特点是简单的静态作用域对象,这使得非平凡的程序乏味,如果不是不可能使用有限的工具编写。我们引入了一个新的语言ROOPL++形式的扩展ROOPL,具有动态存储管理和固定大小的数组,以增加语言的表达能力。该语言是ROOPL的超集,并已正式定义其语言语义,类型系统和计算的普遍性。可逆内存管理器布局的考虑进行了讨论,并最终导致伙伴内存布局的选择。ROOPL++中添加的扩展翻译到可逆的汇编语言PISA提供无垃圾计算。动态存储管理扩展成功地增加了ROOPL的表达能力,并因此表明,非平凡的可逆数据结构,如二叉树和双向链表,是可行的,并不违背可逆计算范式。

英文摘要:

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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑