English
Related papers

Related papers: Circular Programs and Self-Referential Structures

200 papers

Programming requires much more than just writing code in a programming language. It is usually done in the context of a stateful environment, by interacting with a system through a graphical user interface. Yet, this wide space of…

Programming Languages · Computer Science 2023-02-21 Joel Jakubovic , Jonathan Edwards , Tomas Petricek

The software patterns provide building blocks to the design and implementation of a software system, and try to make the software engineering to progress from experience to science. The software patterns were made famous because of the…

Logic in Computer Science · Computer Science 2021-10-26 Yong Wang

Probabilistic programs are typically normal-looking programs describing posterior probability distributions. They intrinsically code up randomized algorithms and have long been at the heart of modern machine learning and approximate…

Programming Languages · Computer Science 2023-02-14 Lutz Klinkenberg , Tobias Winkler , Mingshuai Chen , Joost-Pieter Katoen

Some approaches to increasing program reliability involve a disciplined use of programming languages so as to minimise the hazards introduced by error-prone features. This is realised by writing code that is constrained to a subset of the a…

Programming Languages · Computer Science 2007-11-06 Guillem Marpons-Ucero , Julio Mariño , Ángel Herranz , Lars-Åke Fredlund , Manuel Carro , Juan José Moreno-Navarro

For the right application, the use of programming paradigms such as functional or logic programming can enormously increase productivity in software development. But these powerful paradigms are tied to exotic programming languages, while…

Software Engineering · Computer Science 2007-05-23 M. H. van Emden , S. C. Somosan

Though many safety-critical software systems use floating point to represent real-world input and output, programmers usually have idealized versions in mind that compute with real numbers. Significant deviations from the ideal can cause…

Logic in Computer Science · Computer Science 2018-05-02 Benjamin Sherman , Luke Sciarappa , Adam Chlipala , Michael Carbin

Linked lists have long served as a valuable teaching tool in programming. However, the question arises: Are they truly practical for everyday program use? In most cases, it appears that array-based data structures offer distinct advantages,…

Data Structures and Algorithms · Computer Science 2024-08-29 Benoît Sonntag , Dominique Colnet

Rewriting is a formalism widely used in computer science and mathematical logic. The classical formalism has been extended, in the context of functional languages, with an order over the rules and, in the context of rewrite based languages,…

Logic in Computer Science · Computer Science 2019-06-12 Horatiu Cirstea , Pierre-Etienne Moreau

An attempt at unifying logic and functional programming is reported. As a starting point, we take the view that "logic programs" are not about logic but constitute inductive definitions of sets and relations. A skeletal language design…

Logic in Computer Science · Computer Science 2016-08-31 Lawrence C. Paulson , Andrew W. Smith

To derive a program for a given specification R means to find an artifact P that satisfies two conditions: P is executable in some programming language; and P is correct with respect to R. Refinement-based program derivation achieves this…

Software Engineering · Computer Science 2018-10-24 Marwa Benabdelali , Lamia Labed Jilani , Wided Ghardallou , Ali Mili

Choreographic programming is an emerging programming paradigm for concurrent and distributed systems, whereby developers write the communications that should be enacted and then a distributed implementation is automatically obtained by…

Programming Languages · Computer Science 2022-08-18 Luís Cruz-Filipe , Eva Graversen , Lovro Lugović , Fabrizio Montesi , Marco Peressotti

Constructive type theory combines logic and programming in one language. This is useful both for reasoning about programs written in type theory, as well as for reasoning about other programming languages inside type theory. It is…

Programming Languages · Computer Science 2024-10-25 Philipp Jan Andries Stassen , Rasmus Ejlers Møgelberg , Maaike Zwart , Alejandro Aguirre , Lars Birkedal

We establish a close connection between a reversible programming language based on type isomorphisms and a formally presented univalent universe. The correspondence relates combinators witnessing type isomorphisms in the programming…

Programming Languages · Computer Science 2019-07-16 Jacques Carette , Chao-Hong Chen , Vikraman Choudhury , Amr Sabry

System programming languages are typically compiled in a linear pipeline process, which is a completely opaque and isolated to end-users. This limits the possibilities of performing meta-programming in the same language and environment, and…

Programming Languages · Computer Science 2023-09-28 Ronie Salgado

Functional programming comes in two flavours: one where ``functions are first-class citizens'' (we call this applicative) and one which is based on equations (we call this declarative). In relational programming clauses play the role of…

Programming Languages · Computer Science 2007-05-23 H. Ibrahim , M. H. van Emden

Fold functions are a general mechanism for computing over recursive data structures. First-order folds compute results bottom-up. With higher-order folds, computations that inherit attributes from above can also be expressed. In this paper,…

Programming Languages · Computer Science 2013-09-23 J. Launchbury , S. Krstic , T. E. Sauerwein

Pull-tabbing is an evaluation technique for functional logic programs which computes all non-deterministic results in a single graph structure. Pull-tab steps are local graph transformations to move non-deterministic choices towards the…

Programming Languages · Computer Science 2020-08-28 Michael Hanus , Finn Teegen

Motivated by algorithmic information theory, the problem of program discovery can help find candidates of underlying generative mechanisms of natural and artificial phenomena. The uncomputability of such inverse problem, however,…

Information Theory · Computer Science 2021-12-29 Vladimir Lemusa , Eduardo Acuña , Víctor Zamora , Francisco Hernandez-Quiroz , Hector Zenil

We study rotation programs within the standard implementation frame-work under complete information. A rotation program is a myopic stableset whose states are arranged circularly, and agents can effectively moveonly between two consecutive…

Theoretical Economics · Economics 2021-06-01 Ville Korpela , Michele Lombardi , Riccardo D. Saulle

We propose a framework for reasoning about programs that manipulate coinductive data as well as inductive data. Our approach is based on using equational programs, which support a seamless combination of computation and reasoning, and using…

Computational Complexity · Computer Science 2012-01-06 Daniel Leivant , Ramyaa Ramyaa