English
Related papers

Related papers: Scoped Extension Methods in Dynamically-Typed Lang…

200 papers

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

Almost every programming language's syntax includes a notion of binder and corresponding bound occurrences, along with the accompanying notions of $\alpha$-equivalence, capture-avoiding substitution, typing contexts, runtime environments,…

Programming Languages · Computer Science 2021-10-13 Guillaume Allais , Robert Atkey , James Chapman , Conor McBride , James McKinna

A hallmark of object-oriented programming is the ability to perform computation through a set of interacting objects. A common manifestation of this style is the notion of a package, which groups a set of commonly used classes together. A…

Software Engineering · Computer Science 2014-01-21 Shahram Esmaeilsabzali , Rupak Majumdar , Thomas Wies , Damien Zufferey

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

Reuse is a key technique for a more efficient development and ensures the quality of the results. In object technology explicit encapsulation, interfaces, and inheritance are well known principles for independent development that enable…

Software Engineering · Computer Science 2014-09-24 Holger Krahn , Bernhard Rumpe , Stefan Völkel

Domain-specific languages are becoming increasingly important. Almost every application touches multiple domains. But how to define, use, and combine multiple DSLs within the same application? The most common approach is to split the…

Programming Languages · Computer Science 2016-12-13 Piotr Danilewski , Philipp Slusallek

The paper introduces a modular extension (plugin) for Java language compilers and Integrated Development Environments (IDE) which adds operator overloading feature to Java language while preserving backward compatibility. The extension use…

Programming Languages · Computer Science 2014-06-17 Artem Melentyev

Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed programming languages, in order to improve type safety, programmer productivity, or performance. In such cases, type system developers must…

Programming Languages · Computer Science 2016-05-05 Esben Andreasen , Colin S. Gordon , Satish Chandra , Manu Sridharan , Frank Tip , Koushik Sen

While object diagrams (ODs) are widely used as a means to document object-oriented systems, they are expressively weak, as they are limited to describe specific possible snapshots of the system at hand. In this paper we introduce modal…

Software Engineering · Computer Science 2014-09-09 Shahar Maoz , Jan Oliver Ringert , Bernhard Rumpe

Erlang's dynamic typing discipline can lead to runtime errors that persist even after process restarts. Some of these runtime errors could be prevented through static type checking. While Erlang provides a type specification language, the…

Programming Languages · Computer Science 2026-03-24 Albert Schimpf , Stefan Wehr , Annette Bieniusa

Session types allow communication protocols to be specified type-theoretically so that protocol implementations can be verified by static type checking. We extend previous work on session types for distributed object-oriented languages in…

Programming Languages · Computer Science 2017-01-11 Simon J. Gay , Nils Gesbert , António Ravara , Vasco T. Vasconcelos

The expression problem describes how most types can easily be extended with new ways to produce the type or new ways to consume the type, but not both. When abstract syntax trees are defined as an algebraic data type, for example, they can…

Programming Languages · Computer Science 2024-03-12 David Binder , Ingo Skupin , Tim Süberkrüb , Klaus Ostermann

Gradual dependent types can help with the incremental adoption of dependently typed code by providing a principled semantics for imprecise types and proofs, where some parts have been omitted. Current theories of gradual dependent types,…

Programming Languages · Computer Science 2022-05-04 Joseph Eremondi , Ronald Garcia , Éric Tanter

External or internal domain-specific languages (DSLs) or (fluent) APIs? Whoever you are -- a developer or a user of a DSL -- you usually have to choose your side; you should not! What about metamorphic DSLs that change their shape according…

Programming Languages · Computer Science 2014-04-29 Mathieu Acher , Benoit Combemale , Philippe Collet

A type system is introduced for a generic Object Oriented programming language in order to infer resource upper bounds. A sound andcomplete characterization of the set of polynomial time computable functions is obtained. As a consequence,…

Programming Languages · Computer Science 2018-02-20 Emmanuel Hainry , Romain Péchoux

Effpi is a framework for writing strongly-typed message-passing programs in Scala, where the compiler enforces the conformance of process implementations to specified protocol types. A compiler plugin is provided to verify properties of…

Programming Languages · Computer Science 2026-04-09 Benjamin Robinson , Nobuko Yoshida

A new behavior descriptive entity type called spec is proposed, which combines the traditional interface with test rules and test cases, to completely specify the desired behavior of each method, and to enforce the behavior-wise correctness…

Programming Languages · Computer Science 2014-08-21 Chengpu Wang

Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various…

Programming Languages · Computer Science 2018-03-29 Raffi Khatchadourian , Hidehiko Masuhara

I here conduct an exploration of programming language extensibility, making an argument for an often overlooked component of conventional language design. Now, this is not a technical detailing of these components, rather, I attempt to…

Programming Languages · Computer Science 2025-10-16 Sebastian mateos Nicolajsen

A systematic way of defining variants of a modeling language is useful for adopting the language to domain or project specific needs. Variants can be obtained by adopting the syntax or semantics of the language. In this paper, we take a…

Software Engineering · Computer Science 2014-09-24 Hans Grönninger , Bernhard Rumpe