English
Related papers

Related papers: Trace-Relating Compiler Correctness and Secure Com…

200 papers

We present the first technique to synthesize programs that compose side-effecting functions, pure functions, and control flow, from partial traces containing records of only the side-effecting functions. This technique can be applied to…

Programming Languages · Computer Science 2025-06-11 Margarida Ferreira , Victor Nicolet , Joey Dodds , Daniel Kroening

We present an expressive logic over trace formulas, based on binary state predicates, chop, and least fixed-points, for precise specification of programs with recursive procedures. Both, programs and trace formulas, are equipped with a…

Logic in Computer Science · Computer Science 2024-11-21 Dilian Gurov , Reiner Hähnle

Machine Learning models from other fields, like Computational Linguistics, have been transplanted to Software Engineering tasks, often quite successfully. Yet a transplanted model's initial success at a given task does not necessarily mean…

Software Engineering · Computer Science 2020-09-02 Yangruibo Ding , Baishakhi Ray , Premkumar Devanbu , Vincent J. Hellendoorn

Compilers are a prime target for formal verification, since compiler bugs invalidate higher-level correctness guarantees, but compiler changes may become more labor-intensive to implement, if they must come with proof patches. One appealing…

Programming Languages · Computer Science 2025-03-12 Jason Gross , Andres Erbsen , Jade Philipoom , Rajashree Agrawal , Adam Chlipala

Modern program runtime is dominated by segments of repeating code called kernels. Kernels are accelerated by increasing memory locality, increasing data-parallelism, and exploiting producer-consumer parallelism among kernels - which…

Distributed, Parallel, and Cluster Computing · Computer Science 2020-01-31 Richard Uhrie , Chaitali Chakrabarti , John Brunhaver

Choreographic programming is a paradigm for developing concurrent and distributed systems, where programs are choreographies that define, from a global viewpoint, the computations and interactions that communicating processes should enact.…

Programming Languages · Computer Science 2021-08-30 Luís Cruz-Filipe , Fabrizio Montesi , Marco Peressotti

An Air Force evaluation of Multics, and Ken Thompson's Turing award lecture ("Reflections on Trusting Trust"), showed that compilers can be subverted to insert malicious Trojan horses into critical software, including themselves. If this…

Cryptography and Security · Computer Science 2010-05-03 David A. Wheeler

Formal program verification is a longstanding goal in the field. We present the first quantitative comparison of the two primary compiler verification approaches, credible compilation/translation validation and full verification. Working…

Programming Languages · Computer Science 2026-05-12 Martin Rinard

Verification of numerical accuracy properties in modern software remains an important and challenging task. This paper describes an original framework combining different solutions for numerical accuracy. First, we extend an existing…

Software Engineering · Computer Science 2019-11-26 Maxime Jacquemin , Fonenantsoa Maurica , Nikolai Kosmatov , Julien Signoles , Franck Védrine

Introductory Computer Science classes are important for laying the foundation for advanced programming courses. However, students without prior programming experience may find these courses challenging, leading to difficulties in…

Computers and Society · Computer Science 2025-06-24 Jesse McDonald , Scott Robertson , Anthony Peruma

In this paper, we introduce Continuation Passing C (CPC), a programming language for concurrent systems in which native and cooperative threads are unified and presented to the programmer as a single abstraction. The CPC compiler uses a…

Programming Languages · Computer Science 2012-11-15 Gabriel Kerneis , Juliusz Chroboczek

Misconceptions about program execution hinder many novice programmers. We introduce SimpliPy, a notional machine designed around a carefully chosen Python subset to clarify core control flow and scoping concepts. Its foundation is a precise…

Programming Languages · Computer Science 2025-10-21 Moida Praneeth Jain , Venkatesh Choppella

Coding is an integral aspect of programming. A programmer can automatically complete a code fragment after writing a few tokens, and the process of automatic completion is known as code completion. Several research studies on code…

Software Engineering · Computer Science 2024-03-01 Shamima Naznin , Dr. Manishankar Mondal

Can the execution of a software be perturbed without breaking the correctness of the output? In this paper, we devise a novel protocol to answer this rarely investigated question. In an experimental study, we observe that many perturbations…

Software Engineering · Computer Science 2018-07-06 Benjamin Danglot , Philippe Preux , Benoit Baudry , Martin Monperrus

Compilers are used to run programs that are written in a range of designs from text to executable formats. With the advent of the internet, studies related to the development of cloud based compilers are being carried out. There is a…

Programming Languages · Computer Science 2016-05-09 Ramkumar Lakshminarayanan , Balaji Dhanasekaran , Ben George Ephre

Automatically generating compilable programs with (or without) natural language descriptions has always been a touchstone problem for computational linguistics and automated software engineering. Existing deep-learning approaches model code…

Computation and Language · Computer Science 2022-03-11 Xin Wang , Yasheng Wang , Yao Wan , Fei Mi , Yitong Li , Pingyi Zhou , Jin Liu , Hao Wu , Xin Jiang , Qun Liu

We present a type-theoretic framework for reasoning about incorrectness in functional programs that interact with effectful, opaque library APIs. Our approach centers on traces -- temporally-ordered sequences of library API invocations --…

Programming Languages · Computer Science 2025-09-03 Yongwei Yuan , Zhe Zhou , Julia Belyakova , Benjamin Delaware , Suresh Jagannathan

Despite the approaches proposed so far, software plagiarism is still a problem which has not been solved entirely yet. The approach introduced throughout this paper is about a source code anti-plagiarism technique which aims at rendering…

Software Engineering · Computer Science 2022-01-10 Fabrizio d'Amore , Lorenzo Zarfati

Software model checking constitutes an undecidable problem and, as such, even an ideal tool will in some cases fail to give a conclusive answer. In practice, software model checkers fail often and usually do not provide any information on…

Software Engineering · Computer Science 2017-08-21 Rodrigo Castaño , Victor Braberman , Diego Garbervetsky , Sebastian Uchitel

A program execution monitor is a program that collects and abstracts information about program executions. The "collect" operator is a high level, general purpose primitive which lets users implement their own monitors. "Collect" is built…

Software Engineering · Computer Science 2007-05-23 Erwan Jahier