English
Related papers

Related papers: Why a computer program is a functional whole

200 papers

We develop a novel formal theory of finite structures, based on a view of finite structures as a fundamental artifact of computing and programming, forming a common platform for computing both within particular finite structures, and in the…

Logic in Computer Science · Computer Science 2018-08-16 Daniel Leivant

Artefacts play a vital role in software and systems development processes. Other terms like documents, deliverables, or work products are widely used in software development communities instead of the term artefact. In the following, we use…

Software Engineering · Computer Science 2021-04-08 D. Méndez Fernández , W. Böhm , A. Vogelsang , J. Mund , M. Broy , M. Kuhrmann , T. Weyer

In software engineering, the concept of a ``feature'' is widely used but inconsistently defined across disciplines such as requirements engineering (RE) and software product lines (SPL). This lack of consistency often results in…

Software Engineering · Computer Science 2025-02-17 Nitish Patkar , Aimen Fahmi , Timo Kehrer , Norbert Seyff

A program verifier is a tool that can be used to verify that a "contract" for a program holds - i.e. given a precondition the program guarantees that a given postcondition holds - by only working at the level of the annotated program. An…

Software Engineering · Computer Science 2014-06-12 Gudmund Grov

So far, the relationship between open science and software engineering expertise has largely focused on the open release of software engineering research insights and reproducible artifacts, in the form of open-access papers, open data, and…

Software Engineering · Computer Science 2024-09-17 Cynthia C. S. Liem , Andrew M. Demetriou

The technology of formal software verification has made spectacular advances, but how much does it actually benefit the development of practical software? Considerable disagreement remains about the practicality of building systems with…

Software Engineering · Computer Science 2026-01-21 Li Huang , Sophie Ebersold , Alexander Kogtenkov , Bertrand Meyer , Yinling Liu

Requirements engineering plays a critical role in developing software systems. One of the most difficult tasks in this process is identifying functional requirements. A critical problem in many projects is missing requirements until late in…

Software Engineering · Computer Science 2020-04-02 Sabah Al-Fedaghi

The software community has specific definitions for terms such as "open source software," "free software," and "permissive license," but scientists proposing software development efforts to NASA are not always knowledgeable about these…

Software Engineering · Computer Science 2021-11-05 John D. Haiducek , Thom R. Edwards , Wade Duvall , Sarah R. Cannon , Kai Germaschewski , Jason E. Kooi

Unifying theories distil common features of programming languages and design methods by means of algebraic operators and their laws. Several practical concerns --- e.g., improvement of a program, conformance of code with design, correctness…

Logic in Computer Science · Computer Science 2019-07-26 David A. Naumann , Minh Ngo

Choreographies are global descriptions of interactions among concurrent components, most notably used in the settings of verification and synthesis of correct-by-construction software. They require a top-down approach: programmers first…

Programming Languages · Computer Science 2022-05-09 Luis Cruz-Filipe , Kim S. Larsen , Fabrizio Montesi , Larisa Safina

Logic programming is a flexible programming paradigm due to the use of predicates without a fixed data flow. To extend logic languages with the compact notation of functional programming, there are various proposals to map evaluable…

Programming Languages · Computer Science 2022-05-17 Michael Hanus

Justification theory is a unifying semantic framework. While it has its roots in non-monotonic logics, it can be applied to various areas in computer science, especially in explainable reasoning; its most central concept is a justification:…

Artificial Intelligence · Computer Science 2020-09-23 Simon Marynissen , Bart Bogaerts , Marc Denecker

Accurate programming is a practical approach to producing high quality programs. It combines ideas from test-automation, test-driven development, agile programming, and other state of the art software development methods. In addition to…

Programming Languages · Computer Science 2011-09-06 Walid Taha , Veronica Gaspes , Rex Page

Background: The company-internal reuse of software components owned by organizational units in different countries constitutes an implicit licensing across borders, which is taxable. This makes tax authorities a less known stakeholder in…

In the same sense as classical logic is a formal theory of truth, the recently initiated approach called computability logic is a formal theory of computability. It understands (interactive) computational problems as games played by a…

Logic in Computer Science · Computer Science 2011-04-15 Giorgi Japaridze

Some approaches to increasing program reliability involve a disciplined use of programming languages so as to minimise the hazards introduced by error-prone features. This is realised by writing code that is constrained to a subset of the a…

Programming Languages · Computer Science 2007-11-06 Guillem Marpons-Ucero , Julio Mariño , Ángel Herranz , Lars-Åke Fredlund , Manuel Carro , Juan José Moreno-Navarro

Program understanding is an important aspect in Software Maintenance and Reengineering. Understanding the program is related to execution behaviour and relationship of variable involved in the program. The task of finding all statements in…

Software Engineering · Computer Science 2011-08-08 N. Sasirekha , A. Edwin Robert , Dr. M. Hemalatha

In this position paper, we present a prototype of a visualizer for functional programs. Such programs, whose evaluation model is the reduction of an expression to a value through repeated application of rewriting rules, and which tend to…

Programming Languages · Computer Science 2024-11-04 John Whitington , Tom Ridge

A feature-oriented product line is a family of programs that share a common set of features. A feature implements a stakeholder's requirement, represents a design decision and configuration option and, when added to a program, involves the…

Software Engineering · Computer Science 2010-01-21 Sven Apel , Christian Kaestner , Armin Groesslinger , Christian Lengauer

We present an extension to the $\mathtt{mathlib}$ library of the Lean theorem prover formalizing the foundations of computability theory. We use primitive recursive functions and partial recursive functions as the main objects of study, and…

Logic in Computer Science · Computer Science 2019-07-19 Mario Carneiro