English
Related papers

Related papers: A Quick Introduction to Functional Verification of…

200 papers

We present a system for the automatic differentiation of a higher-order functional array-processing language. The core functional language underlying this system simultaneously supports both source-to-source automatic differentiation and…

Mathematical Software · Computer Science 2018-06-07 Amir Shaikhha , Andrew Fitzgibbon , Dimitrios Vytiniotis , Simon Peyton Jones , Christoph Koch

We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin's supercompilation is used to specialize some interpreters with…

Programming Languages · Computer Science 2017-08-31 Alexei P. Lisitsa , Andrei P. Nemytykh

Researchers working on the automatic parallelization of programs have long known that too much parallelism can be even worse for performance than too little, because spawning a task to be run on another CPU incurs overheads.…

Programming Languages · Computer Science 2011-09-08 Paul Bone , Zoltan Somogyi , Peter Schachte

Information about the memory locations accessed by a program is, for instance, required for program parallelisation and program verification. Existing inference techniques for this information provide only partial solutions for the…

Programming Languages · Computer Science 2018-04-12 Jérôme Dohrau , Alexander J. Summers , Caterina Urban , Severin Münger , Peter Müller

Large volumes of data generated by scientific experiments and simulations come in the form of arrays, while programs that analyze these data are frequently expressed in terms of array operations in an imperative, loop-based language. But,…

Databases · Computer Science 2020-03-24 Leonidas Fegaras , Md Hasanuzzaman Noor

This work utilizes the plethora of work on verification of sequential programs for the purpose of verifying concurrent programs. We reduce the verification of a concurrent program to a series of verification tasks of sequential programs.…

Programming Languages · Computer Science 2021-06-03 Dan Rasin , Orna Grumberg , Sharon Shoham

We describe a system that simplifies the process of debugging programs produced by computer-aided parallelization tools. The system uses relative debugging techniques to compare serial and parallel executions in order to show where the…

Software Engineering · Computer Science 2007-05-23 Robert Hood , Gabriele Jost

We explore an approach to verification of programs via program transformation applied to an interpreter of a programming language. A specialization technique known as Turchin's supercompilation is used to specialize some interpreters with…

Programming Languages · Computer Science 2017-05-22 Alexei P. Lisitsa , Andrei P. Nemytykh

We show how the complexity of higher-order functional programs can be analysed automatically by applying program transformations to a defunctionalized versions of them, and feeding the result to existing tools for the complexity analysis of…

Logic in Computer Science · Computer Science 2015-06-17 Martin Avanzini , Ugo Dal Lago , Georg Moser

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

Automated software verification of concurrent programs is challenging because of exponentially large state spaces with respect to the number of threads and number of events per thread. Verification techniques such as model checking need to…

Programming Languages · Computer Science 2020-04-15 Patrick Metzler , Habib Saissi , Péter Bokor , Neeraj Suri

Over the past 27 years, quantum computing has seen a huge rise in interest from both academia and industry. At the current rate, quantum computers are growing in size rapidly backed up by the increase of research in the field. Significant…

Logic in Computer Science · Computer Science 2024-02-15 Marco Lewis , Sadegh Soudjani , Paolo Zuliani

There are two kinds of higher-order extensions of model checking: HORS model checking and HFL model checking. Whilst the former has been applied to automated verification of higher-order functional programs, applications of the latter have…

Programming Languages · Computer Science 2018-03-01 Naoki Kobayashi , Takeshi Tsukada , Keiichi Watanabe

Polymorphism in programming languages enables code reuse. Here, we show that polymorphism has broad applicability far beyond computations for technical computing: parallelism in distributed computing, presentation of visualizations of…

Programming Languages · Computer Science 2014-11-07 Jiahao Chen , Alan Edelman

The overall problem addressed in this paper is the long-standing problem of program correctness, and in particular programs that describe systems of parallel executing processes. We propose a new method for proving correctness of parallel…

Programming Languages · Computer Science 2023-02-10 Frank S. de Boer , Einar Broch Johnsen , Violet Ka I Pun , Silvia Lizeth Tapia Tarifa

Heterogeneous many-cores are now an integral part of modern computing systems ranging from embedding systems to supercomputers. While heterogeneous many-core design offers the potential for energy-efficient high-performance, such potential…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-05-11 Jianbin Fang , Chun Huang , Tao Tang , Zheng Wang

The problem of detecting of information and logically independent (DILD) steps in programs is a key for equivalent program transformations. Here we are considering the problem of independence of loop iterations, the concentration of massive…

Programming Languages · Computer Science 2008-11-03 R. Nuriyev

The technology of formal software verification has made spectacular advances, but how much does it actually benefit the development of practical software? Considerable disagreement remains about the practicality of building systems with…

Software Engineering · Computer Science 2026-01-21 Li Huang , Sophie Ebersold , Alexander Kogtenkov , Bertrand Meyer , Yinling Liu

Relational properties describe multiple runs of one or more programs. They characterize many useful notions of security, program refinement, and equivalence for programs with diverse computational effects, and they have received much…

Computer programs may go wrong due to exceptional behaviors, out-of-bound array accesses, or simply coding errors. Thus, they cannot be blindly trusted. Scientific computing programs make no exception in that respect, and even bring…