paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Improving the Comprehension of R Programs by Hybrid Dataflow Analysis

通过混合数据流分析提升 R 程序的理解
ASE Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering2024匹配度 3/10 · 论文研究 R 语言的静态/动静结合数据流分析与程序理解,属于程序分析和抽象解释方向,但未涉及画像核心的 LLM/Agentic 程序、机器学习系统、浮点程序分析或贝叶斯程序分析,交叉匹配度较低。引用 1 inbox
Florian Sihler
crossref: 2026-09-12

AI 速览

一句话:针对 R 动态特性,提出融合控制与数据流的静态分析及动静结合方法,以提升 R 程序理解。

R 在统计计算中广泛使用,但其大量包与动态特性使程序分析与理解的支持有限。该博士研究围绕三个目标展开:理解真实世界中 R 的使用方式,设计能处理动态特性的分析策略,并借此提升 R 脚本的可理解性。作者以八项贡献为框架,分析 R 脚本中的特性使用,提出一种将控制流与数据流交织的新静态数据流分析,并探索结合静态与动态分析的程序理解技术。摘要未报告具体实验数值,评估主要通过所提出分析对 R 程序理解的支持来体现。

问题
R 语言在统计计算中被广泛使用,但已有程序理解工具和技术的支持有限;其丰富的包与动态特性使分析与理解 R 代码尤其困难。
方法
通过八项贡献分析 R 脚本的特性使用,提出交织控制流与数据流的静态数据流分析,并结合静态与动态分析来支持程序理解。
评估
评估方式为在 R 脚本上应用所提出的静态与动态分析技术,以展示其对程序理解的支持;摘要未提供具体实验数据。
原文摘要(Abstract)

Context Comprehending code is crucial in all areas of software development, with many existing supporting tools and techniques for various languages. However, for R, a widely used programming language, especially in the field of statistical computing, the support is limited. R offers a large number of packages as well as dynamic features, which make it challenging to analyze and understand. Objective We aim to (i) gain a better understanding of how R is used in the real world, (ii) devise better analysis strategies for R, which are able to handle its dynamic nature, and (iii) improve the comprehension of R scripts by using these analyses, providing new methods and procedures applicable to program comprehension in general. Method In eight contributions, we analyze feature usage in R scripts, develop a new static dataflow analysis intertwining control and dataflow, and more. We enable and propose new techniques for program comprehension using a combination of static and dynamic analysis.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot8270,
  title = {Improving the Comprehension of R Programs by Hybrid Dataflow Analysis},
  author = {Florian Sihler},
  booktitle = {ASE},
  year = {2024},
  doi = {10.1145/3691620.3695603}
}