You are on page 1of 29

Programming

Languages

9.1

91EVOLUTION
To write a program for a computer, we must use a
computer language. A computer language is a set of
predefined words that are combined into a program
according to predefined rules (syntax). Over the years,
computer languages have evolved from machine
language to high-level languages.

9.2

Machine languages
In the earliest days of computers, the only programming
languages available were machine languages. Each
computer had its own machine language, which was made of
streams of 0s and 1s. In Chapter 5 we showed that in a
primitive hypothetical computer, we need to use eleven lines
of code to read two integers, add them and print the result.
These lines of code, when written in machine language,
make eleven lines of binary code, each of 16 bits, as shown
in Table 9.1.

i
The only language understood by a computer is
machine language.
9.3

9.4

Assembly languages
The next evolution in programming came with the idea of
replacing binary code for instruction and addresses with
symbols or mnemonics. Because they used symbols, these
languages were first known as symbolic languages. The set
of these mnemonic languages were later referred to as
assembly languages.
The assembly language need a language processor called
Assembler to convert the assembly codes ( mnemonics
codes) into Machine Codes.

i
The only language understood by a computer is
machine language.
9.5

9.6

High-level languages
Although
assembly
languages
greatly
improved
programming efficiency, they still required programmers to
concentrate on the hardware they were using. Working with
symbolic languages was also very tedious, because each
machine instruction had to be individually coded. The desire
to improve programmer efficiency and to change the focus
from the computer to the problem being solved led to the
development of high-level languages.
Over the years, various languages, most notably BASIC,
COBOL, Pascal, Ada, C, C++ and Java, were developed.
Program 9.1 shows the code for adding two integers as it
would appear in the C++ language.
9.7

9.8

92TRANSLATION
Programs today are normally written in one of the highlevel languages. To run the program on a computer, the
program needs to be translated into the machine
language of the computer on which it will run. The
program in a high-level language is called the source
program. The translated program in machine language is
called the object program.
Two methods are used for translation: compilation and
interpretation. Thus, Compiler and Interpreter are two
of Language processor which converts HHL codes into
Machine Level.
9.9

Compilation
A compiler normally translates the whole source program
into the object program.

Interpretation
Some computer languages use an interpreter to translate the
source program into the object program. Interpretation refers
to the process of translating each line of the source program
into the corresponding line of the object program and
executing the line. Thus, Interpreter translates Line by Line

9.10

Translation process
Compilation and interpretation differ in that the first
translates the whole source code before executing it, while
the second translates and executes the source code a line at a
time. Both methods, however, follow the same translation
process shown in Figure 9.1.

Figure 9.1 Source code translation process


9.11

93PROGRAMMINGPARADIGMS
Today, computer languages are categorized according to
the approach they use to solve a problem. A paradigm,
therefore, is a way in which a computer language looks
at the problem to be solved. We divide computer
languages into four paradigms: procedural, objectoriented, functional and declarative. Figure 9.2
summarizes these.

9.12

Figure 9.2 Categories of programming languages


9.13

VeryHighLevelProgrammingLanguage
A very high-level programming language (VHLL) is a
programming language with a very high level of
abstraction, used primarily as a professional programmer
productivity tool.
Very high-level programming languages are usually
domain-specific languages, limited to a very specific
application, purpose, or type of task, and often
scripting languages (especially extension languages),
controlling a specific environment.
9.14

VeryHighLevelProgrammingLanguage
For this reason, very high-level programming languages
are often referred to as goal-oriented programming
languages.
Very high level language (VHLL) is a designed to
reduce the complexity and amount of source code
required to create a program.
An example of a very high-level programming language
is the scripting language, for Windows.
9.15

What is a Software?

Software refers to any stored program or


application that tells the computer system what
to do.

Categories of Software

System Software programs that take control


of the PC on start-up, and then play a central
role in everything that happens within a
computer system by managing, maintaining, and
controlling computer resources.
Application Software designed and created
to perform specific personal, business, scientific
processing tasks.

