English
Related papers

Related papers: The Design Principles of the Elixir Type System

200 papers

Recent works have shown the power of linear indexed type systems for enforcing complex program properties. These systems combine linear types with a language of type-level indices, allowing more fine-grained analyses. Such systems have been…

Logic in Computer Science · Computer Science 2018-03-16 Arthur Azevedo de Amorim , Emilio Jesús Gallego Arias , Marco Gaboardi , Justin Hsu

We present a new type system combining occurrence typing, previously used to type check programs in dynamically-typed languages such as Racket, JavaScript, and Ruby, with dependent refinement types. We demonstrate that the addition of…

Programming Languages · Computer Science 2016-10-05 Andrew M. Kent , David Kempe , Sam Tobin-Hochstadt

Behavioural types provide a promising way to achieve lightweight, language-integrated verification for communication-centric software. However, a large barrier to the adoption of behavioural types is that the current state of the art…

Programming Languages · Computer Science 2024-04-09 Simon Fowler , Philipp Haller , Roland Kuhn , Sam Lindley , Alceste Scalas , Vasco T. Vasconcelos

TypeScript is a quickly evolving superset of JavaScript with active development of new features. Our paper seeks to understand how quickly these features are adopted by the developer community. Existing work in JavaScript shows the adoption…

Software Engineering · Computer Science 2023-03-20 Joshua D. Scarsbrook , Mark Utting , Ryan K. L. Ko

Extending a given language with new dedicated features is a general and quite used approach to make the programming language more adapted to problems. Being closer to the application, this leads to less programming flaws and easier…

Logic in Computer Science · Computer Science 2010-03-26 Claude Kirchner , Pierre-Etienne Moreau , Cláudia Tavares

Gradually typed languages allow statically typed and dynamically typed code to interact while maintaining benefits of both styles. The key to reasoning about these mixed programs is Siek-Vitousek-Cimini-Boyland's (dynamic) gradual…

Programming Languages · Computer Science 2018-07-10 Max S. New , Amal Ahmed

Software products evolve over time. Sometimes they evolve by adding new features, and sometimes by either fixing bugs or replacing outdated implementations with new ones. When software engineers fail to anticipate such evolution during…

Programming Languages · Computer Science 2009-10-15 Wonseok Chae

We present LHIP, a system for incremental grammar development using an extended DCG formalism. The system uses a robust island-based parsing method controlled by user-defined performance thresholds.

cmp-lg · Computer Science 2008-02-03 Afzal Ballim , Graham Russell

Refinement types enrich a language's type system with logical predicates that circumscribe the set of values described by the type, thereby providing software developers a tunable knob with which to inform the type system about what…

Programming Languages · Computer Science 2020-10-16 Ranjit Jhala , Niki Vazou

TypeShift is a tool for visualizing linguistic patterns in the timing of typing production. Language production is a complex process which draws on linguistic, cognitive and motor skills. By visualizing holistic trends in the typing…

Computation and Language · Computer Science 2021-03-09 Adam Goodkind

Dependent types allow us to express precisely what a function is intended to do. Recent work on Quantitative Type Theory (QTT) extends dependent type systems with linearity, also allowing precision in expressing when a function can run.…

Programming Languages · Computer Science 2021-04-02 Edwin Brady

We report on the experience of developing Merlin, a language server for the OCaml programming language in development since 2013. Merlin is a daemon that connects to your favourite text editor and provides services that require a…

Programming Languages · Computer Science 2018-10-03 Frédéric Bour , Thomas Refis , Gabriel Scherer

Whilst there have been great advances in HPC hardware and software in recent years, the languages and models that we use to program these machines have remained much more static. This is not from a lack of effort, but instead by virtue of…

Programming Languages · Computer Science 2016-10-31 Nick Brown

Liquid typing provides a decidable refinement inference mechanism that is convenient but subject to two major issues: (1) inference is global and requires top-level annotations, making it unsuitable for inference of modular code components…

Programming Languages · Computer Science 2019-10-31 Niki Vazou , Éric Tanter , David Van Horn

Python's typing system has evolved pragmatically into a powerful but theoretically fragmented system, with scattered specifications. This paper proposes a formalization to address this fragmentation. The central contribution is a formal…

Programming Languages · Computer Science 2025-09-17 Andrei Nacu , Dorel Lucanu

Domain-specific optimizing compilers have demonstrated significant performance and portability benefits, but require programs to be represented in their specialized IRs. Existing frontends to these compilers suffer from the "language subset…

Programming Languages · Computer Science 2021-03-01 Alex Suhan , Davide Libenzi , Ailing Zhang , Parker Schuh , Brennan Saeta , Jie Young Sohn , Denys Shabalin

As popularity of algebraic effects and handlers increases, so does a demand for their efficient execution. Eff, an ML-like language with native support for handlers, has a subtyping-based effect system on which an effect-aware optimizing…

Programming Languages · Computer Science 2020-06-10 Georgios Karachalias , Matija Pretnar , Amr Hany Saleh , Stien Vanderhallen , Tom Schrijvers

We present {\lambda}ert, a type theory supporting refinement types with explicit proofs. Instead of solving refinement constraints with an SMT solver like DML and Liquid Haskell, our system requires and permits programmers to embed proofs…

Programming Languages · Computer Science 2023-11-27 Jad Elkhaleq Ghalayini , Neel Krishnaswami

Gradually typed languages are designed to support both dynamically typed and statically typed programming styles while preserving the benefits of each. While existing gradual type soundness theorems for these languages aim to show that…

Programming Languages · Computer Science 2018-11-07 Max S. New , Daniel R. Licata , Amal Ahmed

The asynchronous and unidirectional communication model supported by mailboxes is a key reason for the success of actor languages like Erlang and Elixir for implementing reliable and scalable distributed systems. Although actors eliminate…

Programming Languages · Computer Science 2026-05-20 Simon Fowler , Duncan Paul Attard , Danielle Marshall , Simon J. Gay , Phil Trinder
‹ Prev 1 3 4 5 6 7 10 Next ›