English
Related papers

Related papers: Describing Console I/O Behavior for Testing Studen…

200 papers

A wide-spectrum language integrates specification constructs into a programming language in a manner that treats a specification command just like any other command. This paper investigates a semantic model for a wide-spectrum language that…

Logic in Computer Science · Computer Science 2016-09-02 Robert J. Colvin , Ian J. Hayes , Larissa A. Meinicke

Equational reasoning is one of the key features of pure functional languages such as Haskell. To date, however, such reasoning always took place externally to Haskell, either manually on paper, or mechanised in a theorem prover. This…

Programming Languages · Computer Science 2018-06-12 Niki Vazou , Joachim Breitner , Will Kunkel , David Van Horn , Graham Hutton

The fact that Applicative type class allows one to express simple parsers in a variable-less combinatorial style is well appreciated among Haskell programmers for its conceptual simplicity, ease of use, and usefulness for semi-automated…

Programming Languages · Computer Science 2019-05-28 Jan Malakhovski , Sergei Soloviev

The development of mechanised language specification based on structured operational semantics, with applications to verified compilers and sound program analysis, requires huge effort. General theory and frameworks have been proposed to…

Programming Languages · Computer Science 2018-11-20 Martin Bodin , Philippa Gardner , Thomas Jensen , Alan Schmitt

Live sequence charts (LSCs) have been proposed as an inter-object scenario-based specification and visual programming language for reactive systems. In this paper, we introduce a logic-based framework to check the consistency of an LSC…

Logic in Computer Science · Computer Science 2010-02-17 Hai-Feng Guo , Wen Zheng , Mahadevan Subramaniam

There are many benefits in providing formal specifications for our software. However, teaching students to do this is not always easy as courses on formal methods are often experienced as dry by students. This paper presents a game called…

We describe several views of the semantics of a simple programming language as formal documents in the calculus of inductive constructions that can be verified by the Coq proof system. Covered aspects are natural semantics, denotational…

Logic in Computer Science · Computer Science 2007-07-10 Yves Bertot

Using the programming language Haskell, we introduce an implementation of propositional calculus, number theory, and a simple imperative language that can evaluate arithmetic and boolean expressions. Finally, we provide an implementation of…

Programming Languages · Computer Science 2021-12-28 Boro Sitnikovski

Occasionally, developers need to ensure that the compiler treats their code in a specific way that is only visible by inspecting intermediate or final compilation artifacts. This is particularly common with carefully crafted compositional…

Programming Languages · Computer Science 2018-06-05 Joachim Breitner

A domain specific language (DSL) abstracts from implementation details and is aligned with the way domain experts reason about a software component. The development of DSLs is usually centered around a grammar and transformations that…

Software Engineering · Computer Science 2015-11-26 Sarmen Keshishzadeh , Arjan J. Mooij , Jozef Hooman

In Programming by Example, a system attempts to infer a program from input and output examples, generally by searching for a composition of certain base functions. Performing a naive brute force search is infeasible for even mildly involved…

Artificial Intelligence · Computer Science 2012-09-19 Aditya Krishna Menon , Omer Tamuz , Sumit Gulwani , Butler Lampson , Adam Tauman Kalai

Functional specifications describe what program components do: the sufficient conditions to invoke a component's operations. They allow us to reason about the use of components in the closed world setting, where the component interacts with…

Programming Languages · Computer Science 2020-02-20 Sophia Drossopoulou , James Noble , Julian Mackay , Susan Eisenbach

This work is concerned with the generation of formal specifications from code, using Large Language Models (LLMs) in combination with symbolic methods. Concretely, in our study, the programming language is C, the specification language is…

Software Engineering · Computer Science 2025-05-01 George Granberry , Wolfgang Ahrendt , Moa Johansson

This paper is a tutorial introducing the underlying technology and the use of the tool Liquid Haskell, a type-checker for the functional language Haskell that can help programmers to verify non-trivial properties of their programs with a…

Programming Languages · Computer Science 2017-01-13 Ricardo Peña

Logic has proved essential for formally modeling software based systems. Such formal descriptions, frequently called specifications, have served not only as requirements documentation and formalisation, but also for providing the…

Logic in Computer Science · Computer Science 2021-07-20 Carlos G. Lopez Pombo , Thomas S. E. Maibaum

Examples in web API specifications can be essential for API testing, API understanding, and even building chat-bots for APIs. Unfortunately, most API specifications lack human-written examples. This paper introduces a novel technique for…

Software Engineering · Computer Science 2025-04-11 Kush Jain , Kiran Kate , Jason Tsay , Claire Le Goues , Martin Hirzel

Obtaining good performance when programming heterogeneous computing platforms poses significant challenges. We present a program transformation environment, implemented in Haskell, where architecture-agnostic scientific C code with semantic…

Programming Languages · Computer Science 2017-01-13 Salvador Tamarit , Julio Mariño , Guillermo Vigueras , Manuel Carro

Automated specification-based testing has a long history with several notable tools having emerged. For example, QuickCheck for Haskell focuses on testing against user-provided properties. Others, such as JMLUnit, use specifications in the…

Programming Languages · Computer Science 2021-03-02 Janice Chin , David Pearce

Model-based testing is a promising technology for black-box software and hardware testing, in which test cases are generated automatically from high-level specifications. Nowadays, systems typically consist of multiple interacting…

Software Engineering · Computer Science 2019-04-16 Przemyslaw Daca , Thomas A. Henzinger , Willibald Krenn , Dejan Nickovic

We present the design of a framework to automatically generate a large range of different exercise tasks on Haskell-I/O programming. Automatic task generation is useful in many different ways. Manual task creating is a time consuming…

Software Engineering · Computer Science 2023-07-25 Oliver Westphal