A Systematic Approach to Programming

08/27/2018
by   Maurice Chandoo, et al.
0

We show how to systematically implement a mental representation of an algorithm. The first step is to write down how the algorithm proceeds on a set of concrete inputs and then generalize the literals in these examples. Then, the control flow graph is synthesized from the generalized examples. The final step is to determine the edge predicates of the control flow graph, which determine the execution path through the control flow graph. This method does not rely on a particular programming language. Compared to classical programming methods this approach provides a higher level of confidence that the program works as intended without requiring the full rigor of a formal proof. Additionally, semantical programming errors can be immediately spotted.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/10/2020

Disjunctive Delimited Control

Delimited control is a powerful mechanism for programming language exten...
research
03/03/2020

The Prolog Debugger and Declarative Programming. Examples

This paper contains examples for a companion paper "The Prolog Debugger ...
research
02/25/2022

Multi-View Graph Representation for Programming Language Processing: An Investigation into Algorithm Detection

Program representation, which aims at converting program source code int...
research
09/12/2019

Quantitative Programming by Examples

Programming-by-Example (PBE) systems synthesize an intended program in s...
research
07/30/2019

Compiling With Classical Connectives

The study of polarity in computation has revealed that an "ideal" progra...
research
10/10/2020

Automatically Deriving Control-Flow Graph Generators from Operational Semantics

We develop the first theory of control-flow graphs from first principles...
research
11/25/2017

Declarativeness: the work done by something else

Being declarative means that we do computer programming on higher levels...

Please sign up or login with your details

Forgot password? Click here to reset