样式: 排序: IF: - GO 导出 标记为已读
-
CFLOBDDs: Context-Free-Language Ordered Binary Decision Diagrams ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-03-04 Meghana Aparna Sistla, Swarat Chaudhuri, Thomas Reps
This paper presents a new compressed representation of Boolean functions, called CFLOBDDs (for Context-Free-Language Ordered Binary Decision Diagrams). They are essentially a plug-compatible alternative to BDDs (Binary Decision Diagrams), and hence useful for representing certain classes of functions, matrices, graphs, relations, etc. in a highly compressed fashion. CFLOBDDs share many of the good
-
Adversities in Abstract Interpretation: Accommodating Robustness by Abstract Interpretation: ACM Transactions on Programming Languages and Systems: Vol 0, No ja ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-02-24 Roberto Giacobazzi, Isabella Mastroeni, Elia Perantoni
Robustness is a key and desirable property of any classifying system, in particular, to avoid the ever-rising threat of adversarial attacks. Informally, a classification system is robust when the result is not affected by the perturbation of the input. This notion has been extensively studied, but little attention has been dedicated to how the perturbation affects the classification. The interference
-
Homeostasis: Design and Implementation of a Self-Stabilizing Compiler ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-02-23 Aman Nougrahiya, V. Krishna Nandivada
Mainstream compilers perform a multitude of analyses and optimizations on the given input program. Each analysis (such as points-to analysis) may generate a program-abstraction (such as points-to graph). Each optimization is typically composed of multiple alternating phases of inspection of such program-abstractions and transformations of the program. Upon transformation of a program, the program-abstractions
-
Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-02-16 Crystal Chang Din, Reiner Hähnle, Ludovic Henrio, Einar Broch Johnsen, Violet Ka I Pun, S. Lizeth Tapia Tarifa
Formal, mathematically rigorous programming language semantics are the essential prerequisite for the design of logics and calculi that permit automated reasoning about concurrent programs. We propose a novel modular semantics designed to align smoothly with program logics used in deductive verification and formal specification of concurrent programs. Our semantics separates local evaluation of expressions
-
Interactive Abstract Interpretation with Demanded Summarization ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-02-15 Benno Stein, Bor-Yuh Evan Chang, Manu Sridharan
We consider the problem of making expressive, interactive static analyzers compositional. Such a technique could help bring the power of server-based static analyses to integrated development environments (IDEs), updating their results live as the code is modified. Compositionality is key for this scenario, as it enables reuse of already-computed analysis results for unmodified code. Previous techniques
-
Decomposition-Based Synthesis for Applying Divide-and-Conquer-Like Algorithmic Paradigms ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-02-14 Ruyi Ji, Yuwei Zhao, Yingfei Xiong, Di Wang, Lu Zhang, Zhenjiang Hu
Algorithmic paradigms such as divide-and-conquer (D&C) are proposed to guide developers in designing efficient algorithms, but it can still be difficult to apply algorithmic paradigms to practical tasks. To ease the usage of paradigms, many research efforts have been devoted to the automatic application of algorithmic paradigms. However, most existing approaches to this problem rely on syntax-based
-
Choral: Object-oriented Choreographic Programming ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-01-16 Saverio Giallorenzo, Fabrizio Montesi, Marco Peressotti
Choreographies are coordination plans for concurrent and distributed systems, which define the roles of the involved participants and how they are supposed to work together. In the paradigm of choreographic programming, choreographies are programs that can be compiled into executable implementations. In this article, we present Choral, the first choreographic programming language based on mainstream
-
LoRe: A Programming Model for Verifiably Safe Local-first Software ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2024-01-15 Julian Haas, Ragnar Mogk, Elena Yanakieva, Annette Bieniusa, Mira Mezini
Local-first software manages and processes private data locally while still enabling collaboration between multiple parties connected via partially unreliable networks. Such software typically involves interactions with users and the execution environment (the outside world). The unpredictability of such interactions paired with their decentralized nature make reasoning about the correctness of local-first
-
Focusing on Refinement Typing ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-12-20 Dimitrios J. Economou, Neel Krishnaswami, Jana Dunfield
We present a logically principled foundation for systematizing, in a way that works with any computational effect and evaluation order, SMT constraint generation seen in refinement type systems for functional programming languages. By carefully combining a focalized variant of call-by-push-value, bidirectional typing, and our novel technique of value-determined indexes, our system generates solvable
-
Exploiting Partially Context-sensitive Profiles to Improve Performance of Hot Code ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-12-01 Maja Vukasovic, Aleksandar Prokopec
Availability of profiling information is a major advantage of just-in-time (JIT) compilation. Profiles guide the compilation order and optimizations, thus substantially improving program performance. Ahead-of-time (AOT) compilation can also utilize profiles, obtained during separate profiling runs of the programs. Profiles can be context-sensitive, i.e., each profile entry is associated with a call-stack
-
Capturing Types ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-11-20 Aleksander Boruch-Gruszecki, Martin Odersky, Edward Lee, Ondřej Lhoták, Jonathan Brachthäuser
Type systems usually characterize the shape of values but not their free variables. However, many desirable safety properties could be guaranteed if one knew the free variables captured by values. We describe CC< :◻, a calculus where such captured variables are succinctly represented in types, and show it can be used to safely implement effects and effect polymorphism via scoped capabilities. We discuss
-
Optimizing Homomorphic Evaluation Circuits by Program Synthesis and Time-bounded Exhaustive Search ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-09-23 Dongkwon Lee, Woosuk Lee, Hakjoo Oh, Kwangkeun Yi
We present a new and general method for optimizing homomorphic evaluation circuits. Although fully homomorphic encryption (FHE) holds the promise of enabling safe and secure third party computation, building FHE applications has been challenging due to their high computational costs. Domain-specific optimizations require a great deal of expertise on the underlying FHE schemes and FHE compilers that
-
Prisma : A Tierless Language for Enforcing Contract-client Protocols in Decentralized Applications ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-09-23 David Richter, David Kretzler, Pascal Weisenburger, Guido Salvaneschi, Sebastian Faust, Mira Mezini
Decentralized applications (dApps) consist of smart contracts that run on blockchains and clients that model collaborating parties. dApps are used to model financial and legal business functionality. Today, contracts and clients are written as separate programs—in different programming languages—communicating via send and receive operations. This makes distributed program flow awkward to express and
-
A Verified Optimizer for Quantum Circuits ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-09-23 Kesha Hietala, Robert Rand, Liyi Li, Shih-Han Hung, Xiaodi Wu, Michael Hicks
We present voqc, the first verified optimizer for quantum circuits, written using the Coq proof assistant. Quantum circuits are expressed as programs in a simple, low-level language called sqir, a small quantum intermediate representation, which is deeply embedded in Coq. Optimizations and other transformations are expressed as Coq functions, which are proved correct with respect to a semantics of
-
A Model Checker for Operator Precedence Languages ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-09-23 Michele Chiari, Dino Mandrioli, Francesco Pontiggia, Matteo Pradella
The problem of extending model checking from finite state machines to procedural programs has fostered much research toward the definition of temporal logics for reasoning on context-free structures. The most notable of such results are temporal logics on Nested Words, such as CaRet and NWTL. Recently, Precedence Oriented Temporal Logic (POTL) has been introduced to specify and prove properties of
-
SSProve: A Foundational Framework for Modular Cryptographic Proofs in Coq ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-07-20 Philipp G. Haselwarter, Exequiel Rivas, Antoine Van Muylder, Théo Winterhalter, Carmine Abate, Nikolaj Sidorenco, Cătălin Hriţcu, Kenji Maillard, Bas Spitters
State-separating proofs (SSP) is a recent methodology for structuring game-based cryptographic proofs in a modular way, by using algebraic laws to exploit the modular structure of composed protocols. While promising, this methodology was previously not fully formalized and came with little tool support. We address this by introducing SSProve, the first general verification framework for machine-checked
-
Multiple Input Parsing and Lexical Analysis ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-07-19 Elizabeth Scott, Adrian Johnstone, Robert Walsh
This article introduces two new approaches in the areas of lexical analysis and context-free parsing. We present an extension, MGLL, of generalised parsing which allows multiple input strings to be parsed together efficiently, and we present an enhanced approach to lexical analysis which exploits this multiple parsing capability. The work provides new power to formal language specification and disambiguation
-
Prisma: A Tierless Language for Enforcing Contract-Client Protocols in Decentralized Applications ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-07-18 David Richter, David Kretzler, Pascal Weisenburger, Guido Salvaneschi, Sebastian Faust, Mira Mezini
Decentralized applications (dApps) consist of smart contracts that run on blockchains and clients that model collaborating parties. dApps are used to model financial and legal business functionality. Today, contracts and clients are written as separate programs – in different programming languages – communicating via send and receive operations. This makes distributed program flow awkward to express
-
A Verified Optimizer for Quantum Circuits ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-07-12 Kesha Hietala, Robert Rand, Liyi Li, Shih-Han Hung, Xiaodi Wu, Michael Hicks
We present voqc, the first verified optimizer for quantum circuits, written using the Coq proof assistant. Quantum circuits are expressed as programs in a simple, low-level language called sqir, a small quantum intermediate representation, which is deeply embedded in Coq. Optimizations and other transformations are expressed as Coq functions, which are proved correct with respect to a semantics of
-
Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-06-26 Eugene Yip, Alain Girault, Partha S. Roop, Morteza Biglari-Abhari
Embedded real-time systems are tightly integrated with their physical environment. Their correctness depends both on the outputs and timeliness of their computations. The increasing use of multi-core processors in such systems is pushing embedded programmers to be parallel programming experts. However, parallel programming is challenging because of the skills, experiences, and knowledge needed to avoid
-
Passport: Improving Automated Formal Verification Using Identifiers ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-06-26 Alex Sanchez-Stern, Emily First, Timothy Zhou, Zhanna Kaufman, Yuriy Brun, Talia Ringer
Formally verifying system properties is one of the most effective ways of improving system quality, but its high manual effort requirements often render it prohibitively expensive. Tools that automate formal verification by learning from proof corpora to synthesize proofs have just begun to show their promise. These tools are effective because of the richness of the data the proof corpora contain.
-
Side-channel Elimination via Partial Control-flow Linearization ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-06-26 Luigi Soares, Michael Canesche, Fernando Magno Quintão Pereira
Partial control-flow linearization is a code transformation conceived to maximize work performed in vectorized programs. In this article, we find a new service for it. We show that partial control-flow linearization protects programs against timing attacks. This transformation is sound: Given an instance of its public inputs, the partially linearized program always runs the same sequence of instructions
-
Optimization-Aware Compiler-Level Event Profiling ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-06-26 Matteo Basso, Aleksandar Prokopec, Andrea Rosà, Walter Binder
Tracking specific events in a program’s execution, such as object allocation or lock acquisition, is at the heart of dynamic analysis. Despite the apparent simplicity of this task, quantifying these events is challenging due to the presence of compiler optimizations. Profiling perturbs the optimizations that the compiler would normally do—a profiled program usually behaves differently than the original
-
Contextual Linear Types for Differential Privacy ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-05-17 Matías Toro, David Darais, Chike Abuah, Joseph P. Near, Damián Árquez, Federico Olmedo, Éric Tanter
Language support for differentially private programming is both crucial and delicate. While elaborate program logics can be very expressive, type-system-based approaches using linear types tend to be more lightweight and amenable to automatic checking and inference, and in particular in the presence of higher-order programming. Since the seminal design of Fuzz, which is restricted to ϵ-differential
-
A First-order Logic with Frames ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-05-15 Adithya Murali, Lucas Peña, Christof Löding, P. Madhusudan
We propose a novel logic, Frame Logic (FL), that extends first-order logic and recursive definitions with a construct Sp(·) that captures the implicit supports of formulas—the precise subset of the universe upon which their meaning depends. Using such supports, we formulate proof rules that facilitate frame reasoning elegantly when the underlying model undergoes change. We show that the logic is expressive
-
A Derivative-based Parser Generator for Visibly Pushdown Grammars ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-05-15 Xiaodong Jia, Ashish Kumar, Gang Tan
In this article, we present a derivative-based, functional recognizer and parser generator for visibly pushdown grammars. The generated parser accepts ambiguous grammars and produces a parse forest containing all valid parse trees for an input string in linear time. Each parse tree in the forest can then be extracted also in linear time. Besides the parser generator, to allow more flexible forms of
-
Omnisemantics: Smooth Handling of Nondeterminism ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-03-08 Arthur Charguéraud, Adam Chlipala, Andres Erbsen, Samuel Gruetter
This article gives an in-depth presentation of the omni-big-step and omni-small-step styles of semantic judgments. These styles describe operational semantics by relating starting states to sets of outcomes rather than to individual outcomes. A single derivation of these semantics for a particular starting state and program describes all possible nondeterministic executions (hence the name omni), whereas
-
Typed–Untyped Interactions: A Comparative Analysis ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-03-05 Ben Greenman, Christos Dimoulas, Matthias Felleisen
The literature presents many strategies for enforcing the integrity of types when typed code interacts with untyped code. This article presents a uniform evaluation framework that characterizes the differences among some major existing semantics for typed–untyped interaction. Type system designers can use this framework to analyze the guarantees of their own dynamic semantics.
-
The Tortoise and the Hare Algorithm for Finite Lists, Compositionally ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-03-03 Olivier Danvy
In the tortoise-and-hare algorithm, when the fast pointer reaches the end of a finite list, the slow pointer points to the middle of this list. In the early 2000’s, this property was found to make it possible to program a palindrome detector for immutable lists that operates in one recursive traversal of the given list and performs the smallest possible number of comparisons, using the “There And Back
-
Towards Porting Operating Systems with Program Synthesis ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-03-03 Jingmei Hu, Eric Lu, David A. Holland, Ming Kawaguchi, Stephen Chong, Margo Seltzer
The end of Moore’s Law has ushered in a diversity of hardware not seen in decades. Operating system (OS) (and system software) portability is accordingly becoming increasingly critical. Simultaneously, there has been tremendous progress in program synthesis. We set out to explore the feasibility of using modern program synthesis to generate the machine-dependent parts of an operating system. Our ultimate
-
Immutability and Encapsulation for Sound OO Information Flow Control ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-03-03 Tobias Runge, Marco Servetto, Alex Potanin, Ina Schaefer
Security-critical software applications contain confidential information which has to be protected from leaking to unauthorized systems. With language-based techniques, the confidentiality of applications can be enforced. Such techniques are for example type systems that enforce an information flow policy through typing rules. The precision of such type systems, especially in object-oriented languages
-
Satisfiability Modulo Ordering Consistency Theory for SC, TSO, and PSO Memory Models ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-03-03 Hongyu Fan, Zhihang Sun, Fei He
Automatically verifying multi-threaded programs is difficult because of the vast number of thread interleavings, a problem aggravated by weak memory consistency. Partial orders can help with verification because they can represent many thread interleavings concisely. However, there is no dedicated decision procedure for solving partial-order constraints. In this article, we propose a novel ordering
-
A Relational Program Logic with Data Abstraction and Dynamic Framing ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2023-01-10 Anindya Banerjee, Ramana Nagasamudram, David Naumann, Mohammad Nikouei
Dedicated to Tony Hoare. In a paper published in 1972, Hoare articulated the fundamental notions of hiding invariants and simulations. Hiding: invariants on encapsulated data representations need not be mentioned in specifications that comprise the API of a module. Simulation: correctness of a new data representation and implementation can be established by proving simulation between the old and new
-
A Type Discipline for Message Passing Parallel Programs ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-12-21 Vasco T. Vasconcelos, Francisco Martins, Hugo-Andrés López, Nobuko Yoshida
We present ParTypes, a type discipline for parallel programs. The model we have in mind comprises a fixed number of processes running in parallel and communicating via collective operations or point-to-point synchronous message exchanges. A type describes a protocol to be followed by each processes in a given program. We present the type theory, a core imperative programming language and its operational
-
Contextual Linear Types for Differential Privacy ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-12-16 Matías Toro, David Darais, Chike Abuah, Joseph P. Near, Damián Árquez, Federico Olmedo, Éric Tanter
Language support for differentially private programming is both crucial and delicate. While elaborate program logics can be very expressive, type-system-based approaches using linear types tend to be more lightweight and amenable to automatic checking and inference, and in particular in the presence of higher-order programming. Since the seminal design of Fuzz, which is restricted to ϵ-differential
-
Containerless Plurals: Separating Number from Type in Object-Oriented Programming ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-09-21 Friedrich Steimann
To let expressions evaluate to no or many objects, most object-oriented programming languages require the use of special constructs that encode these cases as single objects or values. While the requirement to treat these standard situations idiomatically seems to be broadly accepted, I argue that its alternative, letting expressions evaluate to any number of objects directly, has several advantages
-
Deep Dive into ZGC: A Modern Garbage Collector in OpenJDK ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-09-21 Albert Mingkun Yang, Tobias Wrigstad
ZGC is a modern, non-generational, region-based, mostly concurrent, parallel, mark-evacuate collector recently added to OpenJDK. It aims at having GC pauses that do not grow as the heap size increases, offering low latency even with large heap sizes. The ZGC C++ source code is readily accessible in the OpenJDK repository, but reading it (25 KLOC) can be very intimidating, and one might easily get lost
-
Two Parametricities Versus Three Universal Types ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-09-21 Dominique Devriese, Marco Patrignani, Frank Piessens
The formal calculus System F models the essence of polymorphism and abstract data types, features that exist in many programming languages. The calculus’ core property is parametricity: a theorem expressing the language’s abstractions and validating important principles like information hiding and modularity. When System F is combined with features like recursive types, mutable state, continuations
-
Revisiting Iso-Recursive Subtyping ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-09-21 Yaoda Zhou, Jinxu Zhao, Bruno C. D. S. Oliveira
The Amber rules are well-known and widely used for subtyping iso-recursive types. They were first briefly and informally introduced in 1985 by Cardelli in a manuscript describing the Amber language. Despite their use over many years, important aspects of the metatheory of the iso-recursive style Amber rules have not been studied in depth or turn out to be quite challenging to formalize. This article
-
CHAD: Combinatory Homomorphic Automatic Differentiation ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-08-17 Matthijs Vákár, Tom Smeding
We introduce Combinatory Homomorphic Automatic Differentiation (CHAD), a principled, pure, provably correct define-then-run method for performing forward and reverse mode automatic differentiation (AD) on programming languages with expressive features. It implements AD as a compositional, type-respecting source-code transformation that generates purely functional code. This code transformation is principled
-
For a Few Dollars More: Verified Fine-Grained Algorithm Analysis Down to LLVM ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-07-15 Maximilian P. L. Haslbeck, Peter Lammich
We present a framework to verify both, functional correctness and (amortized) worst-case complexity of practically efficient algorithms. We implemented a stepwise refinement approach, using the novel concept of resource currencies to naturally structure the resource analysis along the refinement chain, and allow a fine-grained analysis of operation counts. Our framework targets the LLVM intermediate
-
Types for Complexity of Parallel Computation in Pi-calculus ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-07-15 Patrick Baillot, Alexis Ghyselen
Type systems as a technique to analyse or control programs have been extensively studied for functional programming languages. In particular, some systems allow one to extract from a typing derivation a complexity bound on the program. We explore how to extend such results to parallel complexity in the setting of pi-calculus, considered as a communication-based model for parallel computation. Two notions
-
Strong-separation Logic ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-07-15 Jens Pagel, Florian Zuleger
Most automated verifiers for separation logic are based on the symbolic-heap fragment, which disallows both the magic-wand operator and the application of classical Boolean operators to spatial formulas. This is not surprising, as support for the magic wand quickly leads to undecidability, especially when combined with inductive predicates for reasoning about data structures. To circumvent these undecidability
-
Runtime Complexity Bounds Using Squeezers ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-07-15 Oren Ish-Shalom, Shachar Itzhaky, Noam Rinetzky, Sharon Shoham
Determining upper bounds on the time complexity of a program is a fundamental problem with a variety of applications, such as performance debugging, resource certification, and compile-time optimizations. Automated techniques for cost analysis excel at bounding the resource complexity of programs that use integer values and linear arithmetic. Unfortunately, they fall short when the complexity depends
-
Session Coalgebras: A Coalgebraic View on Regular and Context-free Session Types ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-07-15 Alex C. Keizer, Henning Basold, Jorge A. Pérez
Compositional methods are central to the verification of software systems. For concurrent and communicating systems, compositional techniques based on behavioural type systems have received much attention. By abstracting communication protocols as types, these type systems can statically check that channels in a program interact following a certain protocol—whether messages are exchanged in the intended
-
Nested Session Types ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-07-15 Ankush Das, Henry Deyoung, Andreia Mordido, Frank Pfenning
Session types statically describe communication protocols between concurrent message-passing processes. Unfortunately, parametric polymorphism even in its restricted prenex form is not fully understood in the context of session types. In this article, we present the metatheory of session types extended with prenex polymorphism and, as a result, nested recursive datatypes. Remarkably, we prove that
-
TF-Coder: Program Synthesis for Tensor Manipulations ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-05-27 Kensen Shi, David Bieber, Rishabh Singh
The success and popularity of deep learning is on the rise, partially due to powerful deep learning frameworks such as TensorFlow and PyTorch, which make it easier to develop deep learning models. However, these libraries also come with steep learning curves, since programming in these frameworks is quite different from traditional imperative programming with explicit loops and conditionals. In this
-
Fast Graph Simplification for Interleaved-Dyck Reachability ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-05-27 Yuanbo Li, Qirun Zhang, Thomas Reps
Many program-analysis problems can be formulated as graph-reachability problems. Interleaved Dyck language reachability (InterDyck-reachability) is a fundamental framework to express a wide variety of program-analysis problems over edge-labeled graphs. The InterDyck language represents an intersection of multiple matched-parenthesis languages (i.e., Dyck languages). In practice, program analyses typically
-
Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-05-27 Jacob R. Lorch, Yixuan Chen, Manos Kapritsos, Haojun Ma, Bryan Parno, Shaz Qadeer, Upamanyu Sharma, James R. Wilcox, Xueyuan Zhao
Safely writing high-performance concurrent programs is notoriously difficult. To aid developers, we introduce Armada, a language and tool designed to formally verify such programs with relatively little effort. Via a C-like language and a small-step, state-machine-based semantics, Armadagives developers the flexibility to choose arbitrary memory layout and synchronization primitives so that they are
-
Containerless Plurals: Separating Number from Type in Object-Oriented Programming ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-04-21 Friedrich Steimann
To let expressions evaluate to no or many objects, most object-oriented programming languages require the use of special constructs that encode these cases as single objects or values. While the requirement to treat these standard situations idiomatically seems to be broadly accepted, I argue that its alternative, letting expressions evaluate to any number of objects directly, has several advantages
-
What’s Decidable About Causally Consistent Shared Memory? ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-04-06 Ori Lahav, Udi Boker
While causal consistency is one of the most fundamental consistency models weaker than sequential consistency, the decidability of safety verification for (finite-state) concurrent programs running under causally consistent shared memories is still unclear. In this article, we establish the decidability of this problem for two standard and well-studied variants of causal consistency. To do so, for
-
Prophecy Made Simple ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-04-06 Leslie Lamport, Stephan Merz
Prophecy variables were introduced in the article “The Existence of Refinement Mappings” by Abadi and Lamport. They were difficult to use in practice. We describe a new kind of prophecy variable that we find much easier to use. We also reformulate ideas from that article in a more mathematical way.
-
Gradualizing the Calculus of Inductive Constructions ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-04-06 Meven Lennon-Bertrand, Kenji Maillard, Nicolas Tabareau, Éric Tanter
We investigate gradual variations on the Calculus of Inductive Construction (CIC) for swifter prototyping with imprecise types and terms. We observe, with a no-go theorem, a crucial trade-off between graduality and the key properties of normalization and closure of universes under dependent product that CIC enjoys. Beyond this Fire Triangle of Graduality, we explore the gradualization of CIC with three
-
TF-Coder: Program Synthesis for Tensor Manipulations ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-03-29 Kensen Shi, David Bieber, Rishabh Singh
The success and popularity of deep learning is on the rise, partially due to powerful deep learning frameworks such as TensorFlow and PyTorch that make it easier to develop deep learning models. However, these libraries also come with steep learning curves, since programming in these frameworks is quite different from traditional imperative programming with explicit loops and conditionals. In this
-
Armada: Automated Verification of Concurrent Code with Sound Semantic ExtensibilityJust Accepted ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-03-04 Jacob R. Lorch, Yixuan Chen, Manos Kapritsos, Haojun Ma, Bryan Parno, Shaz Qadeer, Upamanyu Sharma, James R. Wilcox, Xueyuan Zhao
Safely writing high-performance concurrent programs is notoriously difficult. To aid developers, we introduce Armada, a language and tool designed to formally verify such programs with relatively little effort. Via a C-like language and a small-step, state-machine-based semantics, Armada gives developers the flexibility to choose arbitrary memory layout and synchronization primitives so they are never
-
Fast Graph Simplification for Interleaved-Dyck ReachabilityJust Accepted ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-02-24 Yuanbo Li, Qirun Zhang, Thomas Reps
Many program-analysis problems can be formulated as graph-reachability problems. Interleaved Dyck language reachability (InterDyck-reachability) is a fundamental framework to express a wide variety of program-analysis problems over edge-labeled graphs. The InterDyck language represents an intersection of multiple matched-parenthesis languages (i.e., Dyck languages). In practice, program analyses typically
-
For a Few Dollars More: Verified Fine-Grained Algorithm Analysis Down to LLVMJust Accepted ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-02-23 Maximilian P. L. Haslbeck, Peter Lammich
We present a framework to verify both, functional correctness and (amortized) worst-case complexity of practically efficient algorithms. We implemented a stepwise refinement approach, using the novel concept of resource currencies to naturally structure the resource analysis along the refinement chain, and allow a fine-grained analysis of operation counts. Our framework targets the LLVM intermediate
-
Types for Complexity of Parallel Computation in Pi-CalculusJust Accepted ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-02-23 Patrick Baillot, Alexis Ghyselen
Type systems as a technique to analyse or control programs have been extensively studied for functional programming languages. In particular some systems allow to extract from a typing derivation a complexity bound on the program. We explore how to extend such results to parallel complexity in the setting of the pi-calculus, considered as a communication-based model for parallel computation. Two notions
-
Strong-Separation LogicJust Accepted ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-02-23 Jens Pagel, Florian Zuleger
Most automated verifiers for separation logic are based on the symbolic-heap fragment, which disallows both the magic-wand operator and the application of classical Boolean operators to spatial formulas. This is not surprising, as support for the magic wand quickly leads to undecidability, especially when combined with inductive predicates for reasoning about data structures. To circumvent these undecidability
-
Bounded Abstract Effects ACM Trans. Program. Lang. Syst. (IF 1.3) Pub Date : 2022-01-12 Darya Melicher, Anlun Xu, Valerie Zhao, Alex Potanin, Jonathan Aldrich
Effect systems have been a subject of active research for nearly four decades, with the most notable practical example being checked exceptions in programming languages such as Java. While many exception systems support abstraction, aggregation, and hierarchy (e.g., via class declaration and subclassing mechanisms), it is rare to see such expressive power in more generic effect systems. We designed