Home Topic 4 Last Next


Explain the need for higher level languages.


Teaching Note:

For example, as the human needs for computer systems have expanded it is necessary to abstract from the basic operations of the computer. It would take far too long to write the type of systems needed today in machine code.


Sample Question:


From Sample Paper 1 - 2014:

JSR Notes:

More on Abstraction

The first thing to notice from the Teaching Note is the further use of the term "abstract", but in this case as a verb. This usage can further refine our understanding of what abstraction is. The Teaching Note says "it is necessary to abstract from the basic operations of the computer", which is to say we need to move up at least one level of abstraction away from the details of how a computer actually runs code at a machine level. How the computer at that lowest level of operation functions is of no concern to us as programmers; we just need to know that it works, not how it works. We ourselves will work at at least one level of abstraction above that lowest level or organization and function.

Higher Level Languages for Higher Levels of Abstraction

So following on from the Teaching Note, no, we certainly do not, ourselves, want to code in binary ("machine language" or "machine code"), which is the only language a computer can actually understand.

Machine language actually look like this, instructions all in binary representation:

0110 1100 0110 1111 0110 0001 0110 0100 0000 0011 (And this is just the first line token from below!)

And we don't even want to code in the lower level language one step above machine code, called "assembly language", which use tokens to represent each line of code, such as: (and see below for an image too.)

load 3
add 2

Rather, we, as human beings, need higher level languages such as Java, Python, Ruby, C, and C++, which read more like human languages. This way we can communicate complex instructions in a manageable, readable way. For a really cool way of comparing lots of programming languages, go to www.rosettacode.org Or try Doodle.
Look at this link for a list of languages - Wow!

Try searching the site for a common algorithm like the binary search sample code, or more simply, a for loop.


Since computers cannot directly understand such higher level languages, yet they run on lower level maching languages there is a need for translation... which is addressed in the next assessment statement, 4.3.5.
But before you go on to that particular need... do back to the main point of the assessment statement: the need for higher level languages - and for the best answer, look at the Teaching Note above.



Here's an image of some actual assembly language:

motorola assembly lanauge