English
Related papers

Related papers: Verification of Programs via Intermediate Interpre…

200 papers

Context. Variability-intensive programs (program families) appear in many application areas and for many reasons today. Different family members, called variants, are derived by switching statically configurable options (features) on and…

Programming Languages · Computer Science 2017-02-01 Alexandru Florin Iosif-Lazar , Jean Melo , Aleksandar S. Dimovski , Claus Brabrand , Andrzej Wasowski

We describe a general parameterized scheme of program and constraint analyses allowing us to specify both the program specialization method known as Turchin's supercompilation and Hmelevskii's algorithm solving the quadratic word equations.…

Logic in Computer Science · Computer Science 2018-07-25 Antonina Nepeivoda

A transcompiler, also known as source-to-source translator, is a system that converts source code from a high-level programming language (such as C++ or Python) to another. Transcompilers are primarily used for interoperability, and to port…

Computation and Language · Computer Science 2020-09-23 Marie-Anne Lachaux , Baptiste Roziere , Lowik Chanussot , Guillaume Lample

The term {\em meta-programming} refers to the ability of writing programs that have other programs as data and exploit their semantics. The aim of this paper is presenting a methodology allowing us to perform a correct termination analysis…

Programming Languages · Computer Science 2007-05-23 Alexander Serebrenik , Danny De Schreye

This paper describes the formal verification of two Turing machines using the program verifier Dafny. Both machines are deciders, so we prove total correctness. They are typical first examples of Turing machines used in any course of…

Logic in Computer Science · Computer Science 2026-01-22 Edgar F. A. Lederer

We address the problem of automatic decompilation, converting a program in low-level representation back to a higher-level human-readable programming language. The problem of decompilation is extremely important for security researchers.…

Programming Languages · Computer Science 2019-05-22 Omer Katz , Yuval Olshaker , Yoav Goldberg , Eran Yahav

This paper describes how to verify a parser for regular expressions in a functional programming language using predicate transformer semantics for a variety of effects. Where our previous work in this area focused on the semantics for a…

Logic in Computer Science · Computer Science 2020-05-05 Anne Baanen , Wouter Swierstra

With the advent of new and advanced programming languages, it becomes imperative to migrate legacy software to new programming languages. Unsupervised Machine Learning-based Program Translation could play an essential role in such…

Programming Languages · Computer Science 2023-02-22 Aniketh Malyala , Katelyn Zhou , Baishakhi Ray , Saikat Chakraborty

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…

Formal verification tools are often developed by experts for experts; as a result, their usability by programmers with little formal methods experience may be severely limited. In this paper, we discuss this general phenomenon with…

Software Engineering · Computer Science 2015-08-20 Carlo A. Furia , Christopher M. Poskitt , Julian Tschannen

Program verification is to develop the program's proof system, and to prove the proof system soundness with respect to a trusted operational semantics of the program. However, many practical program verifiers are not based on operational…

Logic in Computer Science · Computer Science 2021-02-09 ShangBei Wang

Compiler optimizations are designed to improve run-time performance while preserving input-output behavior. Correctness in this sense does not necessarily preserve security: it is known that standard optimizations may break or weaken…

Formal Languages and Automata Theory · Computer Science 2019-11-15 Kedar S. Namjoshi , Lucas M. Tabajara

Formal specification is widely employed in the construction of high-quality software. However, there is often a huge gap between formal specification and actual implementation. While there is already a vast body of work on software testing…

Programming Languages · Computer Science 2012-03-29 Zhiqiang Ren , Hongwei Xi

Proving only over source code that programs do not leak sensitive data leaves a gap between reasoning and reality that can only be filled by accounting for the behaviour of the compiler. Furthermore, software does not always have the luxury…

Programming Languages · Computer Science 2023-06-22 Robert Sison , Toby Murray

Obfuscation of computer programs has historically been approached either as a practical but \textit{ad hoc} craft to make reverse engineering subjectively difficult, or as a sound theoretical investigation unfortunately detached from the…

Cryptography and Security · Computer Science 2024-11-11 Ali Ajorian , Erick Lavoie , Christian Tschudin

Interactive proof assistants are computer programs carefully constructed to check a human-designed proof of a mathematical claim with high confidence in the implementation. However, this only validates truth of a formal claim, which may…

Programming Languages · Computer Science 2022-05-17 Colin S. Gordon , Sergey Matskevich

The large transformer-based language models demonstrate excellent performance in natural language processing. By considering the transferability of the knowledge gained by these models in one domain to other related domains, and the…

Cryptography and Security · Computer Science 2022-09-07 Chandra Thapa , Seung Ick Jang , Muhammad Ejaz Ahmed , Seyit Camtepe , Josef Pieprzyk , Surya Nepal

The paper gives a detailed presentation of a framework, embedded into the simply typed higher-order logic and aimed at the support of sound and structured reasoning about various properties of models of imperative programs with interleaved…

Logic in Computer Science · Computer Science 2024-07-16 Maksym Bortin

The paper presents an experiment of solving word equations via specialization of a configuration WE(R,E), where the program WE can be considered as an interpreter testing whether a composition of substitutions R produces a solution of a…

Programming Languages · Computer Science 2021-06-22 Antonina Nepeivoda

In considering the reliability of numerical programs, it is normal to "limit our study to the semantics dealing with numerical precision" (Martel, 2005). On the other hand, there is a great deal of work on the reliability of programs that…

Symbolic Computation · Computer Science 2014-04-25 James H. Davenport , Russell Bradford , Matthew England , David Wilson