skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: First-class environments in R
The R programming language is widely used for statistical computing. To enable interactive data exploration and rapid prototyping, R encourages a dynamic programming style. This programming style is supported by features such as first-class environments. Amongst widely used languages, R has the richest interface for programmatically manipulating environments. With the flexibility afforded by reflective operations on first-class environments, come significant challenges for reasoning and optimizing user-defined code. This paper documents the reflective interface used to operate over first-class environment. We explain the rationale behind its design and conduct a large-scale study of how the interface is used in popular libraries.  more » « less
Award ID(s):
1925644 1759736
PAR ID:
10379892
Author(s) / Creator(s):
;
Date Published:
Journal Name:
ACM SIGPLAN International Symposium on Dynamic Languages
Page Range / eLocation ID:
12 to 22
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Most dynamic languages allow users to turn text into code using various functions, often named eval, with language-dependent semantics. The widespread use of these reflective functions hinders static analysis and prevents compilers from performing optimizations. This paper aims to provide a better sense of why programmers use eval. Understanding why eval is used in practice is key to finding ways to mitigate its negative impact. We have reasons to believe that reflective feature usage is language and application domain-specific; we focus on data science code written in R and compare our results to previous work that analyzed web programming in JavaScript. We analyze 49,296,059 calls to eval from 240,327 scripts extracted from 15,401 R packages. We find that eval is indeed in widespread use; R’s eval is more pervasive and arguably dangerous than what was previously reported for JavaScript. 
    more » « less
  2. Rafferty, Anna N.; Whitehill, Jacob; Cavalli-Sforza, Violetta; Romero, Cristobal (Ed.)
    Teamwork, often mediated by version control systems such as Git and Apache Subversion (SVN), is central to professional programming. As a consequence, many colleges are incorporating both collaboration and online development environments into their curricula even in introductory courses. In this research, we collected GitHub logs from two programming projects in two offerings of a CS2 Java programming course for computer science majors. Students worked in pairs for both projects (one optional, the other mandatory) in each year. We used the students’ GitHub history to classify the student teams into three groups, collaborative, cooperative, or solo-submit, based on the division of labor. We then calculated different metrics for students’ teamwork including the total number and the average number of commits in different parts of the projects and used these metrics to predict the students’ teamwork style. Our findings show that we can identify the students’ teamwork style automatically from their submission logs. This work helps us to better understand novices’ habits while using version control systems. These habits can identify the harmful working styles among them and might lead to the development of automatic scaffolds for teamwork and peer support in the future. 
    more » « less
  3. As interest in programming as a major grows, instructors must accommodate more students in their programming courses. One particularly challenging aspect of this growth is providing quality assistance to students during in-class and out-of-class programming exercises. Prior work proposes using instructor dashboards to help instructors combat these challenges. Further, the introduction of ChatGPT represents an exciting avenue to assist instructors with programming exercises but needs a delivery method for this assistance. We propose a revision of a current instructor dashboard Assistant Dashboard Plus that extends an existing dashboard with two new features: (a) identifying students in difficulty so that instructors can effectively assist them, and (b) providing instructors with pedagogically relevant groupings of students’ exercise solutions with similar implementations so that instructors can provide overlapping code style feedback to students within the same group. For difficulty detection, it uses a state-of-the-art algorithm for which a visualization has not been created. For code clustering, it uses GPT. We present a first-pass implementation of this dashboard 
    more » « less
  4. Individuals' social class background shapes their life experiences and outcomes, including their familial upbringing and educational attainment. However, we know little about how social class background influences the hiring practices of professional settings, and specifically, the ways in which evaluators conceptualize a potential link between social class background and hiring. Through interviewing 50 evaluators at large technology companies, we find that only 19 of them discussed how social class background affects applicants' access to resources, and none articulated the ties between social class background and preferred interpersonal interactional styles. This is particularly troubling because all evaluators described assessing the key hiring criteria of "innovation potential" based on whether applicants display what we term a "transboundary interactional style." This style involves demonstrating an ease with articulating cross-disciplinary ideas as well as facilitating back-and-forth scholarly conversations and debates. While evaluators characterized this style as stemming from applicants' individual personalities, we draw on past sociological literature to suggest that this style is also cultivated in upper-middle-class environments. Given technology companies' expressed desire to hire a diverse workforce by minimizing biases in evaluators' assessments, we conclude with ideas for evaluators to develop more equitable hiring practices. 
    more » « less
  5. null (Ed.)
    Modern database management systems employ sophisticated query optimization techniques that enable the generation of efficient plans for queries over very large data sets. A variety of other applications also process large data sets, but cannot leverage database-style query optimization for their code. We therefore identify an opportunity to enhance an open-source programming language compiler with database-style query optimization. Our system dynamically generates execution plans at query time, and runs those plans on chunks of data at a time. Based on feedback from earlier chunks, alternative plans might be used for later chunks. The compiler extension could be used for a variety of data-intensive applications, allowing all of them to benefit from this class of performance optimizations. 
    more » « less