English
Related papers

Related papers: Live Functional Programming with Typed Holes

200 papers

Formal verification provides strong guarantees of correctness of software, which are especially important in safety or security critical systems. Hoare logic is a widely used formalism for rigorous verification of software against…

Programming Languages · Computer Science 2021-03-11 Jayaraj Poroor

In systems verification we are often concerned with multiple, inter-dependent properties that a program must satisfy. To prove that a program satisfies a given property, the correctness of intermediate states of the program must be…

Logic in Computer Science · Computer Science 2024-10-23 Danielle Matichuk

In dependently typed programming, proofs of basic, structural properties can be embedded implicitly into programs and do not need to be written explicitly. Besides saving the effort of writing separate proofs, a most distinguishing and…

Programming Languages · Computer Science 2021-03-09 Hsiang-Shang Ko

Exact real computation is an alternative to floating-point arithmetic where operations on real numbers are performed exactly, without the introduction of rounding errors. When proving the correctness of an implementation, one can focus…

Logic in Computer Science · Computer Science 2024-10-22 Michal Konečný , Sewon Park , Holger Thies

Functional languages with strong static type systems have beneficial properties to help ensure program correctness and reliability. Surprisingly, their practical significance in applications is low relative to other languages lacking in…

Programming Languages · Computer Science 2016-12-05 Johannes Emerich

Functional logic programming (FLP) languages use non-terminating and non-confluent constructor systems (CS's) as programs in order to define non-strict non-determi-nistic functions. Two semantic alternatives have been usually considered for…

Programming Languages · Computer Science 2020-02-19 Adrián Riesco , Juan Rodríguez-Hortalá

Destination-passing style programming introduces destinations, which represent the address of a write-once memory cell. These destinations can be passed as function parameters, allowing the caller to control memory management: the callee…

Programming Languages · Computer Science 2026-01-14 Thomas Bagrel

Language model-based code completion models have quickly grown in use, helping thousands of developers write code in many different programming languages. However, research on code completion models typically focuses on imperative languages…

Computation and Language · Computer Science 2024-03-25 Tim van Dam , Frank van der Heijden , Philippe de Bekker , Berend Nieuwschepen , Marc Otten , Maliheh Izadi

Runtime efficiency and termination are crucial properties in the studies of program verification. Instead of dealing with these issues in an ad hoc manner, it would be useful to develop a robust framework in which such properties are…

Programming Languages · Computer Science 2026-04-06 Weijun Chen , Yuxi Fu , Huan Long

Push/enter and eval/apply are two calling conventions used in implementations of functional languages. In this paper, we explore the following observation: when considering functions with multiple arguments, the stack under the push/enter…

Programming Languages · Computer Science 2016-06-22 Maciej Piróg , Jeremy Gibbons

We present the first formalization and metatheory of language soundness for a user-schedulable language, the widely used array processing language Halide. User-schedulable languages strike a balance between abstraction and control in…

Programming Languages · Computer Science 2022-10-31 Alex Reinking , Gilbert Louis Bernstein , Jonathan Ragan-Kelley

Patching severe security flaws in complex software remains a major challenge. While automated tools like fuzzers efficiently discover bugs, fixing deep-rooted low-level faults (e.g., use-after-free and memory corruption) still requires…

Software Engineering · Computer Science 2026-04-07 Maolin Sun , Yibiao Yang , Xuanlin Liu , Yuming Zhou , Baowen Xu

Symbolic holes are one of the fundamental building blocks of solver-aided and interactive programming. Unknown values can be soundly integrated into programs, and automated tools such as SAT solvers can be used to prove properties of…

Programming Languages · Computer Science 2020-06-11 Bruce Collie , Michael O'Boyle

Programmers regularly use strings to encode many types of data, such as Unix file paths, URLs, and email addresses, that are conceptually different. However, existing mainstream programming languages use a unified string type to represent…

Software Engineering · Computer Science 2025-01-22 Fengmin Zhu , Andreas Zeller

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

Nondeterministic choice is a useful program construct that provides a way to describe the behaviour of a program without specifying the details of possible implementations. It supports the stepwise refinement of programs, a method that has…

Logic in Computer Science · Computer Science 2023-02-17 Yuan Feng , Yingte Xu

We investigate a class of nominal algebraic Henkin-style models for the simply typed lambda-calculus in which variables map to names in the denotation and lambda-abstraction maps to a (non-functional) name-abstraction operation. The…

Logic in Computer Science · Computer Science 2011-11-02 Murdoch J. Gabbay , Dominic P. Mulligan

While software requirements are often expressed in natural language, verifying the correctness of a program against such requirements is a hard and underexplored problem. Large language models (LLMs) are promising candidates for addressing…

Software Engineering · Computer Science 2025-08-26 Dimitrios Stamatios Bouras , Yihan Dai , Tairan Wang , Yingfei Xiong , Sergey Mechtaev

There are two kinds of systems that programming language researchers use for their work. Semantics engineering tools let them interactively explore their definitions, while proof assistants can be used to check the proofs of their…

Programming Languages · Computer Science 2024-09-24 Jan Liam Verter , Tomas Petricek

We report on work in progress on automatic procedures for proving properties of programs written in higher-order functional languages. Our approach encodes higher-order programs directly as first-order SMT problems over Horn clauses. It is…

Logic in Computer Science · Computer Science 2013-06-25 Nikolaj Bjorner , Ken McMillan , Andrey Rybalchenko
‹ Prev 1 3 4 5 6 7 10 Next ›