English
Related papers

Related papers: A Coq-based synthesis of Scala programs which are …

200 papers

SCOOP is a programming model and language that allows concurrent programming at a high level of abstraction. Several approaches to verifying SCOOP programs have been proposed in the past, but none of them operate directly on the source code…

Programming Languages · Computer Science 2015-05-21 Claudio Corrodi

Static analysis approximates the results of a program by examining only its syntax. For example, control-flow analysis (CFA) determines which syntactic lambdas (for functional languages) or (for object-oriented) methods may be invoked at…

Programming Languages · Computer Science 2021-07-28 Davis Ross Silverman , Yihao Sun , Kristopher Micinski , Thomas Gilray

The aim of the paper is to provide solid foundations for a programming paradigm natively supporting the creation and manipulation of cyclic data structures. To this end, we describe coFJ, a Java-like calculus where objects can be infinite…

Programming Languages · Computer Science 2020-05-29 Davide Ancona , Pietro Barbieri , Francesco Dagnino , Elena Zucca

Modern Just-in-Time compilers (or JITs) typically interleave several mechanisms to execute a program. For faster startup times and to observe the initial behavior of an execution, interpretation can be initially used. But after a while,…

Programming Languages · Computer Science 2022-12-07 Aurèle Barrière , Sandrine Blazy , David Pichardie

CompCert is the first realistic formally verified compiler: it provides a machine-checked mathematical proof that the code it generates matches the source code. Yet, there could be loopholes in this approach. We comprehensively analyze…

Logic in Computer Science · Computer Science 2022-10-11 David Monniaux , Sylvain Boulmé

Complex question answering over knowledge base (Complex KBQA) is challenging because it requires various compositional reasoning capabilities, such as multi-hop inference, attribute comparison, set operation. Existing benchmarks have some…

Computation and Language · Computer Science 2022-06-24 Shulin Cao , Jiaxin Shi , Liangming Pan , Lunyiu Nie , Yutong Xiang , Lei Hou , Juanzi Li , Bin He , Hanwang Zhang

Complex question answering (CQA) over raw text is a challenging task. A prominent approach to this task is based on the programmer-interpreter framework, where the programmer maps the question into a sequence of reasoning actions which is…

Computation and Language · Computer Science 2020-10-20 Xiao-Yu Guo , Yuan-Fang Li , Gholamreza Haffari

Program synthesis is a class of regression problems where one seeks a solution, in the form of a source-code program, mapping the inputs to their corresponding outputs exactly. Due to its precise and combinatorial nature, program synthesis…

Artificial Intelligence · Computer Science 2018-06-08 Yewen Pu , Zachery Miranda , Armando Solar-Lezama , Leslie Pack Kaelbling

Formal verification using proof assistants, such as Coq, enables the creation of high-quality software. However, the verification process requires significant expertise and manual effort to write proofs. Recent work has explored automating…

Classes on compiler technology are commonly found in Computer Science curricula, covering aspects of parsing, semantic analysis, intermediate transformations and target code generation. This paper reports on introducing certified…

Programming Languages · Computer Science 2019-06-28 Per Lindgren , Marcus Lindner , Nils Fitinghoff

While significant progress has been made on the hardware side of quantum computing, support for high-level quantum programming abstractions remains underdeveloped compared to classical programming languages. In this article, we introduce…

We describe algorithms for symbolic reasoning about executable models of type systems, supporting three queries intended for designers of type systems. First, we check for type soundness bugs and synthesize a counterexample program if such…

Programming Languages · Computer Science 2017-08-03 Kartik Chandra , Rastislav Bodik

Design of next generation computer systems should be supported by simulation infrastructure that must achieve a few contradictory goals such as fast execution time, high accuracy, and enough flexibility to allow comparison between large…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-04-02 Ori Chalak , Cai Weiguang , Li Wei , Fang Lei , Zheng Libing , Wang Jintang , Wu Zuguang , Gu Xiongli , Wang Haibin , Avi Mendelson

Implementing large software, as software analyzers which aim to be used in industrial settings, requires a well-engineered software architecture in order to ease its daily development and its maintenance process during its lifecycle. If the…

Software Engineering · Computer Science 2015-08-18 Julien Signoles

This paper focuses on formally specifying and verifying the chain of formal semantics of the Esterel synchronous programming language using the Coq proof assistant. In particular, in addition to the standard logical (LBS) semantics,…

Formal Languages and Automata Theory · Computer Science 2025-01-08 Gérard Berry , Lionel Rieg

In this paper we outline how a simple compiler can be completely specified using higher order rewriting in all stages: parsing, analysis/optimization, and code emission, specifically using the crsx.sf.net system for a small declarative…

Logic in Computer Science · Computer Science 2011-02-21 Kristoffer H. Rose

Given the advances in reactive synthesis, it is a natural next step to consider more complex multi-process systems. Distributed synthesis, however, is not yet scalable. Compositional approaches can be a game changer. Here, the challenge is…

Logic in Computer Science · Computer Science 2022-08-15 Bernd Finkbeiner , Noemi Passing

Coroutine, as a powerful programming construct, is widely used in asynchronous applications to replace thread-based programming or the callback hell. Using coroutines makes code more readable and maintainable, for its ability to transfer…

Programming Languages · Computer Science 2026-02-24 Qiqi Gu , Wei Ke

While loops are present in virtually all imperative programming languages. They are important both for practical reasons (performing a number of iterations not known in advance) and theoretical reasons (achieving Turing completeness). In…

Programming Languages · Computer Science 2023-09-26 David Nowak , Vlad Rusu

Formally verified compilers and formally verified static analyzers are a solution to the problem that certain industries face when they have to demonstrate to authorities that the object code they run truly corresponds to its source code…

Logic in Computer Science · Computer Science 2024-07-12 David Monniaux