English
Related papers

Related papers: Java Subtyping as an Infinite Self-Similar Partial…

200 papers

Context-oriented programming (COP) is a new technique for programming that allows changing the context in which commands execute as a program executes. Compared to object-oriented programming (aspect-oriented programming), COP is more…

Programming Languages · Computer Science 2014-02-25 Mohamed A. El-Zawawy , Eisa A. Aleisa

Mathematical software and graph-theoretical algorithmic packages to efficiently model, analyze and query graphs are crucial in an era where large-scale spatial, societal and economic network data are abundantly available. One such package…

Data Structures and Algorithms · Computer Science 2020-02-04 Dimitrios Michail , Joris Kinable , Barak Naveh , John V Sichi

We report on implementing graph grammars for intelligence analysis in OCaml. Graph grammars are represented as elements of an algebraic data type in OCaml. In addition to algebraic data types, we use other concepts from functional…

Programming Languages · Computer Science 2016-06-06 Rod Moten , Kemafor Anyanwu-Ogan , Sahibi Miranshah

Most Java applications, including web based ones, follow the 3-tier architecture. Although Java provides standard tools for tier-to-tier interfaces, the separation of the tiers is usually not perfect. E.g. the database interface, JDBC,…

Software Engineering · Computer Science 2014-05-09 Victor Sadikov , Walter Pidkameny

We present a novel approach to generic programming over extensible data types. Row types capture the structure of records and variants, and can be used to express record and variant subtyping, record extension, and modular composition of…

Programming Languages · Computer Science 2023-07-21 Alex Hubers , J. Garrett Morris

Recently we presented a concise survey of the formulation of the induction and coinduction principles, and some concepts related to them, in programming languages type theory and four other mathematical disciplines. The presentation in type…

Logic in Computer Science · Computer Science 2019-03-14 Moez A. AbdelGawad

Recent algorithmic advances in algebraic automata theory drew attention to semigroupoids (semicategories). These are mathematical descriptions of typed computational processes, but they have not been studied systematically in the context of…

Formal Languages and Automata Theory · Computer Science 2025-09-30 Attila Egri-Nagy , Chrystopher L. Nehaniv

There are billions of lines of sequential code inside nowadays' software which do not benefit from the parallelism available in modern multicore architectures. Automatically parallelizing sequential code, to promote an efficient use of the…

Programming Languages · Computer Science 2016-04-13 Alcides Fonseca , Bruno Cabral , João Rafael , Ivo Correia

In a nutshell, submodular functions encode an intuitive notion of diminishing returns. As a result, submodularity appears in many important machine learning tasks such as feature selection and data summarization. Although there has been a…

Data Structures and Algorithms · Computer Science 2018-03-19 Marko Mitrovic , Moran Feldman , Andreas Krause , Amin Karbasi

Grammar convergence is a method that helps discovering relationships between different grammars of the same language or different language versions. The key element of the method is the operational, transformation-based representation of…

Programming Languages · Computer Science 2011-07-20 Ralf Lämmel , Vadim Zaytsev

We extend prior work on class-morphing to provide a more expressive pattern-based compile-time reflection language. Our MorphJ language offers a disciplined form of metaprogramming that produces types by statically iterating over and…

Programming Languages · Computer Science 2015-06-18 Aggelos Biboudis , George Fourtounis , Yannis Smaragdakis

We investigate three formalisms to specify graph languages, i.e. sets of graphs, based on type graphs. First, we are interested in (pure) type graphs, where the corresponding language consists of all graphs that can be mapped…

Formal Languages and Automata Theory · Computer Science 2017-04-24 Andrea Corradini , Barbara König , Dennis Nolte

Resolution and subtyping are two common mechanisms in programming languages. Resolution is used by features such as type classes or Scala-style implicits to synthesize values automatically from contextual type information. Subtyping is…

Programming Languages · Computer Science 2020-10-19 Koar Marntirosian , Tom Schrijvers , Bruno C. d. S. Oliveira , Georgios Karachalias

Session types, types for structuring communication between endpoints in distributed systems, are recently being integrated into mainstream programming languages. In practice, a very important notion for dealing with such types is that of…

Programming Languages · Computer Science 2023-06-22 Mario Bravetti , Marco Carbone , Julien Lange , Nobuko Yoshida , Gianluigi Zavattaro

This paper describes a reduction from the halting problem of Turing machines to subtype checking in Java. It follows that subtype checking in Java is undecidable, which answers a question posed by Kennedy and Pierce in 2007. It also follows…

Programming Languages · Computer Science 2016-11-08 Radu Grigore

This paper proposes Commutative Event Sourcing as a simple and reliable mechanism for model synchronisation, bidirectional model to model transformations, incremental updates, and collaborative editing. Commutative Event Sourcing is a…

Software Engineering · Computer Science 2021-01-22 Sebastian Copei , Albert Zündorf

Graphs are a generalized concept that encompasses more complex data structures than trees, such as difference lists, doubly-linked lists, skip lists, and leaf-linked trees. Normally, these structures are handled with destructive assignments…

Programming Languages · Computer Science 2022-09-13 Jin Sano , Naoki Yamamoto , Kazunori Ueda

Context. An extension method is a method declared in a package other than the package of its host class. Thanks to extension methods, developers can adapt to their needs classes they do not own: adding methods to core classes is a typical…

Programming Languages · Computer Science 2017-08-08 Guillermo Polito , Camille Teruel , Stéphane Ducasse , Luc Fabresse

Structural subtyping and parametric polymorphism provide similar flexibility and reusability to programmers. For example, both features enable the programmer to provide a wider record as an argument to a function that expects a narrower…

Programming Languages · Computer Science 2023-09-12 Wenhao Tang , Daniel Hillerström , James McKinna , Michel Steuwer , Ornela Dardha , Rongxiao Fu , Sam Lindley

Delta-oriented programming (DOP) is a flexible transformational approach to implement software product lines. In delta-oriented product lines, variants are generated by applying operations contained in delta modules to a (possibly empty)…

Software Engineering · Computer Science 2016-04-04 Ferruccio Damiani , Michael Lienhardt