Inferring Non-Failure Conditions for Declarative Programs

Fuente: arXiv
Saved in:
Bibliographic Details
Main Author: Hanus, Michael
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866913237659811840
author Hanus, Michael
author_facet Hanus, Michael
contents Unintended failures during a computation are painful but frequent during software development. Failures due to external reasons (e.g., missing files, no permissions) can be caught by exception handlers. Programming failures, such as calling a partially defined operation with unintended arguments, are often not caught due to the assumption that the software is correct. This paper presents an approach to verify such assumptions. For this purpose, non-failure conditions for operations are inferred and then checked in all uses of partially defined operations. In the positive case, the absence of such failures is ensured. In the negative case, the programmer could adapt the program to handle possibly failing situations and check the program again. Our method is fully automatic and can be applied to larger declarative programs. The results of an implementation for functional logic Curry programs are presented.
format Preprint
id arxiv_https___arxiv_org_abs_2402_12960
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Inferring Non-Failure Conditions for Declarative Programs
Hanus, Michael
Programming Languages
Software Engineering
Unintended failures during a computation are painful but frequent during software development. Failures due to external reasons (e.g., missing files, no permissions) can be caught by exception handlers. Programming failures, such as calling a partially defined operation with unintended arguments, are often not caught due to the assumption that the software is correct. This paper presents an approach to verify such assumptions. For this purpose, non-failure conditions for operations are inferred and then checked in all uses of partially defined operations. In the positive case, the absence of such failures is ensured. In the negative case, the programmer could adapt the program to handle possibly failing situations and check the program again. Our method is fully automatic and can be applied to larger declarative programs. The results of an implementation for functional logic Curry programs are presented.
title Inferring Non-Failure Conditions for Declarative Programs
topic Programming Languages
Software Engineering
url https://arxiv.org/abs/2402.12960