English
Related papers

Related papers: A Reversible Semantics for Janus

200 papers

In software engineering, taking a good election between recursion and iteration is essential because their efficiency and maintenance are different. In fact, developers often need to transform iteration into recursion (e.g., in debugging,…

Programming Languages · Computer Science 2014-10-22 David Insa , Josep Silva

The downward closure of a language $L$ of words is the set of all (not necessarily contiguous) subwords of members of $L$. It is well known that the downward closure of any language is regular. Although the downward closure seems to be a…

Formal Languages and Automata Theory · Computer Science 2014-09-30 Georg Zetzsche

Programming or scripting languages used in real-world systems are seldom designed with a formal semantics in mind from the outset. Therefore, developing well-founded analysis tools for these systems requires reverse-engineering a formal…

Programming Languages · Computer Science 2021-09-14 Sándor Bartha , James Cheney , Vaishak Belle

This proposal discusses the growing challenges in reverse engineering modern software binaries, particularly those compiled from newer system programming languages such as Rust, Go, and Mojo. Traditional reverse engineering techniques,…

Software Engineering · Computer Science 2025-06-05 Zhuo Zhuo , Xiangyu Zhang

Compared to functions in mathematics, functions in programming languages seem to be under classified. Functional programming languages based on the lambda calculus famously treat functions as first-class values. Object-oriented languages…

Programming Languages · Computer Science 2025-07-02 Lloyd Allison

We consider, as a means of making programming languages more flexible and powerful, a parsing algorithm in which the parser may freely modify the grammar while parsing. We are particularly interested in a modification of the canonical LR(1)…

Programming Languages · Computer Science 2007-05-23 Blake Hegerle

This work examines approaches to making computational models reversible. Broadly speaking, transforming a computational model into a reversible one, i.e. reversibilizing it, means extending its operational semantics conservatively in a way…

Programming Languages · Computer Science 2026-03-05 Matteo Palazzo , Luca Roversi

To deal with failures as simply as possible, we propose a new foun- dation for the core (untyped) C, which is based on a new logic called task logic or imperative logic. We then introduce a sequential-disjunctive statement of the form S :…

Programming Languages · Computer Science 2015-06-12 Keehang Kwon , Sungwoo Hur , Mi-Young Park

Tail recursive functions allow for a wider range of optimisations than general recursive functions. For this reason, much research has gone into the transformation and optimisation of this family of functions, in particular those written in…

Programming Languages · Computer Science 2023-09-12 Joachim Tilsted Kristensen , Robin Kaarsgaard , Michael Kirkedal Thomsen

Large language models (LLMs) have a surprising failure: when trained on "A has a feature B", they do not generalize to "B is a feature of A", which is termed the Reversal Curse. Even when training with trillions of tokens this issue still…

Computation and Language · Computer Science 2024-05-09 Olga Golovneva , Zeyuan Allen-Zhu , Jason Weston , Sainbayar Sukhbaatar

This paper describes the architecture, the development and the implementation of Janus II, a new generation application-driven number cruncher optimized for Monte Carlo simulations of spin systems (mainly spin glasses). This domain of…

Existing refinement calculi provide frameworks for the stepwise development of imperative programs from specifications. This paper presents a refinement calculus for deriving logic programs. The calculus contains a wide-spectrum logic…

Software Engineering · Computer Science 2007-05-23 Ian Hayes , Robert Colvin , David Hemer , Paul Strooper , Ray Nickson

Game semantics is a trace-like denotational semantics for programming languages where the notion of legal observable behaviour of a term is defined combinatorially, by means of rules of a game between the term (the "Proponent") and its…

Logic in Computer Science · Computer Science 2012-01-24 Dan R. Ghica , Nikos Tzevelekos

Large Multimodal Models (LMMs) have achieved remarkable success in vision-language tasks, yet their vast parameter counts are often underutilized during both training and inference. In this work, we embrace the idea of looping back to move…

Machine Learning · Computer Science 2026-02-11 Ruihan Xu , Yuting Gao , Lan Wang , Jianing Li , Weihao Chen , Qingpei Guo , Ming Yang , Shiliang Zhang

Rascal is a high-level transformation language that aims to simplify software language engineering tasks like defining program syntax, analyzing and transforming programs, and performing code generation. The language provides several…

Programming Languages · Computer Science 2018-02-07 Ahmad Salim Al-Sibahi

The Johnson-Lindenstrauss lemma allows dimension reduction on real vectors with low distortion on their pairwise Euclidean distances. This result is often used in algorithms such as $k$-means or $k$ nearest neighbours since they only use…

Optimization and Control · Mathematics 2015-07-06 Ky Vu , Pierre-Louis Poirion , Leo Liberti

Given a simple recursive function, we show how to extract two interacting processes from it. The two processes can be described by means of iterative programs, one of which is intrinsically reversible, in a language that, up to minor…

Programming Languages · Computer Science 2021-02-19 Armando B. Matos , Luca Paolini , Luca Roversi

Finding a denotational semantics for higher order quantum computation is a long-standing problem in the semantics of quantum programming languages. Most past approaches to this problem fell short in one way or another, either limiting the…

Logic in Computer Science · Computer Science 2013-11-12 Michele Pagani , Peter Selinger , Benoît Valiron

Recurrent neural networks (RNNs), specifically long-short term memory networks (LSTMs), can model natural language effectively. This research investigates the ability for these same LSTMs to perform next "word" prediction on the Java…

Software Engineering · Computer Science 2019-09-02 Brendon Boldt

Context: Reactive programming (RP) is a declarative programming paradigm suitable for expressing the handling of events. It enables programmers to create applications that react automatically to changes over time. Whenever a time-varying…

Programming Languages · Computer Science 2024-03-05 Bjarno Oeyen , Joeri De Koster , Wolfgang De Meuter