Skip to main content

Showing 1–19 of 19 results for author: Krishnamurthi, S

Searching in archive cs. Search in all archives.
.
  1. Privacy-Respecting Type Error Telemetry at Scale

    Authors: Ben Greenman, Alan Jeffrey, Shriram Krishnamurthi, Mitesh Shah

    Abstract: Context: Roblox Studio lets millions of creators build interactive experiences by programming in a variant of Lua called Luau. The creators form a broad group, ranging from novices writing their first script to professional developers; thus, Luau must support a wide audience. As part of its efforts to support all kinds of programmers, Luau includes an optional, gradual type system and goes to grea… ▽ More

    Submitted 4 March, 2024; originally announced March 2024.

    Journal ref: The Art, Science, and Engineering of Programming, 2024, Vol. 8, Issue 3, Article 12

  2. arXiv:2401.01257  [pdf, other

    cs.PL

    Profiling Programming Language Learning

    Authors: Will Crichton, Shriram Krishnamurthi

    Abstract: This paper documents a year-long experiment to "profile" the process of learning a programming language: gathering data to understand what makes a language hard to learn, and using that data to improve the learning process. We added interactive quizzes to The Rust Programming Language, the official textbook for learning Rust. Over 13 months, 62,526 readers answered questions 1,140,202 times. First… ▽ More

    Submitted 2 January, 2024; originally announced January 2024.

    Comments: To appear at OOPSLA'24

  3. Conceptual Mutation Testing for Student Programming Misconceptions

    Authors: Siddhartha Prasad, Ben Greenman, Tim Nelson, Shriram Krishnamurthi

    Abstract: Context: Students often misunderstand programming problem descriptions. This can lead them to solve the wrong problem, which creates frustration, obstructs learning, and imperils grades. Researchers have found that students can be made to better understand the problem by writing examples before they start programming. These examples are checked against correct and wrong implementations -- analogou… ▽ More

    Submitted 28 December, 2023; originally announced January 2024.

    Journal ref: The Art, Science, and Engineering of Programming, 2024, Vol. 8, Issue 2, Article 7

  4. A Core Calculus for Documents

    Authors: Will Crichton, Shriram Krishnamurthi

    Abstract: Passive documents and active programs now widely comingle. Document languages include Turing-complete programming elements, and programming languages include sophisticated document notations. However, there are no formal foundations that model these languages. This matters because the interaction between document and program can be subtle and error-prone. In this paper we describe several such pro… ▽ More

    Submitted 14 November, 2023; v1 submitted 6 October, 2023; originally announced October 2023.

    Comments: Published at POPL 2024

  5. arXiv:2309.04134  [pdf, other

    cs.PL cs.HC

    A Grounded Conceptual Model for Ownership Types in Rust

    Authors: Will Crichton, Gavin Gray, Shriram Krishnamurthi

    Abstract: Programmers learning Rust struggle to understand ownership types, Rust's core mechanism for ensuring memory safety without garbage collection. This paper describes our attempt to systematically design a pedagogy for ownership types. First, we studied Rust developers' misconceptions of ownership to create the Ownership Inventory, a new instrument for measuring a person's knowledge of ownership. We… ▽ More

    Submitted 8 September, 2023; originally announced September 2023.

    Comments: Published at OOPSLA 2023

  6. arXiv:2304.04265  [pdf, ps, other

    cs.PL

    Dependently Ty** R Vectors, Arrays, and Matrices

    Authors: John Wrenn, Anjali Pal, Alexa VanHattum, Shriram Krishnamurthi

    Abstract: The R programming language is widely used in large-scale data analyses. It contains especially rich built-in support for dealing with vectors, arrays, and matrices. These operations feature prominently in the applications that form R's raison d'ĂȘtre, making their behavior worth understanding. Furthermore, ostensibly for programmer convenience, their behavior in R is a notable extension over the co… ▽ More

    Submitted 9 April, 2023; originally announced April 2023.

    Comments: 10 pages

    ACM Class: D.3

  7. Little Tricky Logic: Misconceptions in the Understanding of LTL

    Authors: Ben Greenman, Sam Saarinen, Tim Nelson, Shriram Krishnamurthi

    Abstract: Context: Linear Temporal Logic (LTL) has been used widely in verification. Its importance and popularity have only grown with the revival of temporal logic synthesis, and with new uses of LTL in robotics and planning activities. All these uses demand that the user have a clear understanding of what an LTL specification means. Inquiry: Despite the growing use of LTL, no studies have investigated… ▽ More

    Submitted 3 November, 2022; originally announced November 2022.

    Journal ref: The Art, Science, and Engineering of Programming, 2023, Vol. 7, Issue 2, Article 7

  8. Gradual Soundness: Lessons from Static Python

    Authors: Kuang-Chen Lu, Ben Greenman, Carl Meyer, Dino Viehland, Aniket Panse, Shriram Krishnamurthi

    Abstract: Context: Gradually-typed languages allow typed and untyped code to interoperate, but typically come with significant drawbacks. In some languages, the types are unreliable; in others, communication across type boundaries can be extremely expensive; and still others allow only limited forms of interoperability. The research community is actively seeking a sound, fast, and expressive approach to gra… ▽ More

    Submitted 28 June, 2022; originally announced June 2022.

    Journal ref: The Art, Science, and Engineering of Programming, 2023, Vol. 7, Issue 1, Article 2

  9. Automated, Targeted Testing of Property-Based Testing Predicates

    Authors: Tim Nelson, Elijah Rivera, Sam Soucie, Thomas Del Vecchio, John Wrenn, Shriram Krishnamurthi

    Abstract: Context: This work is based on property-based testing (PBT). PBT is an increasingly important form of software testing. Furthermore, it serves as a concrete gateway into the abstract area of formal methods. Specifically, we focus on students learning PBT methods. Inquiry: How well do students do at PBT? Our goal is to assess the quality of the predicates they write as part of PBT. Prior work int… ▽ More

    Submitted 19 November, 2021; originally announced November 2021.

    Journal ref: The Art, Science, and Engineering of Programming, 2022, Vol. 6, Issue 2, Article 10

  10. Types for Tables: A Language Design Benchmark

    Authors: Kuang-Chen Lu, Ben Greenman, Shriram Krishnamurthi

    Abstract: Context: Tables are ubiquitous formats for data. Therefore, techniques for writing correct programs over tables, and debugging incorrect ones, are vital. Our specific focus in this paper is on rich types that articulate the properties of tabular operations. We wish to study both their expressive power and _diagnostic quality_. Inquiry: There is no "standard library" of table operations. As a res… ▽ More

    Submitted 19 November, 2021; originally announced November 2021.

    Journal ref: The Art, Science, and Engineering of Programming, 2022, Vol. 6, Issue 2, Article 8

  11. arXiv:2108.02660  [pdf, other

    cs.CR cs.HC

    Computing and Authentication Practices in Global Oil and Gas Fields

    Authors: Mary Rose Martinez, Shriram Krishnamurthi

    Abstract: Oil and gas fields are a critical part of our infrastructure, and vulnerable to attack by powerful adversaries. In addition, these are often difficult work environments, with constraints on space, clothing, and more. Yet there is little research on the technology practices and constraints of workers in these environments. We present what we believe is the first survey of oil- and gas-field workers… ▽ More

    Submitted 5 August, 2021; originally announced August 2021.

    Comments: A partial and abbreviated version of this paper appears in EuroUSEC, the European Symposium on Usable Security, 2021

  12. Using Relational Problems to Teach Property-Based Testing

    Authors: John Wrenn, Tim Nelson, Shriram Krishnamurthi

    Abstract: Context: The success of QuickCheck has led to the development of property-based testing (PBT) libraries for many languages and the process is getting increasing attention. However, unlike regular testing, PBT is not widespread in collegiate curricula. Furthermore, the value of PBT is not limited to software testing. The growing use of formal methods in, and the growth of software synthesis, all cr… ▽ More

    Submitted 30 October, 2020; originally announced October 2020.

    Journal ref: The Art, Science, and Engineering of Programming, 2021, Vol. 5, Issue 2, Article 9

  13. arXiv:2005.01794  [pdf, ps, other

    cs.CY

    Data Science as a Route to AI for Middle- and High-School Students

    Authors: Shriram Krishnamurthi, Emmanuel Schanzer, Joe Gibbs Politz, Benjamin S. Lerner, Kathi Fisler, Sam Dooman

    Abstract: The Bootstrap Project's Data Science curriculum has trained about 100 teachers who are using it around the country. It is specifically designed to aid adoption at a wide range of institutions. It emphasizes valuable curricular goals by drawing on both the education literature and on prior experience with other computing outreach projects. It embraces "three P's" of data-oriented thinking: the prom… ▽ More

    Submitted 30 April, 2020; originally announced May 2020.

    Comments: Accepted and presented at the "Teaching AI in K-12" Symposium, part of the AAAI 2019 Fall Symposium Series

  14. Event Loops as First-Class Values: A Case Study in Pedagogic Language Design

    Authors: Joe Politz, Benjamin Lerner, Sorawee Porncharoenwase, Shriram Krishnamurthi

    Abstract: The World model is an existing functional input-output mechanism for event-driven programming. It is used in numerous popular textbooks and curricular settings. The World model conflates two different tasks -- the definition of an event processor and its execution -- into one. This conflation imposes a significant (even unacceptable) burden on student users in several educational settings where we… ▽ More

    Submitted 2 February, 2019; originally announced February 2019.

    Journal ref: The Art, Science, and Engineering of Programming, 2019, Vol. 3, Issue 3, Article 11

  15. arXiv:1802.02974  [pdf, other

    cs.PL

    Putting in All the Stops: Execution Control for JavaScript

    Authors: Samuel Baxter, Rachit Nigam, Joe Gibbs Politz, Shriram Krishnamurthi, Arjun Guha

    Abstract: Scores of compilers produce JavaScript, enabling programmers to use many languages on the Web, reuse existing code, and even use Web IDEs. Unfortunately, most compilers inherit the browser's compromised execution model, so long-running programs freeze the browser tab, infinite loops crash IDEs, and so on. The few compilers that avoid these problems suffer poor performance and are difficult to engi… ▽ More

    Submitted 15 April, 2018; v1 submitted 8 February, 2018; originally announced February 2018.

    Comments: In proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) 2018

  16. arXiv:1607.03385  [pdf, other

    cs.NI

    Compiling Stateful Network Properties for Runtime Verification

    Authors: Tim Nelson, Nicholas DeMarinis, Timothy Adam Hoff, Rodrigo Fonseca, Shriram Krishnamurthi

    Abstract: Networks are difficult to configure correctly, and tricky to debug. These problems are accentuated by temporal and stateful behavior. Static verification, while useful, is ineffectual for detecting behavioral deviations induced by hardware faults, security failures, and so on, so dynamic property monitoring is also valuable. Unfortunately, existing monitoring and runtime verification for networks… ▽ More

    Submitted 15 July, 2016; v1 submitted 12 July, 2016; originally announced July 2016.

  17. The Essence of JavaScript

    Authors: Arjun Guha, Claudiu Saftoiu, Shriram Krishnamurthi

    Abstract: We reduce JavaScript to a core calculus structured as a small-step operational semantics. We present several peculiarities of the language and show that our calculus models them. We explicate the desugaring process that turns JavaScript programs into ones in the core. We demonstrate faithfulness to JavaScript using real-world test suites. Finally, we illustrate utility by defining a security prope… ▽ More

    Submitted 4 October, 2015; originally announced October 2015.

    Comments: European Conference on Object-Oriented Programming (ECOOP) 2010

  18. arXiv:1506.07813  [pdf, ps, other

    cs.PL

    ADsafety: Type-Based Verification of JavaScript Sandboxing

    Authors: Joe Gibbs Politz, Spiridon Eliopoulos, Arjun Guha, Shriram Krishnamurthi

    Abstract: Web sites routinely incorporate JavaScript programs from several sources into a single page. These sources must be protected from one another, which requires robust sandboxing. The many entry-points of sandboxes and the subtleties of JavaScript demand robust verification of the actual sandbox source. We use a novel type system for JavaScript to encode and verify sandboxing properties. The resultin… ▽ More

    Submitted 25 June, 2015; originally announced June 2015.

    Comments: in Proceedings of the USENIX Security Symposium (2011)

  19. arXiv:cs/0310040  [pdf, ps, other

    cs.SE

    Automated Fault Localization Using Potential Invariants

    Authors: Brock Pytlik, Manos Renieris, Shriram Krishnamurthi, Steven P. Reiss

    Abstract: We present a general method for fault localization based on abstracting over program traces, and a tool that implements the method using Ernst's notion of potential invariants. Our experiments so far have been unsatisfactory, suggesting that further research is needed before invariants can be used to locate faults.

    Submitted 18 October, 2003; originally announced October 2003.

    Comments: In M. Ronsse, K. De Bosschere (eds), proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003), September 2003, Ghent. cs.SE/0309027

    ACM Class: D.2.5