There are two components of the computer system. They are hardware and software. Computer hardware is the collection of all the parts you can physically touch. Computer software, on the other hand, is not something you can touch. Software is a set of instructions for a computer to perform specific operations.
Hardware and software have a symbolic relationship, this
means without software, hardware is quite limited and without hardware,
software wouldn’t be able to run at all. They need each other to fulfil their
potential.
Computer Languages
A programming language is an artificial language designed to
communicate instructions to a machine, particularly a computer. Programming
languages can be used to create programs that control the behaviour of a machine
and/or to express algorithms precisely.
There are two broad
categories of computer languages.
Low-level languages
High-level languages
Low-level languages
These programming languages are designed for particular
computer architecture and are, therefore, often described as machine-oriented
languages.
Low-level languages can be divided into two categories
Machine Language
Assembly Language
Machine Language
Machine Language is the lowest and most elementary level of
programming language and was the first type of programming language to be
developed. It is the language in which instructions are given in the form of
strings of 0s and 1s.
Advantage
It makes fast and efficient use of the computer.
It does not require a translator to translate the code, i.e.,
directly understood by the computer.
Disadvantage
We have to remember all operation codes.
It is not easy for everyone to amend or find errors in a
program written in the machine language.
These languages are machine-dependent i.e., a particular
machine language can be used on only one type of computer.
Assembly Language
An assembly language implements a symbolic representation of
the machine code needed to program a given CPU architecture. Instructions are
given in the form of short words called mnemonics. For example, the mnemonic LD
is used for loading a program. MOV is used for moving data and ADD is used for
adding data.
Programs written in assembly language are not directly
executable and require a translator known as an assembler.
Advantage
It is easier to understand and use as compared to machine
language.
It is easy to locate and correct errors.
It can be modified.
Disadvantage
Like machine language, it is also machine-dependent.
Since it is machine-dependent the programmer must also have knowledge of the hardware
High-level languages
High-level computer Languages give formats close to the
English Language. The purpose of developing high-level languages is to enable
people to write programs easily and in their own native language environment
(English).
High-level languages are basically symbolic languages that
use English words and/or mathematical symbols rather than mnemonic codes. Each
instruction in a high-level language is translated into many machine language
instructions, thus showing one-to-many translations.
Types of High-level Languages
Many languages have been developed for achieving a variety of
tasks, some are fairly specialized, whereas others are quite general purpose.
These categorized according to their use
Procedural Languages
A sequence of instructions is run. There is a starting point
and a logical order to the instructions to be executed until the endpoint is
reached. Procedural languages use program control constructs (If..Then, Loops,
subroutines and Functions)
Example: Pascal, Basic, Fortran, Cobol.
Event-driven languages
When an event occurs, it is processed using a defined
sequence of instructions called an event handler.
Useful for control programs where events such as reading from
sensors are used to control devices.
Examples: Visual Basic, C++, Javascript
Visual Languages
Allow the programmer to manipulate objects visually on a
form, setting their layout and properties. The underlying program code is
automatically generated.
Used for creating Windows (GUI) applications.
Examples: Visual Basic, Visual C++, Delphi
OOP (Object-Orientated
Language)
OOP is a programming language where objects are defined.
Objects have properties and Methods.
Properties can be set initially or changed at run-time.
Methods are things that the object can do.
Examples: Visual Basic, C#, Java, Python
Mark-up Languages
Special coding instructions are used to indicate the style and
layout of text and other elements.
Widely used for creating web pages on the Internet.
Advantages
The advantages of high-level languages are as follows:
Understandability
Programs written in these languages are easier to read and
understand than those in low-level languages.
Debugging
It is very easy to find and remove errors from high-level
language programs.
Portability
High-level language programs are machine-independent.
Programmers do not require details of underlying hardware to write programs.
Programs written for one computer can be executed on any other computer with
very minor charges or no changes at all.
Disadvantages
A high-level language has to be translated into the machine
language by a translator and thus a price in computer time is paid.
The object code generated by a translator might be
inefficient compared to an equivalent assembly language program.