English
Related papers

Related papers: Why Nominal-Typing Matters in OOP

200 papers

In this paper we present a minimal object oriented core calculus for modelling the biological notion of type that arises from biological ontologies in formalisms based on term rewriting. This calculus implements encapsulation, method…

Computational Engineering, Finance, and Science · Computer Science 2011-09-08 Livio Bioglio

Subtyping, also known as subtype polymorphism, is a concept extensively studied in programming language theory, delineating the substitutability relation among datatypes. This property ensures that programs designed for supertype objects…

Artificial Intelligence · Computer Science 2025-02-14 Đorđe Marković , Marc Denecker

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

Natural Language Processing (NLP), a cornerstone field within artificial intelligence, has been increasingly utilized in the field of materials science literature. Our study conducts a reproducibility analysis of two pioneering works within…

Chemical Physics · Physics 2023-08-01 Xiangyun Lei , Edward Kim , Viktoriia Baibakova , Shijing Sun

This paper considers an example of Object-Oriented Programming (OOP) leading to subtle errors that break separation of interface and implementations. A comprehensive principle that guards against such errors is undecidable. The paper…

Programming Languages · Computer Science 2007-05-23 Oleg Kiselyov

Dependent types help programmers write highly reliable code. However, this reliability comes at a cost: it can be challenging to write new prototypes in (or migrate old code to) dependently-typed programming languages. Gradual typing makes…

Programming Languages · Computer Science 2019-08-23 Joseph Eremondi , Éric Tanter , Ronald Garcia

We present a new approach to the type inference problem for dynamic languages. Our goal is to combine \emph{logical} constraints, that is, deterministic information from a type system, with \emph{natural} constraints, that is, uncertain…

Programming Languages · Computer Science 2021-03-30 Irene Vlassi Pandi , Earl T. Barr , Andrew D. Gordon , Charles Sutton

This paper discusses the use of `ontologies' in Natural Language Processing. It classifies various kinds of ontologies that have been employed in NLP and discusses various benefits and problems with those designs. Particular focus is then…

cmp-lg · Computer Science 2008-02-03 John A. Bateman

Nominal logic is an extension of first-order logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, alpha-equivalence). This article investigates…

Programming Languages · Computer Science 2008-09-15 James Cheney , Christian Urban

In imperative programming, the Domain-Driven Design methodology helps in coping with the complexity of software development by materializing in code the invariants of a domain of interest. Code is cleaner and more secure because any…

Artificial Intelligence · Computer Science 2023-07-14 Mario Alviano , Giovambattista Ianni , Francesco Pacenza , Jessica Zangari

Over the past thirty years, there has been significant progress in developing general-purpose, language-based approaches to incremental computation, which aims to efficiently update the result of a computation when an input is changed. A…

Programming Languages · Computer Science 2021-03-24 Matthew A. Hammer , Jana Dunfield , Kyle Headley , Nicholas Labich , Jeffrey S. Foster , Michael Hicks , David Van Horn

Existential rules are an expressive knowledge representation language mainly developed to query data. In the literature, they are often supposed to be in some normal form that simplifies technical developments. For instance, a common…

Artificial Intelligence · Computer Science 2022-06-08 David Carral , Lucas Larroque , Marie-Laure Mugnier , Michaël Thomazo

Design methods in information systems frequently create software descriptions using formal languages. Nonetheless, most software designers prefer to describe software using natural languages. This distinction is not simply a matter of…

Software Engineering · Computer Science 2021-08-23 David King , Chris Kimble

Dependently typed programming languages have become increasingly relevant in recent years. They have been adopted in industrial strength programming languages and have been extremely successful as the basis for theorem provers. There are…

Programming Languages · Computer Science 2024-04-09 Christophe Scholliers

Achieving robustness in recognition systems across diverse domains is crucial for their practical utility. While ample data availability is usually assumed, low-resource languages, such as ancient manuscripts and non-western languages, tend…

Machine Learning · Computer Science 2025-06-19 Adrià Molina Rodríguez , Oriol Ramos Terrades , Josep Lladós

The Damas-Hindley-Milner (ML) type system owes its success to principality, the property that every well-typed expression has a unique most general type. This makes inference predictable and efficient. Unfortunately, many extensions of ML…

Programming Languages · Computer Science 2026-05-04 Alistair O'Brien , Didier Rémy , Gabriel Scherer

In the last half-decade, the field of natural language processing (NLP) has undergone two major transitions: the switch to neural networks as the primary modeling paradigm and the homogenization of the training regime (pre-train, then…

Computation and Language · Computer Science 2021-10-19 Artur Kulmizev , Joakim Nivre

Class invariants are both a core concept of object-oriented programming and the source of the two key open OO verification problems: furtive access (from callbacks) and reference leak. Existing approaches force on programmers an…

Software Engineering · Computer Science 2021-05-28 Bertrand Meyer

Aspect-Oriented Programming (AOP) improves modularity by encapsulating crosscutting concerns into aspects. Some mechanisms to compose aspects allow invasiveness as a mean to integrate concerns. Invasiveness means that AOP languages have…

Programming Languages · Computer Science 2009-04-20 Freddy Munoz , Benoit Baudry , Olivier Barais

Two interlocking research questions of growing interest and importance in privacy research are Authorship Attribution (AA) and Authorship Obfuscation (AO). Given an artifact, especially a text t in question, an AA solution aims to…

Computation and Language · Computer Science 2023-03-14 Adaku Uchendu , Thai Le , Dongwon Lee