Caribbean Secondary Education Certificate - Information Technology/Introduction to Programming
In today's computing world, there is a wealth of various programming languages available to us; however, they can each be categorized into one of the three major types:
- Machine Languages
- Assembly Languages
- High-Level languages
As was mentioned earlier, a computer can only understand its own machine language. The machine language is the language that the hardware designers create and is quite complicated if you decide to use it to create a program, simply because it consists of sets of numbers (0s and 1s). Machine language uses these sets of numbers to perform various operations.
NOTE In our Human-Computer programming languages analogy if two English-speaking people speak to each other their brains will compile the code and understand it directly. If you are a machine code programmer then you will write the code that the computer will understand directly and execute the program.
Programmers found that developing even the simplest programs, using sets of numbers, was a very complicated process so they developed assembly languages. Assembly languages use keywords and symbols, much like English, to form a programming language -- I can personally say that this is much better than the huge amount of numbers used in the machine languages -- but at the same time introduces a new problem. The problem is that the computer doesn't understand the assembly code, so we need a way to convert it to machine code, which the computer does understand.
Programmers developed assemblers which are programs that convert assembly language code to machine language code. By using these assemblers programmers can write code in assembly language and convert into machine code.
Computer scientists found that computers were quickly becoming popular all over the world, so they needed faster, easier, and more powerful programming languages than what was currently possible using assembly languages. They designed "high-level" languages and they called them high-level languages because when you develop applications using a high-level language you don't have to deal with low-level details like machine code, which allows you to write keywords that are much easier than assembly and that can perform multiple operations. An example of a high-level language is C#.