arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 2103.03309cs.PL
收藏

使用“L值重定义图”将声明性控制元素转换为命令式控制元素

Translating declarative control elements to imperative using 'l-value redefinition graphs'

Anthony Savidis

摘要:

我们专注于控制结构,允许程序员定义的动作时,相应的条件得到满足,而不需要显式的评估和测试的条件作为一个命令式算法的一部分。这些元素通常被称为声明性的,理论上与声明性语言无关。我们在C++语言中引入声明性结构,提出了标准C++的翻译方法。我们的方法的创新功能是容纳的L-值,涉及任意指针/数组表达式和对象,支持即时运行时评估内容更新,即使这样的L-值绑定到变量存储位置在运行时。为了实现这一点,我们定义了“l值重定义图”,捕获变量之间的存储绑定依赖关系,作为我们的代码生成和运行时管理方法的平面图。

英文摘要:

We focus on control constructs that allow programmers define actions to be performed when respective conditions are met without requiring the explicit evaluation and testing of conditions as part of an imperative algorithm. Such elements are commonly referred as declarative, not theoretically related to declarative languages. We introduce declarative constructs in the C++ language, presenting the translation method to standard C++. The innovative feature of our method is the accommodation of l-values involving arbitrary pointer / array expressions and objects, supporting immediate runtime evaluation upon content update even if such l-values bind to variant storage locations at runtime. To accomplish this we define 'l-value redefinition graphs', capturing storage binding dependencies among variables, being the floor-plan of our code generation and runtime management approach.

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

↑