• 学术搜索
  • 科研智能体
    • Research Labs
    • AI 阅读
    • AI 文库
    • 深度研究
    • 学者亮点
  • 学术资源
    • AI2000
    • 期刊/会议
    • 学者库
    • 学术API
      MCP&Skill
    • 溯源树
    • 数据集
  • 知识沉淀
    • 学术空间
订阅小程序
旧版功能
aminer vip
开通会员低至0.73元/天
一次搞定AI科研
立即登录
  • English
  • 联系方式
    Proceedings of the ACM on Programming Languages

    Proceedings of the ACM on Programming Languages

    JournalISSN 2475-1421eISSN 2475-1421中科院 计算机科学 1区

    年发文量

    研究主题

    论文(4221)

    排序
    1Tracking Borrows with Regular Expressions
    Todd Nowacki,Sam Blackshear, John Mitchell,Shaz Qadeer,Ilya Sergey

    Safe systems languages such as Rust enforce an ownership discipline through types: every value has a unique owner, and the type system tracks borrows—references that provide temporary access to values without transferring their ownership. Borrow checking is a static analysis ensuring that no borrow outlives its owner and that no two mutable borrows are aliases, preventing dangling references and data races at compile time. Move, a smart contract language deployed on Sui and Aptos blockchains, adopts this model but restricts references to structured access paths rooted in local variables, eliminating the need for complex lifetime tracking mechanisms such as lifetime annotations. We present a novel type system for Move's borrow checker in which access paths are tracked by regular expressions. In this model, Brzozowski derivatives make it possible to express the reachability consequences of borrowing operations, Kleene star summarises borrow chains from function calls and loops, and the aliasing check reduces to the decidable regex emptiness. The design of the type system with regular expression-based borrow tracking extends naturally to vectors and enumeration types. The proposed design of a borrow checker has been implemented in the Move bytecode verifier for Sui blockchain, where it superseded the original borrow analyser while maintaining full backwards compatibility. We mechanised the type system in Lean with a machine-checked soundness proof and an executable algorithmic type checker tested against the production Move compiler. Notably, this 39,000-line metatheory was developed with an AI proof assistant in roughly one month, and we report on our experience of conducting this proof effort, which is among the largest AI-assisted PL metatheory mechanisations to date.

    2026引用:1
    引用
    AI阅读
    加入学术空间
    2Animated Pictures for Slide Presentations: from the Shallows to the Depths of a Domain-Specific Language (functional Pearl).
    Oliver Flatt, Robert Bruce Findler,Matthew Flatt

    Another DSL for pictures? Seems fishy. But hold fast as we chart a course to an embedded DSL for the domain of slide presentations with animations. Our DSL programs interact with the host language in two ways: by allowing pictures and animations to be built using host-language functions (resembling a shallow embedding), and by allowing host-language reflection on their construction (resembling a deep embedding). As a result, users can define their own animation combinators but still also inspect, adjust, and reassemble animations. To demonstrate our DSL’s expressive power, we show how it supports a Keynote-like Magic Move operation. Having made the DSL shipshape, we dive into a lesson learned about deep and shallow DSL design. While deep and shallow may seem like mutually exclusive options, we argue they are actually points on an entire spectrum of possible DSL designs. More importantly, our paper demonstrates that points on the spectrum between deep and shallow are where DSL designs achieve full sail.

    2026
    引用
    AI阅读
    加入学术空间
    3A Catenable, Splittable, Transient Sequence Data Structure.
    Arthur Charguéraud,François Pottier

    A transient data structure is a combination of an ephemeral data structure, a persistent data structure, and fast conversions between them. We present a transient sequence data structure that supports efficient read and write access at an arbitrary index with worst-case time complexity O ( K log K n ), pushing and popping at either end with complexity O ( K log K n ), and splitting and concatenation with complexity O K log K n + log K 2 n , where K is a user-defined chunk size and n is the length of the sequence. We provide a detailed analysis of this data structure and show that, in many favorable scenarios, it performs much better than these pessimistic bounds might suggest. Furthermore, we describe its implementation, and provide a synthetic benchmark to evaluate the performance of push and pop . We believe that it is a good candidate for a one-size-fits-all, general-purpose sequence data structure.

    2026
    引用
    AI阅读
    加入学术空间
    4Another Type Inference Algorithm for First-Class Implicit Polymorphism.
    J. Garrett Morris

    We propose yet another approach to type inference with first-class implicit polymorphism, based on the interleaving of an Algorithm ℳ-style constraint-generating elaboration of terms and a solver for the generated constraints. The novelty of our approach is that types include explicit syntactic representations of unknown polymorphic types during type inference. Solving unification constraints with unknown polymorphic types also computes type arguments for the elaborated terms. The resulting system is uniform, simple, extends to support domain-specific constraints, and compares favorably with other approaches to first-class implicit polymorphism.

    2026
    引用
    AI阅读
    加入学术空间
    5Tail Modulo Async-Await.
    Emma Nardino,Ludovic Henrio, Gabriel Radanne,Yannick Zakowski

    This article extends tail-call optimisation by applying it to asynchronous calls. We first introduce Tail-Modulo-Await , a novel code transformation for asynchronous tail recursive functions that prevents the creation of unnecessary tasks. We then show how to combine Tail-Modulo-Await with the existing Tail-Modulo-Cons optimisation; we obtain an optimisation able to turn a recursive function with multiple tail calls under constructors into a parallel version of the function, also optimised in space. We formalise both optimisations over representative calculi, and prove them correct through backward simulations. Finally, we provide a proof-of-concept implementation as an OCaml syntax extension and evaluate it experimentally, showing our approach optimises both memory and execution time.

    2026
    引用
    AI阅读
    加入学术空间
    立即登录,查看全部 4221 篇论文

    高被引作者

    作者引用发文
    S. L. Peyton Jones229732
    Koen Claessen226024
    John Hughes202616
    Derek Dreyer192144
    Simon Peyton Jones183623
    Martin Vechev157711
    Eran Yahav15105
    Uri Alon14954
    Lars Birkedal144747
    Dimitrios Vytiniotis144718

    高产作者

    作者引用发文
    Lars Birkedal144747
    Derek Dreyer192144
    Isil Dillig118235
    Nicolas Wu42935
    S. L. Peyton Jones229732
    Stephanie Weirich130231
    Sam Lindley96830
    Robbert Krebbers116728
    Bruno C. d. S. Oliveira23028
    Benjamin C. Pierce142328

    相关期刊

    ACM Transactions on Programming Languages and Systems
    Foundations and Trends in Programming Languages
    International Conference on Computer Aided Verification
    European Joint Conferences on Theory And Practice of Software
    ACM-SIGPLAN Symposium on Programming Language Design and Implementation
    International Symposium on Model Checking Software
    ACM SIGPLAN International Conference on Functional Programming
    International Conference on Verification, Model Checking and Abstract Interpretation
    IEEE Computer Security Foundations Symposium
    Formal Methods in Computer-Aided Design