English
Related papers

Related papers: Typing Classes and Mixins with Intersection Types

200 papers

Typed Clojure is an optional type system for Clojure, a dynamic language in the Lisp family that targets the JVM. Typed Clojure enables Clojure programmers to gain greater confidence in the correctness of their code via static type checking…

Programming Languages · Computer Science 2018-12-11 Ambrose Bonnaire-Sergeant , Rowan Davies , Sam Tobin-Hochstadt

The BioAmbients calculus is a process algebra suitable for representing compartmentalization, molecular localization and movements between compartments. In this paper we enrich this calculus with a static type system classifying each…

Computational Engineering, Finance, and Science · Computer Science 2010-02-23 Sara Capecchi , Angelo Troina

We investigate the interplay between a modality for controlling the behaviour of recursive functional programs on infinite structures which are completely silent in the syntax. The latter means that programs do not contain "marks" showing…

Logic in Computer Science · Computer Science 2023-06-22 Paula Severi

There are two well-known formulations of recursive types: iso-recursive and equi-recursive types. Abadi and Fiore [1996] have shown that iso- and equi-recursive types have the same expressive power. However, their encoding of equi-recursive…

Programming Languages · Computer Science 2024-07-09 Litao Zhou , Qianyong Wan , Bruno C. d. S. Oliveira

We study functional and concurrent calculi with non-determinism, along with type systems to control resources based on linearity. The interplay between non-determinism and linearity is delicate: careless handling of branches can discard…

Logic in Computer Science · Computer Science 2023-10-02 Bas van den Heuvel , Joseph W. N. Paulus , Daniele Nantes-Sobrinho , Jorge A. Pérez

For many compiled languages, source-level types are erased very early in the compilation process. As a result, further compiler passes may convert type-safe source into type-unsafe machine code. Type-unsafe idioms in the original source and…

Programming Languages · Computer Science 2016-03-22 Matthew Noonan , Alexey Loginov , David Cok

We view channels as the main form of resources in a message-passing programming paradigm. These channels need to be carefully managed in settings where resources are scarce. To study this problem, we extend the pi-calculus with primitives…

Logic in Computer Science · Computer Science 2010-04-08 Edsko de Vries , Adrian Francalanza , Matthew Hennessy

Intersection type systems have been independently applied to different evaluation strategies, such as call-by-name (CBN) and call-by-value (CBV). These type systems have been then generalized to different subsuming paradigms being able, in…

Logic in Computer Science · Computer Science 2024-04-23 Pablo Barenbaum , Delia Kesner , Mariana Milicich

We demonstrate a method to infer polymorphically principal and subtyping-minimal types for an ML-like core language by assigning ranges within a lattice to type variables. We demonstrate the termination and completeness of this algorithm,…

Programming Languages · Computer Science 2013-08-14 Eli Gottlieb

The depth-bounded fragment of the pi-calculus is an expressive class of systems enjoying decidability of some important verification problems. Unfortunately membership of the fragment is undecidable. We propose a novel type system,…

Logic in Computer Science · Computer Science 2015-02-24 Emanuele D'Osualdo , Luke Ong

We combine standard persistent homology with image persistent homology to define a novel way of characterizing shapes and interactions between them. In particular, we introduce: (1) a mixup barcode, which captures geometric-topological…

Algebraic Topology · Mathematics 2026-05-19 Hubert Wagner , Nickolas Arustamyan , Matthew Wheeler , Peter Bubenik

The Algebraic lambda-calculus and the Linear-Algebraic lambda-calculus extend the lambda-calculus with the possibility of making arbitrary linear combinations of terms. In this paper we provide a fine-grained, System F-like type system for…

Logic in Computer Science · Computer Science 2015-07-01 Pablo Arrighi , Alejandro Diaz-Caro

Turing machines and register machines have been used for decades in theoretical computer science as abstract models of computation. Also the $\lambda$-calculus has played a central role in this domain as it allows to focus on the notion of…

Logic in Computer Science · Computer Science 2023-06-22 Giuseppe Della Penna , Benedetto Intrigila , Giulio Manzonetto

Pattern-matching programming is an example of a rule-based programming style developed in functional languages. This programming style is intensively used in dialects of ML but is restricted to algebraic data-types. This restriction limits…

Programming Languages · Computer Science 2009-12-25 Julien Cohen

Multi types---aka non-idempotent intersection types---have been used to obtain quantitative bounds on higher-order programs, as pioneered by de Carvalho. Notably, they bound at the same time the number of evaluation steps and the size of…

Programming Languages · Computer Science 2018-07-09 Beniamino Accattoli , Stéphane Graham-Lengrand , Delia Kesner

The intrinsic treatment of binding in the lambda calculus makes it an ideal data structure for representing syntactic objects with binding such as formulas, proofs, types, and programs. Supporting such a data structure in an implementation…

Logic in Computer Science · Computer Science 2007-05-23 Andrew Gacek

We define the syntax and reduction relation of a recursively typed lambda calculus with a parallel case-function (a parallel conditional). The reduction is shown to be confluent. We interpret the recursive types as information systems in a…

Logic in Computer Science · Computer Science 2008-06-12 Fritz Müller

We show that the question whether a term is typable is decidable for type systems combining inclusion polymorphism with parametric polymorphism provided the type constructors are at most unary. To prove this result we first reduce the…

Logic in Computer Science · Computer Science 2007-05-23 Sabine Glesner , Karl Stroetmann

In this essay, I present the advantages and, I dare say, the beauty of programming in a language with set-theoretic types, that is, types that include union, intersection, and negation type connectives. I show by several examples how…

Programming Languages · Computer Science 2024-11-18 Giuseppe Castagna

Expansion is an operation on typings (i.e., pairs of typing environments and result types) defined originally in type systems for the lambda-calculus with intersection types in order to obtain principal (i.e., most informative, strongest)…

Programming Languages · Computer Science 2012-01-06 Sergueï Lenglet , J. B. Wells