SEPLAug 27, 2018

A Systematic Approach to Programming

arXiv:1808.08989v3
Originality Synthesis-oriented
AI Analysis

This work addresses programming methodology for software developers, offering a systematic alternative to test-driven development, but it appears incremental as it builds on existing concepts without broad empirical validation.

The paper tackles the problem of systematically implementing algorithms by using execution traces from concrete inputs to directly construct programs, separating operations, control flow, and predicates to simplify programming. It demonstrates the method with two examples and provides a formal framework for comparison.

We show how to systematically implement an algorithm in any imperative or functional programming language. The method is based on the premise that it is easy to write down how an algorithm proceeds on a concrete input. This information---which we call execution trace---is used as a starting point to derive the desired program. In contrast to test-driven development the program is directly constructed from the test cases instead of written separately. The program's operations, control flow and predicates guiding the control flow are worked out separately, which saves the programmer from having to think about them simultaneously. We demonstrate the method for two examples and discuss its utility. Additionally, we provide a formal framework to compare it with other approaches.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes