English
Related papers

Related papers: Stepping Lazy Programs

200 papers

As most parallel and distributed programs are internally non-deterministic -- consecutive runs with the same input might result in a different program flow -- vanilla cyclic debugging techniques as such are useless. In order to use cyclic…

Software Engineering · Computer Science 2007-05-23 Michiel Ronsse , Koen De Bosschere , Jacques Chassin de Kergommeaux

Automated debugging, long pursued in a variety of fields from software engineering to cybersecurity, requires a framework that offers the building blocks for a programmable debugging workflow. However, existing debuggers are primarily…

Software Engineering · Computer Science 2025-06-06 Gabriele Digregorio , Roberto Alessandro Bertolini , Francesco Panebianco , Mario Polino

This article aims to explain the Nested Benders algorithm for the solution of large-scale stochastic programming problems in a way that is intelligible to someone coming to it for the first time. In doing so it gives an explanation of…

Optimization and Control · Mathematics 2013-12-13 James Murphy

Answer Set Programming (ASP) is a powerful logic-based programming language, which is enjoying increasing interest within the scientific community and (very recently) in industry. The evaluation of ASP programs is traditionally carried out…

Programming Languages · Computer Science 2011-10-14 Simona Perri , Francesco Ricca , Marco Sirianni

Backpropagation is a classic automatic differentiation algorithm computing the gradient of functions specified by a certain class of simple, first-order programs, called computational graphs. It is a fundamental tool in several fields, most…

Logic in Computer Science · Computer Science 2019-11-07 Alois Brunel , Damiano Mazza , Michele Pagani

The application of automatic transformation processes during the formal development and optimization of programs can introduce encumbrances in the generated code that programmers usually (or presumably) do not write. An example is the…

Programming Languages · Computer Science 2007-05-23 Maria Alpuente , Santiago Escobar , Salvador Lucas

Debugging is often a challenging and infuriating experience for secondary school students learning their first text-based programming language. Many students resort to ineffective debugging strategies, making success with solving errors…

Human-Computer Interaction · Computer Science 2025-08-27 Laurie Gale , Sue Sentance

Appel and McAllester's "step-indexed" logical relations have proven to be a simple and effective technique for reasoning about programs in languages with semantically interesting types, such as general recursive types and general reference…

Programming Languages · Computer Science 2015-07-01 Derek Dreyer , Amal Ahmed , Lars Birkedal

With distributed computing and mobile applications, synchronizing diverging replicas of data structures is a more and more common problem. We use algebraic methods to reason about filesystem operations, and introduce a simplified definition…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-07-24 Elod Pal Csirmaz

Debuggers for logic programming languages have traditionally had a capability most other debuggers did not: the ability to jump back to a previous state of the program, effectively travelling back in time in the history of the computation.…

Programming Languages · Computer Science 2007-05-23 Zoltan Somogyi

Several applications of slicing require a program to be sliced with respect to more than one slicing criterion. Program specialization, parallelization and cohesion measurement are examples of such applications. These applications can…

Programming Languages · Computer Science 2017-09-26 Prasanna Kumar K. , Amitabha Sanyal , Amey Karkare

Constructor-Based Conditional Rewriting Logic is a general framework for integrating first-order functional and logic programming which gives an algebraic semantics for non-deterministic functional-logic programs. In the context of this…

Logic in Computer Science · Computer Science 2007-05-23 Juan M. Molina , Ernesto Pimentel

A non-deterministic call-by-need lambda-calculus \calc with case, constructors, letrec and a (non-deterministic) erratic choice, based on rewriting rules is investigated. A standard reduction is defined as a variant of left-most outermost…

Programming Languages · Computer Science 2007-05-23 Manfred Schmidt-Schauß , Michael Huber

If the result of an expensive computation is invalidated by a small change to the input, the old result should be updated incrementally instead of reexecuting the whole computation. We incrementalize programs through their derivative. A…

Programming Languages · Computer Science 2013-12-04 Yufei Cai , Paolo G. Giarrusso , Tillmann Rendel , Klaus Ostermann

Dynamic program slicing can significantly reduce the code developers need to inspect by narrowing it down to only a subset of relevant program statements. However, despite an extensive body of research showing its usefulness, dynamic…

Software Engineering · Computer Science 2022-01-04 Bogdan Alexandru Stoica , Swarup K. Sahoo , James R. Larus , Vikram S. Adve

An equational logic program is a set of directed equations or rules, which are used to compute in the obvious way (by replacing equals with ``simpler'' equals). We present static analysis techniques for efficient equational logic…

Logic in Computer Science · Computer Science 2007-05-23 Rakesh M. Verma

Reactive programming is a programming paradigm whereby programs are internally represented by a dependency graph, which is used to automatically (re)compute parts of a program whenever its input changes. In practice reactive programming can…

Programming Languages · Computer Science 2023-06-22 Sam Van den Vonder , Thierry Renaux , Bjarno Oeyen , Joeri De Koster , Wolfgang De Meuter

An elementary, but fundamental, operation in disjunctive programming is a basic step, which is the intersection of two disjunctions to form a new disjunction. Basic steps bring a disjunctive set in regular form closer to its disjunctive…

Optimization and Control · Mathematics 2025-01-28 Dimitri J. Papageorgiou , Francisco Trespalacios

Lazy evaluation is a powerful technique that can optimize code execution by deferring evaluations until their results are required, thus enhancing efficiency. In most modern programming languages, like R, lazy evaluation is commonly applied…

Programming Languages · Computer Science 2026-01-16 Chen Ling , Yachen Wang

Reactive programs combine traditional sequential programming constructs with primitives to allow communication with other concurrent agents. They are ubiquitous in modern applications, ranging from components systems and web services, to…

Logic in Computer Science · Computer Science 2021-04-19 Simon Foster , Kangfeng Ye , Ana Cavalcanti , Jim Woodcock