English
Related papers

Related papers: Composing bidirectional programs monadically (with…

200 papers

We study monoidal profunctors as a tool to reason and structure pure functional programs both from a categorical perspective and as a Haskell implementation. From the categorical point of view we approach them as monoids in a certain…

Programming Languages · Computer Science 2022-07-05 Alexandre Garcia de Oliveira , Mauro Jaskelioff , Ana Cristina Vieira de Melo

We develop a compositional framework for formal synthesis of hybrid systems using the language of category theory. More specifically, we provide mutually compatible tools for hierarchical, sequential, and independent parallel composition.…

Category Theory · Mathematics 2020-08-12 Jared Culbertson , Paul Gustafson , Daniel E. Koditschek , Peter F. Stiller

We aim for composing algorithmic music in an interactive way with multiple participants. To this end we have developed an interpreter for a sub-language of the non-strict functional programming language Haskell that allows the modification…

Programming Languages · Computer Science 2013-03-26 Henning Thielemann

This paper gives two new categorical characterisations of lenses: one as a coalgebra of the store comonad, and the other as a monoidal natural transformation on a category of a certain class of coalgebras. The store comonad of the first…

Programming Languages · Computer Science 2011-07-12 Russell O'Connor

Functors with an instance of the Traversable type class can be thought of as data structures which permit a traversal of their elements. This has been made precise by the correspondence between traversable functors and finitary containers…

Logic in Computer Science · Computer Science 2022-07-21 Gershom Bazerman

Folding a sequence $S$ into a multidimensional box is a method that is used to construct multidimensional codes. The well known operation of folding is generalized in a way that the sequence $S$ can be folded into various shapes. The new…

Information Theory · Computer Science 2009-07-29 Tuvi Etzion

Program synthesis aims to automatically construct human-readable programs that satisfy given task specifications, such as input/output pairs or demonstrations. Recent works have demonstrated encouraging results in a variety of domains, such…

Software Engineering · Computer Science 2023-03-13 Linghan Zhong , Ryan Lindeborg , Jesse Zhang , Joseph J. Lim , Shao-Hua Sun

Rapid technological progress in computer sciences finds solutions and at the same time creates ever more complex requirements. Due to an evolving complexity todays programming languages provide powerful frameworks which offer standard…

Human-Computer Interaction · Computer Science 2019-05-17 Igor Ivkic , Alexander Wöhrer , Markus Tauber

Building on our previous work on hybrid polyadic modal logic we identify modal logic equivalents for Matching Logic, a logic for program specification and verification. This provides a rigorous way to transfer results between the two…

Logic in Computer Science · Computer Science 2019-09-05 Ioana Leuştean , Natalia Moangă , Traian Florin Şerbănuţă

Neural networks are typically represented as data structures that are traversed either through iteration or by manual chaining of method calls. However, a deeper analysis reveals that structured recursion can be used instead, so that…

Programming Languages · Computer Science 2022-09-30 Minh Nguyen , Nicolas Wu

We present a linear functional calculus with both the safety guarantees expressible with linear types and the rich language of combinators and composition provided by functional programming. Unlike previous combinations of linear typing and…

Programming Languages · Computer Science 2017-03-17 J. Garrett Morris

Formal deductive systems are very common in computer science. They are used to represent logics, programming languages, and security systems. Moreover, writing programs that manipulate them and that reason about them is important and…

Programming Languages · Computer Science 2018-05-21 Francisco Ferreira Ruiz

In this paper, we address program development by multiple different programmers (or programming teams), each working in different settings (programming languages or reasoning frameworks), but following a common specification; in particular,…

Logic in Computer Science · Computer Science 2023-06-13 Georgios V. Pitsiladis , Petros S. Stefaneas

To demonstrate derivation of monadic programs, we present a specification of sorting using the non-determinism monad, and derive pure quicksort on lists and state-monadic quicksort on arrays. In the derivation one may switch between…

Programming Languages · Computer Science 2021-01-28 Shin-Cheng Mu , Tsung-Ju Chiang

We present a framework for compositional program verification based on polynomial functors in dependent type theory. In this framework, polynomial functors serve as program interfaces, Kleisli morphisms for the free monad monad serve as…

Logic in Computer Science · Computer Science 2026-04-03 C. B. Aberlé

Logic programming languages present clear advantages in terms of declarativeness and conciseness. However, the ideas of logic programming have been met with resistance in other programming communities, and have not generally been adopted by…

Programming Languages · Computer Science 2026-01-08 Ivan Perez , Angel Herranz

We develop a framework for combining differentiable programming languages with neural networks. Using this framework we create end-to-end trainable systems that learn to write interpretable algorithms with perceptual components. We explore…

Machine Learning · Computer Science 2017-03-03 Alexander L. Gaunt , Marc Brockschmidt , Nate Kushman , Daniel Tarlow

Probabilistic inference procedures are usually coded painstakingly from scratch, for each target model and each inference algorithm. We reduce this effort by generating inference procedures from models automatically. We make this code…

Machine Learning · Statistics 2017-07-13 Robert Zinkov , Chung-chieh Shan

We present a method for synthesizing recursive functions that provably satisfy a given specification in the form of a polymorphic refinement type. We observe that such specifications are particularly suitable for program synthesis for two…

Programming Languages · Computer Science 2016-04-22 Nadia Polikarpova , Ivan Kuraj , Armando Solar-Lezama

Modern CAD tools represent 3D designs not only as geometry, but also as a program composed of geometric operations, each of which depends on a set of parameters. Program representations enable meaningful and controlled shape variations via…

Graphics · Computer Science 2021-10-05 Dan Cascaval , Mira Shalah , Phillip Quinn , Rastislav Bodik , Maneesh Agrawala , Adriana Schulz