A Systematic Approach to Programming
Maurice Chandoo
Abstract
Open-access reader
Maurice Chandoo
Abstract
Open-access reader
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.
OpenAlex reports 1 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
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)