English
Related papers

Related papers: Typed Design Patterns for the Functional Era

200 papers

Most programming languages were designed before the age of web. This matters because the web changes many assumptions that typed functional language designers take for granted. For example, programs do not run in a closed world, but must…

Programming Languages · Computer Science 2015-12-08 Tomas Petricek , Don Syme , Zach Bray

In typed functional languages, one can typically only manipulate data in a type-safe manner if it first has been deserialised into an in-memory tree represented as a graph of nodes-as-structs and subterms-as-pointers. We demonstrate how we…

Programming Languages · Computer Science 2024-04-29 Guillaume Allais

Patterns embody repeating phenomena, and, as such, they are partly but not fully detachable from their context. 'Design patterns' and 'pattern languages' are established methods for working with patterns. They have been applied in…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-12-09 Raymond Puzio , Paola Ricaurte , Charles Jeffrey Danoff , Charlotte Pierce , Analua Dutka-Chirichetti , Vitor Bruno , Hermano Cintra , Joseph Corneli

This paper is about the interface between languages which use a garbage collector and those which use fancy types for safe manual memory management. Garbage collection is the traditional memory management scheme for functional languages,…

Programming Languages · Computer Science 2018-07-03 Alan Jeffrey

This paper proposes new languages for basic skills in the Creative Society, where people create their own goods, tools, concepts, knowledge, and mechanisms with their own hands: the skills of learning, presentation, and collaboration. These…

Computers and Society · Computer Science 2013-08-07 Takashi Iba

Rust's novel type system has proved an attractive target for verification and program analysis tools, due to the rich guarantees it provides for controlling aliasing and mutability. However, fully understanding, extracting and exploiting…

Programming Languages · Computer Science 2025-08-27 Zachary Grannan , Aurel Bílý , Jonáš Fiala , Jasper Geer , Markus de Medeiros , Peter Müller , Alexander J. Summers

The Rust programming language provides a powerful type system that checks linearity and borrowing, allowing code to safely manipulate memory without garbage collection and making Rust ideal for developing low-level, high-assurance systems.…

Logic in Computer Science · Computer Science 2023-03-14 Andrea Lattuada , Travis Hance , Chanhee Cho , Matthias Brun , Isitha Subasinghe , Yi Zhou , Jon Howell , Bryan Parno , Chris Hawblitzel

The framework Pure Type System (PTS) offers a simple and general approach to designing and formalizing type systems. However, in the presence of dependent types, there often exist certain acute problems that make it difficult for PTS to…

Programming Languages · Computer Science 2017-03-28 Hongwei Xi

Patterns describe proven solutions for recurring problems. Typically, patterns in a particular domain are interrelated and organized in pattern languages. As real-world problems often require patterns of multiple domains, different pattern…

Software Engineering · Computer Science 2020-03-23 Manuela Weigold , Johanna Barzen , Uwe Breitenbücher , Michael Falkenthal , Frank Leymann , Karoline Wild

\emph{Session types} have proved viable in expressing and verifying the protocols of message-passing systems. While message passing is a dominant concurrency paradigm in practice, real world software is written without session types. A…

Programming Languages · Computer Science 2022-06-01 Ruo Fei Chen , Stephanie Balzer , Bernardo Toninho

Most modern applications interact with external services and access data in structured formats such as XML, JSON and CSV. Static type systems do not understand such formats, often making data access more cumbersome. Should we give up and…

Programming Languages · Computer Science 2016-05-11 Tomas Petricek , Gustavo Guerra , Don Syme

This paper describes a new technique, called "knowledge patterns", for helping construct axiom-rich, formal ontologies, based on identifying and explicitly representing recurring patterns of knowledge (theory schemata) in the ontology, and…

Artificial Intelligence · Computer Science 2020-05-12 Peter Clark , John Thompson , Bruce Porter

When scripts in untyped languages grow into large programs, maintaining them becomes difficult. A lack of explicit type annotations in typical scripting languages forces programmers to must (re)discover critical pieces of design information…

Programming Languages · Computer Science 2011-06-15 Sam Tobin-Hochstadt , Matthias Felleisen

In functional programming languages, generalized algebraic data types (GADTs) are very useful as the unnecessary pattern matching over them can be ruled out by the failure of unification of type arguments. In dependent type systems, this is…

Programming Languages · Computer Science 2021-07-07 Tesla Zhang

Pattern languages are well-established in the software architecture community. Many different aspects of creating a software architecture are addressed by such languages. Thus, several pattern languages have to be considered when building a…

Software Engineering · Computer Science 2021-04-21 Frank Leymann , Johanna Barzen

In this paper we demonstrate an approach to model structure and behavior of distributed systems, to map those models to a lightweight execution engine by using a functional programming language and to systematically define and execute tests…

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

While deep learning has pushed the boundaries in various machine learning tasks, the current models are still far away from replicating many functions that a normal human brain can do. Explicit memorization based deep architecture have been…

Computer Vision and Pattern Recognition · Computer Science 2018-01-31 Pratik Prabhanjan Brahma , Qiuyuan Huang , Dapeng Wu

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

In a Systems Engineering setting, various models are produced using a variety of methods and tools. Focusing on a type of models -- called descriptive models -- which we shall describe, we argue that, while the clarity and precision of…

Systems and Control · Electrical Eng. & Systems 2022-07-29 Freddy Kamdem Simo , Dominique Ernadote , Dominique Lenne

The idea of functional programming has played a big role in shaping today's landscape of mainstream programming languages. Another concept that dominates the current programming style is Dijkstra's structured programming. Both concepts have…

Programming Languages · Computer Science 2011-02-11 Steven Obua