English
Related papers

Related papers: Persistent Iterators with Value Semantics

200 papers

Generic programming (GP) is an increasingly important trend in programming languages. Well-known GP mechanisms, such as type classes and the C++0x concepts proposal, usually combine two features: 1) a special type of interfaces; and 2)…

Programming Languages · Computer Science 2012-03-21 Bruno C. d. S. Oliveira , Tom Schrijvers , Wontae Choi , Wonchan Lee , Kwangkeun Yi

Automatic verification of concurrent programs faces state explosion due to the exponential possible interleavings of its sequential components coupled with large or infinite state spaces. An alternative is deductive verification, where…

Programming Languages · Computer Science 2024-01-01 Yuan Xia , Jyotirmoy V. Deshmukh , Mukund Raghothaman , Srivatsan Ravi

The Move language provides abstractions for programming with digital assets via a mix of value semantics and reference semantics. Ensuring memory safety in programs with references that access a shared, mutable global ledger is difficult,…

Programming Languages · Computer Science 2022-05-12 Sam Blackshear , John Mitchell , Todd Nowacki , Shaz Qadeer

Declarative styles such as functional programming (FP) are rapidly gaining ground on their imperative cousins, including procedural and object-oriented programming. The shift is subtle because it is happening within the context of…

Software Engineering · Computer Science 2016-06-22 Morgan C. Benton , Nicole M. Radziwill

Memory safety is traditionally characterized in terms of bad things that cannot happen. This approach is currently embraced in the literature on formal methods for memory safety. However, a general semantic principle for memory safety, that…

Programming Languages · Computer Science 2026-04-20 René Rydhof Hansen , Andreas Stenbæk Larsen , Aslan Askarov

For the lambda-calculus with letrec we develop an optimisation, which is based on the contraction of a certain class of 'future' (also: virtual) redexes. In the implementation of functional programming languages it is common practice to…

Programming Languages · Computer Science 2011-02-15 Jan Rochel , Clemens Grabmayer

The memory model is the crux of the concurrency semantics of shared-memory systems. It defines the possible values that a read operation is allowed to return for any given set of write operations performed by a concurrent program, thereby…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-03-14 Manuel Pöter , Jesper Larsson Träff

The development of the mlpack C++ machine learning library (http://www.mlpack.org/) has required the design and implementation of a flexible, robust optimization system that is able to solve the types of arbitrary optimization problems that…

Mathematical Software · Computer Science 2017-11-20 Ryan R. Curtin , Shikhar Bhardwaj , Marcus Edel , Yannis Mentekidis

Traversal strategies \'a la Stratego (also \'a la Strafunski and 'Scrap Your Boilerplate') provide an exceptionally versatile and uniform means of querying and transforming deeply nested and heterogeneously structured data including terms…

Programming Languages · Computer Science 2012-01-31 Ralf Laemmel , Simon Thompson , Markus Kaiser

Researchers face a persistent barrier when applying computational algorithms with parameter configuration typically demanding programming skills, interfaces differing across environments, and settings rarely persisting between sessions.…

Failure detection protocols---a fundamental building block for crafting fault-tolerant distributed systems---are in many cases described by their authors making use of informal pseudo-codes of their conception. Often these pseudo-codes use…

Distributed, Parallel, and Cluster Computing · Computer Science 2015-04-15 Vincenzo De Florio , Chris Blondia

\emph{Literate programming}, introduced by Knurth, interleaves code and prose so that a program can be read as both executable and explanatory text. We propose \emph{literate execution}, which inverts this relationship: rather than…

Programming Languages · Computer Science 2026-05-04 Joe Bond , Jacob Pake , Cristina David , Andrew McNutt , Trevor Sseguya Muwonge , Dominic Orchard , Roly Perera

A compiler's optimizer operates over abstract syntax trees (ASTs), continuously applying rewrite rules to replace subtrees of the AST with more efficient ones. Especially on large source repositories, even simply finding opportunities for a…

Programming Languages · Computer Science 2021-04-09 Darshana Balakrishnan , Carl Nuessle , Oliver Kennedy , Lukasz Ziarek

When the inverse of an algorithm is well-defined -- that is, when its output can be deterministically transformed into the input producing it -- we say that the algorithm is invertible. While one can describe an invertible algorithm using a…

Programming Languages · Computer Science 2022-12-07 Joachim Tilsted Kristensen , Robin Kaarsgaard , Michael Kirkedal Thomsen

Developers routinely work with source files whose variable names are generic or misleading, and with teams moving quickly, many functions are left undocumented. This slows comprehension, increases the risk of subtle bugs, and makes it…

Software Engineering · Computer Science 2025-12-02 Muhammad Yousuf , Akshat Bagade , Chhittebbayi Penugonda , Maanas Baraya

Data structures and algorithms are essential building blocks for programs, and \emph{distributed data structures}, which automatically partition data across multiple memory locales, are essential to writing high-level parallel programs.…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-06-06 Benjamin Brock , Robert Cohn , Suyash Bakshi , Tuomas Karna , Jeongnim Kim , Mateusz Nowak , Łukasz Ślusarczyk , Kacper Stefanski , Timothy G. Mattson

The fact that Applicative type class allows one to express simple parsers in a variable-less combinatorial style is well appreciated among Haskell programmers for its conceptual simplicity, ease of use, and usefulness for semi-automated…

Programming Languages · Computer Science 2019-05-28 Jan Malakhovski , Sergei Soloviev

Notions of guardedness serve to delineate admissible recursive definitions in various settings in a compositional manner. In recent work, we have introduced an axiomatic notion of guardedness in symmetric monoidal categories, which serves…

Logic in Computer Science · Computer Science 2021-05-25 Sergey Goncharov , Christoph Rauch , Lutz Schröder

Dependent pattern matching is a key feature in dependently typed programming. However, there is a theory-practice disconnect: while many proof assistants implement pattern matching as primitive, theoretical presentations give semantics to…

Programming Languages · Computer Science 2025-01-31 Joseph Eremondi , Ohad Kammar

Parallel dataflow systems have become a standard technology for large-scale data analytics. Complex data analysis programs in areas such as machine learning and graph analytics often involve control flow, i.e., iterations and branching.…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-10-16 Gábor E. Gévay , Tilmann Rabl , Sebastian Breß , Loránd Madai-Tahy , Volker Markl