Classification of Programming Languages
Classification of Programming Languages
Introduction
A computer language is a software environment, which makes it possible to write instructions that the computer can
understand and execute. Thousands of computer languages have been developed over the years. Some of these
languages are still being used while others have fallen into obscurity. Although many computer languages have
been designed and implemented, most programmers have a limited knowledge of these languages. This growing
trend is creating a deficiency among our programmers because there are a lot of benefits that may be derived from
studying and appreciating these languages. The aim of this course is to present a general overview of the various
languages that have been implemented. In order to achieve this, we will attempt to classify the languages, which
have been implemented, into various groups and identify the major characteristics of each group. In addition we
will be looking at some of the design/implementation issues that should be considered when a new language is being
created.
Assembly Language. This is a language in which a mnemonic code is associated with each machine language
command. The programmer will use the mnemonics to write useful programs.
High Level Language. This is a language that uses commands, which are very close to the ones used in human
speech.
Fourth Generation Languages. These are database oriented high level languages that contain a lot of pre-written
routines/modules for manipulating a database. In addition the programmer is not allowed to know the
implementation details behind each routine. These languages allow the programmer to tell the computer what he
wants done, rather than how to carry out the task.
Natural Language Processing. These are languages in which computer instructions are written using natural
languages. The problem with these languages is that a natural language is context sensitive (the meaning of the
words is often dependent upon the context in which it is used.) These types of languages are not yet well developed.
Language Paradigms.
All programming languages may fall into one of four different categories. These categories are called language
paradigms (style of programming). The four paradigms are: Imperative/Procedural, Declarative/Rule Based,
Applicative/Functional, Object Oriented.
Imperative/Procedural.
Example: LISP
Applicative/Functional.
Example: C
Object Oriented.
Extreme care has to be taken when attempting to place a language within a particular language paradigm. This is
because there is no clear distinction among the different paradigms. In attempting to classify a language we have to
identify the most distinguishing characteristic of the language in addition to examining the total number of features
that it possesses.
1. Doctor Little wants a program, which will allow him to be able to deduce the possible illnesses of his patients,
based on the symptoms that they are experiencing. Which language paradigm would you pick a language from,
in order to solve Doctor Little’s problem?
2. Give reasons as to why you would use a language from the above paradigm, to solve Dr. Little’s problem.
3. Distinguish between declarative and imperative languages.
4. A school wants to design a database system, which is capable of storing information about students, teachers
and subjects. Suggest the most appropriate type of language to use when designing this system.
5. Kerry has decided to use a low-level language to create a computer game. She came to this decision because she
wants to achieve a high execution speed. Identify and explain 2 disadvantages that her choice may create.
Orthogonality. This refers to the attribute of being able to combine the various features of the language in different
ways, with each combination being useful. A programming language that exhibits orthogonality is much easier to
learn and use. This occurs because the language has very few special or exceptional cases that the user must
understand. (E.g. Suppose a language allows an expression to produce a value, and it also allows a conditional
statement, then these two features are orthogonal if any expression can be used within the conditional statement =>
if squareroot(x) = 56 then …).