English
Related papers

Related papers: A Coq Mechanization of JavaScript Regular Expressi…

200 papers

Virtual integration techniques focus on building architectural models of systems that can be analyzed early in the design cycle to try to lower cost, reduce risk, and improve quality of complex embedded systems. Given appropriate…

Software Engineering · Computer Science 2015-11-18 Andreas Katis , Andrew Gacek , Michael W. Whalen

JavaScript has become one of the most widely used languages for Web development. However, it is challenging to ensure the correctness and reliability of Web applications written in JavaScript, due to their dynamic and event-driven features.…

Software Engineering · Computer Science 2019-05-21 Pengfei Gao , Fu Song , Taolue Chen , Yao Zeng , Ting Su

Naming conventions are an important concern in large verification projects using proof assistants, such as Coq. In particular, lemma names are used by proof engineers to effectively understand and modify Coq code. However, providing…

Programming Languages · Computer Science 2021-05-04 Pengyu Nie , Karl Palmskog , Junyi Jessy Li , Milos Gligoric

Context-free grammar simplification is a subject of high importance in computer language processing technology as well as in formal language theory. This paper presents a formalization, using the Coq proof assistant, of the fact that…

Formal Languages and Automata Theory · Computer Science 2015-10-19 Marcus V. M. Ramos , Ruy J. G. B. de Queiroz

There is a plethora of research articles describing the deep semantics of JavaScript. Nevertheless, such articles are often difficult to grasp for readers not familiar with formal semantics. In this report, we propose a digest of the…

Programming Languages · Computer Science 2012-12-12 Stéphane Ducasse , Nicolas Petton , Guillermo Polito , Damien Cassou

Proof assistants like Coq are increasingly popular to help mathematicians carry out proofs of the results they conjecture. However, formal proofs remain highly technical and are especially difficult to reuse. In this paper, we present a…

Logic in Computer Science · Computer Science 2024-01-23 Nicolas Magaud

Jasmin is a programming and verification framework for developing efficient, formally verified, cryptographic implementations. A main component of the framework is the Jasmin compiler, which empowers programmers to write efficient…

Programming Languages · Computer Science 2025-11-17 Santiago Arranz-Olmos , Gilles Barthe , Lionel Blatter , Benjamin Grégoire , Vincent Laporte , Paolo Torrini

Choreographic programming is a paradigm for writing coordination plans for distributed systems from a global point of view, from which correct-by-construction decentralised implementations can be generated automatically. Theory of…

Logic in Computer Science · Computer Science 2022-09-07 Luís Cruz-Filipe , Fabrizio Montesi , Marco Peressotti

Mathematical theorems are human knowledge able to be accumulated in the form of symbolic representation, and proving theorems has been considered intelligent behavior. Based on the BHK interpretation and the Curry-Howard isomorphism, proof…

Neural and Evolutionary Computing · Computer Science 2016-04-18 Li-An Yang , Jui-Pin Liu , Chao-Hong Chen , Ying-ping Chen

Composing regexes is a common but challenging engineering activity. Software engineers struggle with regex complexity, leading to defects, performance issues, and security vulnerabilities. Researchers have proposed tools to synthesize…

Software Engineering · Computer Science 2025-09-25 Berk Çakar , Charles M. Sale , Sophie Chen , Dongyoon Lee , James C. Davis

For performance and verification in machine learning, new methods have recently been proposed that optimise learning systems to satisfy formally expressed logical properties. Among these methods, differentiable logics (DLs) are used to…

Logic in Computer Science · Computer Science 2024-07-08 Reynald Affeldt , Alessandro Bruni , Ekaterina Komendantskaya , Natalia Ślusarz , Kathrin Stark

Most scripting languages nowadays use regex pattern-matching libraries. These regex libraries borrow the syntax of regular expressions, but have an informal semantics that is different from the semantics of regular expressions, removing the…

Formal Languages and Automata Theory · Computer Science 2014-02-17 Sérgio Medeiros , Fabio Mascarenhas , Roberto Ierusalimschy

We propose a new cyclic proof system for automated, equational reasoning about the behaviour of pure functional programs. The key to the system is the way in which cyclic proof and equational reasoning are mediated by the use of contextual…

Programming Languages · Computer Science 2022-06-16 Eddie Jones , C-. H. Luke Ong , Steven Ramsay

We implement extraction of Coq programs to functional languages based on MetaCoq's certified erasure. As part of this, we implement an optimisation pass removing unused arguments. We prove the pass correct wrt. a conventional call-by-value…

Programming Languages · Computer Science 2021-04-27 Danil Annenkov , Mikkel Milo , Jakob Botsch Nielsen , Bas Spitters

Static analyzers based on abstract interpretation are complex pieces of software implementing delicate algorithms. Even if static analysis techniques are well understood, their implementation on real languages is still error-prone. This…

Programming Languages · Computer Science 2013-05-02 Sandrine Blazy , Vincent Laporte , André Maroneze , David Pichardie

State-of-the-art large language models (LLMs) have demonstrated impressive code generation capabilities but struggle with real-world software engineering tasks, such as revising source code to address code reviews, hindering their practical…

Software Engineering · Computer Science 2025-06-03 Hong Yi Lin , Chunhua Liu , Haoyu Gao , Patanamon Thongtanunam , Christoph Treude

One can perform equational reasoning about computational effects with a purely functional programming language thanks to monads. Even though equational reasoning for effectful programs is desirable, it is not yet mainstream. This is partly…

Logic in Computer Science · Computer Science 2025-01-15 Reynald Affeldt , Jacques Garrigue , Takafumi Saikawa

Code completion, which aims to predict the following code token(s) according to the code context, can improve the productivity of software development. Recent work has proved that statistical language modeling with transformers can greatly…

Software Engineering · Computer Science 2022-03-16 Shuai Lu , Nan Duan , Hojae Han , Daya Guo , Seung-won Hwang , Alexey Svyatkovskiy

We reduce JavaScript to a core calculus structured as a small-step operational semantics. We present several peculiarities of the language and show that our calculus models them. We explicate the desugaring process that turns JavaScript…

Programming Languages · Computer Science 2015-10-06 Arjun Guha , Claudiu Saftoiu , Shriram Krishnamurthi

We present Leapfrog, a Coq-based framework for verifying equivalence of network protocol parsers. Our approach is based on an automata model of P4 parsers, and an algorithm for symbolically computing a compact representation of a…

Programming Languages · Computer Science 2023-02-03 Ryan Doenges , Tobias Kappé , John Sarracino , Nate Foster , Greg Morrisett