Cartoon - Highways and Programs
Written by Mike James   
Sunday, 19 February 2012

This week's selected xkcd cartoon might be puzzling to some. Why roads? The simple answer is that, to the algorithmic mind, every program is a road to travel and we are not talking philosophy here.

One of the skills of programming is the ability to put together loops and conditionals and all manner of instructions so that you build paths thought the code that the machine can follow. Take your finger and place it on the start of a program. Now follow all of the possible ways thought the program - execute the loops and take each branch of a conditional. The shape that you trace out is the flow of control graph and it characterizes the program.

 

Just like a road map tells you how to get from A to B the flow of control graph shows how to get from the start to the end of the program.

 

So what has this got to do with impossible highway junctions?

Highway Engineer Pranks More cartoon fun at xkcd a webcomic of romance,sarcasm, math, and language

 

Back in the old days the flow of control was completely free because we could build programs using the Goto or Jump statement. The result was that programmers would create programs with very complex, and often incorrect, flow of control. Yes, you really could encounter the inescapable cloverleaf and the zero-choice interchange, if not the rotary supercollider.

Examples such as these often occurred when one programmer modified the work of another or when one programmer came back and modified their own work. What was supposed to be a conditional was accidental transformed into a default flow of control and what looked like a choice became no choice at all.

Today we don't do things like this because our languages have clear control constructs - the if...then..else, the until and the while and so on. However, there are programmers who have the same sense of humour as the highway engineer and invent the not-yet, the repeat-a-few and the not-ever syntax.

Related Articles

The Goto, Spaghetti and the Velociraptor

Programming Paradigms for Languages

Teach Concepts Not Just Code

nochoicejunction

blog comments powered by Disqus

 

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

 

Banner


Visual Studio Tools for Unity 1.9 Released
01/08/2014

Visual Studio Tools for Unity is a free Visual Studio add-on for working with the Unity gaming tools and platform from Visual Studio 2010, 2012 and 2013.



Hijacking Chromecast Is Easy
23/07/2014

Chromecast, Google's streaming video USB stick, has a really clever way of allowing users to set it up. The trouble is that it might just be too clever. It turns out that what is easy for users to set [ ... ]


More News

Last Updated ( Sunday, 19 February 2012 )
 
 

   
RSS feed of news items only
I Programmer News
Copyright © 2014 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.