English
Related papers

Related papers: Towards Gradual Checking of Reference Capabilities

200 papers

The array is a fundamental data structure that provides an efficient way to store and retrieve non-sparse data contiguous in memory. Arrays are important for the performance of many memory-intensive applications due to the design of modern…

Programming Languages · Computer Science 2019-08-06 Beatrice à kerblom , Elias Castegren , Tobias Wrigstad

We describe an alternative approach to handling mutable references (aka. pointers) within a gradually typed language that has different efficiency characteristics than the prior approach of Herman et al. [2010]. In particular, we reduce the…

Programming Languages · Computer Science 2014-07-15 Jeremy G. Siek , Michael M. Vitousek

Capabilities (whether object or reference capabilities) are fundamentally tools to restrict effects. Thus static capabilities (object or reference) and effect systems take different technical machinery to the same core problem of statically…

Programming Languages · Computer Science 2020-05-27 Colin S. Gordon

Parallelism is often required for performance. In these situations an excess of non-determinism is harmful as it means the program can have several different behaviours or even different results. Even in domains such as high-performance…

Programming Languages · Computer Science 2022-10-28 Laure Gonnord , Ludovic Henrio , Lionel Morel , Gabriel Radanne

A long-standing shortcoming of statically typed functional languages is that type checking does not rule out pattern-matching failures (run-time match exceptions). Refinement types distinguish different values of datatypes; if a program…

Programming Languages · Computer Science 2020-09-22 Khurram A. Jafery , Jana Dunfield

Commutativity has the same inherent limitations as compatibility. Then, it is worth conceiving simple concurrency control techniques. We propose a restricted form of commutativity which increases parallelism without incurring a higher…

Databases · Computer Science 2010-04-08 José Martinez , Carmelo Malta

Transient gradual typing imposes run-time type tests that typically cause a linear slowdown in programs' performance. This performance impact discourages the use of type annotations because adding types to a program makes the program…

Programming Languages · Computer Science 2019-02-19 Richard Roberts , Stefan Marr , Michael Homer , James Noble

Most functional languages rely on some garbage collection for automatic memory management. They usually eschew reference counting in favor of a tracing garbage collector, which has less bookkeeping overhead at runtime. On the other hand,…

Programming Languages · Computer Science 2020-03-06 Sebastian Ullrich , Leonardo de Moura

Gradual typing is an approach to integrating static and dynamic typing within the same language, and puts the programmer in control of which regions of code are type checked at compile-time and which are type checked at run-time. In this…

Programming Languages · Computer Science 2019-09-16 Matteo Cimini

Harnessing the power of dependently typed languages can be difficult. Programmers must manually construct proofs to produce well-typed programs, which is not an easy task. In particular, migrating code to these languages is challenging.…

Programming Languages · Computer Science 2021-07-13 Joseph Eremondi , Ronald Garcia , Éric Tanter

Writing parallel codes is difficult and exhibits a fundamental trade-off between abstraction and performance. The high level language abstractions designed to simplify the complexities of parallelism make certain assumptions that impacts…

Programming Languages · Computer Science 2020-10-28 Nick Brown , Ludovic Capelli , J. Mark Bull

Gradual typing combines static and dynamic typing in the same program. One would hope that the performance in a gradually typed language would range between that of a dynamically typed language and a statically typed language. Existing…

Programming Languages · Computer Science 2018-02-20 Andre Kuhlenschmidt , Deyaaeldeen Almahallawi , Jeremy G. Siek

Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of particular use in dependently typed programming are indexed types that refine data by computationally useful…

Logic in Computer Science · Computer Science 2015-07-01 Robert Atkey , Patricia Johann , Neil Ghani

Parallel programs are frequently modeled as dependency or cost graphs, which can be used to detect various bugs, or simply to visualize the parallel structure of the code. However, such graphs reflect just one particular execution and are…

Programming Languages · Computer Science 2023-11-14 Francis Rinaldi , june wunder , Arthur Aevedo De Amorim , Stefan K. Muller

We present a type theory combining both linearity and dependency by stratifying typing rules into a level for logics and a level for programs. The distinction between logics and programs decouples their semantics, allowing the type system…

Programming Languages · Computer Science 2025-10-08 Qiancheng Fu , Hongwei Xi

Programming models for concurrency are optimized for dealing with nondeterminism, for example to handle asynchronously arriving events. To shield the developer from data race errors effectively, such models may prevent shared access to data…

Software Engineering · Computer Science 2014-10-24 Mischael Schill , Sebastian Nanz , Bertrand Meyer

We propose a novel notion of pointer race for concurrent programs manipulating a shared heap. A pointer race is an access to a memory address which was freed, and it is out of the accessor's control whether or not the cell has been…

Programming Languages · Computer Science 2015-11-12 Frédéric Haziza , Lukáš Holík , Roland Meyer , Sebastian Wolff

Specifications of significant systems can be made short and perspicuous by using abstract data types; data reification can provide a clear, stepwise, development history of programs that use more efficient concrete representations. Data…

Logic in Computer Science · Computer Science 2024-05-10 Larissa A. Meinicke , Ian J. Hayes , Cliff B. Jones

Many classification problems require decisions among a large number of competing classes. These tasks, however, are not handled well by general purpose learning methods and are usually addressed in an ad-hoc fashion. We suggest a general…

Artificial Intelligence · Computer Science 2007-05-23 Yair Even-Zohar , Dan Roth

Dependently typed programming languages such as Coq, Agda, Idris, and F*, allow programmers to write detailed specifications of their programs and prove their programs meet these specifications. However, these specifications can be violated…

Programming Languages · Computer Science 2025-09-12 Paulette Koronkevich , William J. Bowman
‹ Prev 1 2 3 10 Next ›