Catalogue Search | MBRL
Search Results Heading
Explore the vast range of titles available.
MBRLSearchResults
-
DisciplineDiscipline
-
Is Peer ReviewedIs Peer Reviewed
-
Series TitleSeries Title
-
Reading LevelReading Level
-
YearFrom:-To:
-
More FiltersMore FiltersContent TypeItem TypeIs Full-Text AvailableSubjectCountry Of PublicationPublisherSourceTarget AudienceDonorLanguagePlace of PublicationContributorsLocation
Done
Filters
Reset
100
result(s) for
"Computer programs Correctness."
Sort by:
Concepts, Notation, and Principles
by
Huang, J. C.
in
computer program testing for correctness
,
concepts, notation, and principles
,
test‐case selection principles
2009
This chapter contains sections titled:
Concepts, Terminology, and Notation
Two Principles of Test‐Case Selection
Classification of Faults
Classification of Test‐Case Selection Methods
The Cost of Program Testing
Book Chapter
Exploring Swift Playgrounds : the fastest and most effective way to learn to code and to teach others to use your code
Learn how to build playgrounds so you can test your code, syntax, and ideas quickly. You can even learn from playgrounds built by others or build playgrounds to teach. And the playgrounds you build and use on your Mac and on your iPad are automatically shared using your Apple ID. Exploring Swift Playgrounds shows you how to use playgrounds to try out your basic app design ideas to see what they look like and how they behave. It doesn't matter if you can't remember a pesky little bit of syntax. Rather than look it up, you can try it out in a playground. More and more of the APIs are now available through playgrounds, so that you can do more than ever before. Going beyond print, the Swift Playgrounds book tool allows for immersive experiences for users learning code, organization processes, and anything else that can be described in the rich (and free) authoring tools provided by Apple. All of which you can learn how to use in Exploring Swift Playgrounds.
VerifyThis 2019: a program verification competition
by
Dross, Claire
,
Furia, Carlo A
,
Müller, Peter
in
Algorithms
,
Competition
,
Competitions and Challenges
2021
VerifyThis is a series of program verification competitions that emphasize the human aspect: participants tackle the verification of detailed behavioral properties—something that lies beyond the capabilities of fully automatic verification and requires instead human expertise to suitably encode programs, specifications, and invariants. This paper describes the 8th edition of VerifyThis, which took place at ETAPS 2019 in Prague. Thirteen teams entered the competition, which consisted of three verification challenges and spanned 2 days of work. This report analyzes how the participating teams fared on these challenges, reflects on what makes a verification challenge more or less suitable for the typical VerifyThis participants, and outlines the difficulties of comparing the work of teams using wildly different verification approaches in a competition focused on the human aspect.
Journal Article
Bugs that make your computer crawl : what are computer bugs?
by
Cleary, Brian P., 1959- author
,
Goneau, Martin, illustrator
in
Software failures Juvenile literature.
,
Debugging in computer science Juvenile literature.
,
Computer programs Correctness Juvenile literature.
2019
\"Don't swat that bug--fix it! Author Brian P. Cleary, illustrator (and coding hobbyist) Martin Goneau, and the indefatigable CATegorical cats offer a fun and accessible introduction to computer bugs\"-- Provided by publisher.
IsaVODEs: Interactive Verification of Cyber-Physical Systems at Scale
We formally introduce IsaVODEs (Isabelle verification with Ordinary Differential Equations), an open, compositional and extensible framework for the verification of cyber-physical systems. We extend a previous semantic approach with methods and techniques that increase its expressivity, proof automation, and scalability to the level of state-of-the-art deductive verification tools. Our contributions include a user-friendly specification language, a flexible hybrid store model, including vectors and matrices, and separation-logic-style rules for local reasoning with hybrid stores using a novel form of differentiation called framed Fréchet derivatives. The formalisation of correctness specifications with forward predicate transformers, the certification of flows as unique solutions to systems of ordinary differential equations, and invariant reasoning for such systems also contribute to the scalability and usability of our framework. In combination, these features make our framework flexible and adaptable to several verification workflows. A suite of examples and hybrid systems verification benchmarks validate our framework relative to other state-of-the-art approaches.
Journal Article
Automatic differentiation for ML-family languages: Correctness via logical relations
by
Vákár, Matthijs
,
Lucatelli Nunes, Fernando
in
Algorithms
,
Differentiation
,
Functional programming
2024
We give a simple, direct, and reusable logical relations technique for languages with term and type recursion and partially defined differentiable functions. We demonstrate it by working out the case of automatic differentiation (AD) correctness: namely, we present a correctness proof of a dual numbers style AD code transformation for realistic functional languages in the ML-family. We also show how this code transformation provides us with correct forward- and reverse-mode AD. The starting point is to interpret a functional programming language as a suitable freely generated categorical structure. In this setting, by the universal property of the syntactic categorical structure, the dual numbers AD code transformation and the basic
$\\boldsymbol{\\omega } \\mathbf{Cpo}$
-semantics arise as structure preserving functors. The proof follows, then, by a novel logical relations argument. The key to much of our contribution is a powerful monadic logical relations technique for term recursion and recursive types. It provides us with a semantic correctness proof based on a simple approach for denotational semantics, making use only of the very basic concrete model of
$\\omega$
-cpos.
Journal Article
On Correctness and Completeness of an n Queens Program
2022
Thom Frühwirth presented a short, elegant, and efficient Prolog program for the n queens problem. However, the program may be seen as rather tricky and one may not be convinced about its correctness. This paper explains the program in a declarative way and provides proofs of its correctness and completeness. The specification and the proofs are declarative, that is they abstract from any operational semantics. The specification is approximate, it is unnecessary to describe the program’s semantics exactly. Despite the program works on non-ground terms, this work employs the standard semantics, based on logical consequence and Herbrand interpretations. Another purpose of the paper is to present an example of precise declarative reasoning about the semantics of a logic program.
Journal Article
An eye tracking study assessing source code readability rules for program comprehension
2024
Context
While developing software, developers must first read and understand source code in order to work on change requests such as bug fixes or feature additions. The easier it is for them to understand what the code does, the faster they can get to working on change tasks. Source code is meant to be consumed by humans, and hence, the human factor of how readable the code is plays an important role. During the past decade, software engineering researchers have used eye trackers to see how developers comprehend code. The eye tracker enables us to see exactly what parts of the code the developer is reading (and for how long) in an objective manner without prompting them.
Objective
In this paper, we leverage eye tracking technology to replicate a prior online questionnaire-based controlled experiment (Johnson et al.
2019
) to determine the visual effort needed to read code presented in different readability rule styles. As in the prior study, we assess two readability rules - minimize nesting and avoid do-while loops. Each rule is evaluated on code snippets that are correct and incorrect with respect to a requirement.
Method
This study was conducted in a lab setting with the Tobii X-60 eye tracker where each of the 46 participants. 21 undergraduate students, 24 graduate students, and 6 professional developers (part-time or full-time)) participated and were given eight Java methods from a total set of 32 Java methods in four categories: ones that follow/do not follow the readability rule and that are correct/incorrect. After reading each code snippet, they were asked to answer a multiple-choice comprehension question about the code and some questions related to logical correctness and confidence. In addition to comparing the time and accuracy of answering the questions with the prior study, we also report on the visual effort of completing the tasks via gaze-based metrics.
Results
The results of this study concur with the online study, in that following the minimize nesting rule showed higher confidence (
14.8
%
) decreased time spent reading programming tasks (
7.1
%
), and decreased accuracy in finding bugs (
5.4
%
). However, the decrease in accuracy was not significant. For method analysis tasks showing one Java method at a time, participants spent proportionally less time fixating on code lines (
9.9
%
) and had fewer fixations on code lines (
3.5
%
) when a snippet is not following the minimize-nesting rule. However, the opposite is true when the snippet is logically incorrect (3.4% and 3.9%, respectively), regardless of whether the rule was followed. The avoid do-while rule, however, did not have as significant of an effect. Following the avoid do-while rule did result in higher accuracy in task performance albeit with lower fixation counts. We also note a lower rate for a majority of the gaze-based linearity metrics on the rule-breaking code snippet when the rule-following and rule-breaking code snippets are displayed side-by-side.
Conclusions
The results of this study show strong support for the use of the minimize nesting rule. All participants considered the minimize nesting rule to be important and considered the avoid do-while rule to be less important. This was despite the results showing that the participants were more accurate when the avoid do-while rule was followed. Overall, participants ranked the snippets following the readability rules to be higher than the snippets that do not follow the rules. We discuss the implications of these results for advancing the state of the art for reducing visual effort and cognitive load in code readability research.
Journal Article
CHAD for expressive total languages
by
Vákár, Matthijs
,
Lucatelli Nunes, Fernando
in
Algorithms
,
Differentiation
,
Functional programming
2023
We show how to apply forward and reverse mode Combinatory Homomorphic Automatic Differentiation (CHAD) (Vákár (2021). ESOP , 607–634; Vákár and Smeding (2022). ACM Transactions on Programming Languages and Systems 44 (3) 20:1–20:49.) to total functional programming languages with expressive type systems featuring the combination of • tuple types; • sum types; • inductive types; • coinductive types; • function types. We achieve this by analyzing the categorical semantics of such types in$\\Sigma$-types (Grothendieck constructions) of suitable categories. Using a novel categorical logical relations technique for such expressive type systems, we give a correctness proof of CHAD in this setting by showing that it computes the usual mathematical derivative of the function that the original program implements. The result is a principled, purely functional and provably correct method for performing forward- and reverse-mode automatic differentiation (AD) on total functional programming languages with expressive type systems.
Journal Article