Skip to main content
QUICK REVIEW

[论文解读] Expansion and evolution of the R programming language

Timothy L. Staples|arXiv (Cornell University)|Aug 26, 2022
Computational and Text Analysis Methods被引用 4
一句话总结

本研究分析了2014至2021年间360,321个GitHub仓库,利用1.68亿次函数调用,探究R编程语言中的词汇演变。研究发现,R经历了由tidyverse生态系统的兴起所驱动的快速词汇多样化,表明用户主导的文化力量——类似于自然语言中的机制——能够塑造编程语言的演变,对代码可读性和长期软件延续性具有重要影响。

ABSTRACT

Change in language use is driven by cultural forces; it is unclear whether that extends to programming languages. They are designed to be used by humans, but interaction with computer hardware rather than a human audience may limit opportunities for evolution of the lexicon of used terms. I tested this in R, an open source, mature and commonly used programming language for statistical computing. In corpus of 360,321 GitHub repositories published between 2014 and 2021, I extracted 168,857,044 function calls to act as n-grams of the R language. Over the eight-year period, R rapidly diversified and underwent substantial lexical change, driven by increasing popularity of the tidyverse collection of community packages. My results provide evidence that users can influence the evolution of programming languages, with patterns that match those observed in natural languages and reflect genetic evolution. R's evolution may have been driven by increased analytic complexity, driving new users to R, creating both selective pressure for an alternate lexicon and accompanying advective change. The speed and magnitude of this change may have flow-on consequences for the readability and continuity of analytic and scientific inquiries codified in R and similar languages.

研究动机与目标

  • 探究像R这样的编程语言是否像自然语言一样,受到文化与用户驱动力量的影响而发生词汇演变。
  • 评估函数使用变化与包采用情况如何反映成熟开源编程语言中更广泛的语言演变模式。
  • 评估社区开发的包(尤其是tidyverse)在重塑R词汇景观方面所起的作用。
  • 检验编程语言演变是否受语法规则约束,还是由用户偏好和实际可用性驱动。
  • 探讨快速词汇变化对科学软件中代码连续性、可读性和长期可维护性的影响。

提出的方法

  • 使用GitHub API对GitHub仓库进行网络爬取,收集2014年1月至2021年12月期间发布的所有R脚本。
  • 通过文本解析提取函数调用,识别所有左括号'('前的函数名,将其视为1-gram语言单位。
  • 将三个常见语法操作符('%in%'、'[]'、'%>%')作为语料语言学中动词的功能等价物。
  • 将每个函数映射到其关联的R包(包括基础R和社区包),以追踪使用趋势。
  • 按时间段聚合函数调用频率,分析词汇多样性与构成的变化。
  • 应用语言学与生态学框架,解释R中词汇更替、多样性与创新的模式。

实验结果

研究问题

  • RQ1R中使用的函数多样性与构成是否在时间上发生了显著变化,无论是在仓库之间还是仓库内部?
  • RQ2R函数的使用在多大程度上被社区开发的包(尤其是tidyverse)所补充或取代?
  • RQ3是否存在可检测到的函数与包使用趋势,反映出语言演变机制(如文化漂移或选择性压力)?
  • RQ4新语法结构(如管道操作符'%>%')的采用在多大程度上反映了R中更广泛的语法与词汇演变?
  • RQ5R中用户驱动的创新在多大程度上与自然语言演变中观察到的模式(如词汇创新与趋同)相一致?

主要发现

  • 2014至2021年间,R经历了快速的词汇多样化,从360,321个仓库的540万个R脚本中提取了超过1.68亿次函数调用。
  • tidyverse生态系统的兴起是词汇变化的主要驱动力,其函数成为R中最常使用的函数,其受欢迎程度已超过基础R函数。
  • 管道操作符'%>%'最初是tidyverse的创新,其使用量从2014年到2021年增长了12倍,到2021年已出现在20%的仓库中,成为第四大最受欢迎的函数。
  • 2021年最常使用的函数中,超过90%来自社区包,表明R正从基础R向外部开发的工具发生转变。
  • 本研究发现了R中用户主导词汇演变的有力证据,其模式类似于自然语言,包括文化趋同与对可用性的选择性压力。
  • 尽管核心语法规则(如括号表示函数语法)保持稳定,但像管道这样的语法创新迅速出现并广泛传播,表明在用户需求推动下,语法本身也能发生演变。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。