Categories of Software

System Software
A. Operating System (OS)

Monitors and controls all input / output and


processing activities within a computer system.
It is a program that controls the PC hardware
and the operation of all other programs

Types based upon User Interface: CUI and GUI

Operating System
( Continued..)

An OS is a program that acts an intermediary


between the user of a computer and computer
hardware.

OS simplifies and manages the complexity of


running application programs efficiently.

Features/Functions of OS

IO management
Data management
Process
management
File management
Security
Memory
management

Device
management
Command
Interpreter
Deadlock
Prevention
Time Sharing
Interrupt
Handling

System Software
B. Utility software

is system software designed to help

analyze, configure, optimize or maintain a computer.

Utility

software

infrastructure
operating system,

usually

focuses

(including

on

the

application software

how

the

computer

computer hardware,
and

data

storage)

operates. Due to this focus, utilities are often rather technical


and targeted at people with an advanced level of computer
knowledge - in contrast to application software, which allows
users to do things like creating text documents, playing video
games, listening to music or viewing websites.

9.22

Utility software:
Examples

9.23

Anti-virus utilities scan for computer viruses


Archivers output a stream or a single file when provided with a
directory or a set of files.
Backup software
Clipboard managers expand the clipboard functionality of an
operating system .
Cryptographic utilities encrypt and decrypt streams and files.
Data compression (WinZip, WinRaR)
Data synchronization
Disk checkers
Disk cleaners
Disk compression
Disk defragmenters
Disk partitions

Application Software
A. Packaged Software

Term used to describe software that is


bunched together making a complete set.
For example, Microsoft Office is packaged
software that includes many software
programs that may be used in the office,
such as Microsoft Excel, Microsoft Word
and Microsoft Access, Adobe etc.

These Software's are basically developed t

Tailored Software ( Continued)

Custom software (also known as bespoke


software or tailor-made software) is
software that is specially developed for
some specific organization or other user.
As such, it can be contrasted with the use
of software packages developed for the
mass market.

Since custom software is developed for a


single customer it can accommodate that
customer's particular preferences and
expectations.

Tailored Software: Examples

Large companies commonly use custom


software for critical functions, including:

content management

inventory management

customer management

human resource management

Transaction Processing, etc.

Investment criteria for hardware &


Organizations can use the criteria presented here to invest
software

on

Hardware & Application:


a. Performance and Scalability:
Performance refers to a solution's throughput capacity and also the
way the solution performs in the particular environment in which it
is deployed. Scalability refers to the capability of the solution (H/W
& S/W) to adapt to the growing needs of the enterprise.
b. Ease and Speed of Deployment:
Two compelling challenges faced by today's organizations and IT
Teams are how to speed up deployment cycles and how to reduce
interdependency.
c. Security:
Systems (H/W & S/W) should provide an additional layer of security
and should act as a last line of defense for the data & information
security

Investment criteria for hardware &


d. Availability and Uptime:
software

Maintaining system uptime and availability is a major concern of IT


administrators.
e. Flexibility:
System with better flexibility are given more preference by the
organizations.
f. Solution Architecture:
Robust and flexible architecture to accommodate the business
requirement is the key.
g. Optimized Operations:
Systems can be handled better and more effectively. Allowing the
systems to do what it does best: processing and serving information
to its users.

Investment criteria for hardware &


software
h. End-to-End Professional Services and Support:
Increasingly, business requires not only the best features
and performance but also a strategic partner that can
advise about, install, and support its solution throughout the
entire product lifecycle.
i. System Features and Functionality:
Most importantly, all organizations put more focus on how
the system is going to satisfies the user/business needs
through its features and functionality.
J. Cost:
Last but not the list, is the cost of ownership (Capex, Opex) :
Approach of Market: 70 to 90 Technical, 30 to 10 Financial

You might also like