2018•arXiv (Cornell University)Open access

A Systematic Approach to Programming

Maurice Chandoo

Open full text 1 citations

Abstract

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.

Open-access reader

About this research paper

What this paper is about

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.

Why it matters

OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

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.

Key concepts: Programmer, Computer science, Control flow, TRACE (psycholinguistics), Programming language, Premise, Point (geometry), Contrast (vision)

Related papers

Back to paper searchBrowse research topicsOriginal source
A Systematic Approach to Programming — Research Paper | ScholarLens