English
Related papers

Related papers: The Design Principles of the Elixir Type System

200 papers

We describe an application of Prolog: a type checking tool for the Q functional language. Q is a terse vector processing language, a descendant of APL, which is getting more and more popular, especially in financial applications. Q is a…

Programming Languages · Computer Science 2011-12-19 János Csorba , Zsolt Zombori , Péter Szeredi

We present a type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods. The type system supports abstract and recursive objects, and is…

Programming Languages · Computer Science 2016-10-19 Satish Chandra , Colin S. Gordon , Jean-Baptiste Jeannin , Cole Schlesinger , Manu Sridharan , Frank Tip , Youngil Choi

Actor-based systems like Erlang/OTP power critical infrastructure -- from telecommunications to messaging platforms -- handling millions of concurrent connections with legendary reliability. Yet these systems lack static guarantees about…

Programming Languages · Computer Science 2025-12-08 Miguel de Oliveira Guerreiro

Tierless Web programming languages allow programmers to combine client-side and server-side programming in a single program. Programmers can then define components with both client and server parts and get flexible, efficient and typesafe…

Programming Languages · Computer Science 2019-02-01 Gabriel Radanne , Jérôme Vouillon , Vincent Balat

Session types are a rich type discipline, based on linear types, that lifts the sort of safety claims that come with type systems to communications. However, web-based applications and microservices are often written in a mix of languages,…

Programming Languages · Computer Science 2019-11-20 Atsushi Igarashi , Peter Thiemann , Yuya Tsuda , Vasco T. Vasconcelos , Philip Wadler

Reasoning about the sensitivity of functions with respect to their inputs has interesting applications in various areas, such as differential privacy. In order to check and enforce sensitivity, several approaches have been developed,…

Programming Languages · Computer Science 2025-03-14 Damian Arquez , Matías Toro , Éric Tanter

Bringing the benefits of gradual typing to a language with parametric polymorphism like System F, while preserving relational parametricity, has proven extremely challenging: first attempts were formulated a decade ago, and several designs…

Programming Languages · Computer Science 2020-06-01 Elizabeth Labrada , Matías Toro , Éric Tanter

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

We report on a half-semester course focused around implementation of type systems in programming languages. The course assumes basics of classical compiler construction, in particular, the abstract syntax representation, the Visitor…

Programming Languages · Computer Science 2024-07-12 Abdelrahman Abounegm , Nikolai Kudasov , Alexey Stepanov

Probabilistic programming languages have recently gained a lot of attention, in particular due to their applications in domains such as machine learning and differential privacy. To establish invariants of interest, many such languages…

Programming Languages · Computer Science 2026-04-08 Wenjia Ye , Matías Toro , Federico Olmedo

Dynamically typed languages, like Erlang, allow developers to quickly write programs without explicitly providing any type information on expressions or function definitions. However, this feature makes those languages less reliable than…

Programming Languages · Computer Science 2018-09-14 Emanuele De Angelis , Fabio Fioravanti , Adrián Palacios , Alberto Pettorossi , Maurizio Proietti

This paper presents Ellogon, a multi-lingual, cross-platform, general-purpose text engineering environment. Ellogon was designed in order to aid both researchers in natural language processing, as well as companies that produce language…

Computation and Language · Computer Science 2007-05-23 Georgios Petasis , Vangelis Karkaletsis , Georgios Paliouras , Ion Androutsopoulos , Constantine D. Spyropoulos

**Context:** The design of static type systems that can validate dynamically-typed programs (**gradually**) is an ongoing challenge. A key difficulty is that dynamic code rarely follows datatype-driven design. Programs instead use runtime…

Programming Languages · Computer Science 2025-08-07 Hanwen Guo , Ben Greenman

Metamodel-based DSL development in language workbenches like Xtext allows language engineers to focus more on metamodels and domain concepts rather than grammar details. However, the grammar generated from metamodels often requires manual…

Software Engineering · Computer Science 2023-09-11 Weixing Zhang , Jan-Philipp Steghöfer , Regina Hebig , Daniel Strüber

Despite recent advances in communication and automation, regulations are still written in natural-language prose, subject to ambiguity, inconsistency, and incompleteness. How can we craft regulations with precision? Our solution is embodied…

Programming Languages · Computer Science 2022-09-13 Alexander Bernauer , Richard A. Eisenberg

Gradually-typed programming languages permit the incremental addition of static types to untyped programs. To remain sound, languages insert run-time checks at the boundaries between typed and untyped code. Unfortunately, performance…

Programming Languages · Computer Science 2020-10-13 Cameron Moy , Phúc C. Nguyen , Sam Tobin-Hochstadt , David Van Horn

Many object-oriented dynamic languages allow programmers to _extract methods_ from objects and treat them as functions. This allows for flexible programming patterns, but presents challenges for type systems. In particular, a simple…

Programming Languages · Computer Science 2021-11-23 Yuquan Fu , Sam Tobin-Hochstadt

Linear type systems have a long and storied history, but not a clear path forward to integrate with existing languages such as OCaml or Haskell. In this paper, we study a linear type system designed with two crucial properties in mind:…

Programming Languages · Computer Science 2017-11-09 Jean-Philippe Bernardy , Mathieu Boespflug , Ryan R. Newton , Simon Peyton Jones , Arnaud Spiwack

Developing editing support for $L$ languages in $E$ editors is complex and time-consuming. Some languages do not provide dedicated editors, while others offer a single native editor. The $\textit{language server protocol}$ (LSP) reduces the…

Software Engineering · Computer Science 2026-04-14 Federico Bruzzone , Walter Cazzola , Luca Favalli

A key challenge when statically typing so-called dynamic languages is the ubiquity of value-based overloading, where a given function can dynamically reflect upon and behave according to the types of its arguments. Thus, to establish basic…

Programming Languages · Computer Science 2015-05-01 Panagiotis Vekris , Benjamin Cosman , Ranjit Jhala