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億6800万件の関数呼び出しを用いてRプログラミング言語における語彙的進化を検討した。その結果、tidyverseエコシステムの台頭に伴い、Rは急速に語彙的多様化を遂げたことが明らかになった。これは、自然言語と同様に、ユーザー主導の文化的要因がプログラミング言語の進化に影響を与える可能性を示しており、コードの可読性や長期的なソフトウェアの持続可能性に大きな影響を及ぼすものである。

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.

研究の動機と目的

  • プログラミング言語が自然言語と同様に、文化的要因やユーザー主導の要因によって語彙的進化を遂げているかどうかを調査すること。
  • 成熟したオープンソースのプログラミング言語内での言語進化の一般的なパターンを反映する関数使用の変化やパッケージの採用を評価すること。
  • 特にtidyverseのようなコミュニティ開発パッケージが、時間の経過とともにRの語彙的構造をいかに再編成したかを評価すること。
  • プログラミング言語の進化が文法的制約によって制限されているのか、それともユーザーの好みや実用性によって駆動されているのかを検討すること。
  • 急速な語彙的変化が科学的ソフトウェアにおけるコードの継続性、可読性、長期的保守性に与える影響を検討すること。

提案手法

  • 2014年1月から2021年12月までの間、GitHub APIを用いてGitHubリポジトリをウェブスクレイピングし、すべてのRスクリプトを収集した。
  • テキスト解析を用いて関数呼び出しを抽出し、開き括弧'('の直前に現れるすべての関数名を1-グラムの言語的単位として特定した。
  • corpus linguisticsにおける動詞の同等物として、3つの一般的な構文的演算子('%in%'、'[]'、'%>%')を含めた。
  • 各関数をその関連パッケージ(base Rおよびコミュニティパッケージを含む)にマッピングし、使用傾向を追跡した。
  • 時間帯ごとの関数呼び出し頻度を集計し、語彙的多様性と構成の変化を分析した。
  • 言語学的および生態学的フレームワークを適用して、Rにおける語彙的入れ替え、多様性、革新のパターンを解釈した。

実験結果

リサーチクエスチョン

  • RQ12014年から2021年までの間、リポジトリ全体および個々のリポジトリ内で使用されるR関数の多様性と構成に顕著な変化が見られたか?
  • RQ2コミュニティ開発パッケージ、特にtidyverseの使用が、R関数の使用にどの程度補完的または置換的役割を果たしたか?
  • RQ3言語進化のメカニズム(文化的漂流や選択的圧力など)を反映する関数およびパッケージ使用の傾向が検出可能か?
  • RQ4パイプライン演算子'%>%'のような新しい構文的構造の採用は、Rにおける文法的および語彙的進化の広がりをどのように反映しているか?
  • RQ5ユーザー主導のイノベーションが、自然言語進化で観察される語彙的革新や一致のパターンとどの程度類似しているか?

主な発見

  • 2014年から2021年の間に、Rは急速な語彙的多様化を示した。360,321個のリポジトリから540万件のRスクリプトを抽出し、1億6800万件の関数呼び出しが得られた。
  • tidyverseエコシステムの台頭が、語彙的変化の主な駆動要因であった。その関数はRで最も頻繁に使用されるようになり、ベースRの関数をも上回る人気を獲得した。
  • パイプライン演算子'%>%'は、もともとはtidyverseのイノベーションであったが、2014年から2021年にかけて使用頻度が12倍に増加し、2021年時点で20%のリポジトリで使用され、4番目に人気の高い関数となった。
  • 2021年に最も頻繁に使用された関数の90%以上がコミュニティパッケージ由来であり、これはベースRから外部開発ツールへのシフトを示している。
  • 本研究では、ユーザー主導の語彙的進化がRに強く存在することを裏付ける証拠が得られた。自然言語と類似したパターン、たとえば文化的な一致や使いやすさへの選択的圧力が観察された。
  • 関数構文の括弧による基本的な文法の安定性は保たれたが、パイプラインのような構文的イノベーションが急速に出現・広がった。これは、ユーザーの要請に応じて文法自体も進化しうることを示している。

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

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

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

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