The Essence Of Programming
Written by Mike James   
Monday, 29 October 2012
Article Index
The Essence Of Programming
Loops
Structured Programming

Structured Programming

This was the basic discovery of the 1960s revolution in programming – structured programming – where the confusion of the previous decades was swept aside by simplicity.

Structured programming introduced a Spartan ethic to programming that attempted to change messy complex programs that used all sorts of conditional and loop constructs into easy-to-read texts that used one conditional and perhaps one or two other types of loop.

It is surprising from today’s perspective that something as simple as restricting the range of instructions that programmers used could have been thought of as revolutionary and the solution to the problem of creating better programs!

The fact that it was revolutionary is more an indication of how primitive our approach to programming had previously been.

The computer had to be invented and people like Johnny Von Neumann wrote mathematically elegant theories of how they should be built. Programming, on the other hand, wasn’t invented it just happened! It took some time for it to be realised that we needed a theory of programming – we still do.

We can look back on the “structured programming” era with mixed feelings.

It was a time when programmers were given a set of fairly arbitrary rules and told that this was the only way to program properly.

Today we know that there are many ways of writing a good program and what is more important is to realize that a good program is a program that is easy to understand. It isn’t only the computer that has to read and obey the program but other programmers who have to read it and understand it if they are to have any hope of fixing and extending it. This idea, that programs have to be designed to be obeyed by computers and read by humans, is probably the single most important step forward in programming theory to date! Yes even more than objects or functional programming.

Real programming languages generally have a range of different types of loop construct, just to make programming easier. For example, Visual Basic has

DO WHILE condition
  Actions to be repeated
LOOP

and

DO
  Actions to be repeated
LOOP UNTIL condition

In fact many modern languages have taken the loop construct and set it free.

The only way that loops differ is in where their “exit” point – i.e. the instruction that stops the loop – is placed. A WHILE loop has its exit point at the very start of the loop and a REPEAT loop has its exit point at the very end of the loop. In Visual Basic and many other languages you can have both of these and you can have an exit point anywhere within the loop

DO
  Actions to be repeated 1
   IF condition THEN EXIT DO
  Actions to be repeated 2
LOOP

Now the list of actions before the exit will be carried out at least once, but the list after the exit might not be carried out at all – a sort of cross between the WHILE and the UNTIL.

Back in the dark days of structured programming such a construct would have been heresy but now we know better and are more broad minded…

Programming is all about translating a static text of instructions into a set of actions that occur in a particular sequence.

It is the mapping of the text to the sequence that is the essence of programming.

 

Banner


Data Structures Part II - Stacks And Trees

Part II of our look at data takes us into more sophisticated structures that are fundamental to computing  - stacks, queues, deques and trees. If you don't know about these four then you are goin [ ... ]



Binary - Negative Numbers

Binary arithmetic is easy, so easy a computer can do it, but what about negative numbers? This is altogether more tricky and isn't just a matter of putting a negative sign in front of the number - alt [ ... ]


Other Articles

espbook

 

Comments




or email your comment to: comments@i-programmer.info

To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, Facebook, Google+ or Linkedin,  or sign up for our weekly newsletter.

 

<ASIN:1893115232>

<ASIN:0470108541>

<ASIN:0735617805>



Last Updated ( Monday, 29 October 2012 )