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:

Intro to 4.3.4  vs.  4.3 5

This assessment statement is about the need for higher level languages. Why we need, for example, Java.

The next assessment statemetn is about why we need translation processes. (Basically because we need to translate from 0100010001100010100010 to Java.


More on Abstraction
"it is necessary to abstract from the basic operations of the computer"

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 that we as humans 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 functions at that lowest level of operation is of no concern to us as human 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.

Levels of Abstraction of Computer Languages


Abstracting Up Levels of Computer Language

Lowest Level: Machine Language

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!)

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.

So we "abstract up" one level, ignoring the details of the binary instructions themselves.


Middle Level: Assembly Languages

Abstracting up to assembly language, at least we're out of the 0s and 1s mess. But, actually, we don't even want to code in these lower level languages, called "assembly languages", which are one or two steps above machine code.

Assembly languages use simple tokens to match up to machine level instructions one-to-one. They act as intermediaries between the lowest level machine code of 0s and 1s and higher level languages like Java. A basic example of assembly langage would be as follows (and see below for a bigger example, too):

load 3
add 2


Highest Level: Programming Languages

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, that we, as humans, understand. For a really cool way of comparing lots of programming languages, go to www.rosettacode.org Or try JDoodle, and figure out how to go back and forth between differnet languages for certain code. Cool, huh?
Look at this link for a list of languages on RosettaCode- Wow!

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




Here's an image of some actual assembly language:

motorola assembly lanauge