Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 35

Contents

◉ Types of Programming Languages


◉ Generations of Programming Languages
◉ Features of good Programming Languages
Types of programming
languages
◉ Computers understand only one language that
is binary language or the language of 0s and
1s.
◉ In the initial years, instructions were given in
binary from only.
◉ Although these programs were easily
understood by the computers but it was too
difficult for a normal person to understand.
◉ Human beings came up with assembly and
High level languages to communicate with the
computers. They are classified into three
categories:
◉ Machine language
⚫ It is the native language of the computers
⚫ It is usually only 0s and 1s to represent data and
instructions
◉ Assembly language
⚫ Has symbolic instructions and executable
machine codes
⚫ Letters were used instead of 0s and 1s
◉ High level language
⚫ Written using set of words, have rules for them
⚫ The program written in HLL is called as source program
⚫ These are converted into machine readable
using a compiler or interpreter.
Generations of programming
languages
◉ First generation: machine language
◉ Second generation: assembly language
◉ Third generation : High level language
◉ Fourth generation
◉ Fifth generation: very high level languages
First generation: machine
language
◉ First language was binary, hence known as
machine language.
◉ Machines have only two states, ON (1) and
OFF (0)
◉ Machine language is also known as
native language as the codes is directly
understood by the computer.
◉ There are two parts in the instructions
● OPCODE
● OPERAND
Advantages of machine
languages
◉ Translation free
● Machine language is the only language that
computers can directly execute without the need
for conversion.
◉ High speed
● No conversion is needed, the applications
developed using machine language is extremely
fast.
● Used for applications of nuclear reactors and
chemical processing.
Disadvantages of machine
languages
◉ Machine dependent
● Application developed for a particular
type of machine, may not run on
another machine.
● Costly and difficult for the organizations.
◉ Complex language
● Machine language is complex , difficult to read
or write.
● Programmer has to be an hardware
expert to understand the machine
language perfectly.
◉ Error prone
● Since programmer has to remember all the
opcode and memory locations
● Requires lot of effort to keep track of logic of
the problem.
◉ Tedious
● Problems arises when modifications of
the existing code has to be done.
● Very tedious task and time consuming.
Second generation: assembly
language
◉ Assembly language allows the programmer to
interact directly with the hardware.
◉ This language assigns a mnemonic code to each
machine language instruction to make it easier to
remember to write.
◉ Allows a better human readable method of writing
programs as compared to writing in binary bit
patterns.
◉ Each processor family has its own assembly
language.
◉ Mnemonic is usually three letter long
corresponding to each machine instruction.
◉ The letters are usually abbreviated indicating what
the instruction does.
◉ Since each type of the computer uses a different
native instruction set, assembly languages cannot
be standardized from one machine to another and
instructions from one computer cannot be
expected to work on another.
◉ It allows the use of symbols and set of rules that
can be combined to form a line of code.
◉ Each line of code has four columns called as
fields.
◉ The general format is
[label] <opcode> <operands> [; comments]
◉ [ … ] indicate that enclosed specification
may or may not appear in the statement.
◉ If a label is specified , it is associated as a
symbolic name with machine words generated
for the assembly statement.
◉ If multiple operands are used, each of them is
separated by a comma.
◉ Comments are optional , they facilitate
documentation.
◉ Eg: BEGIN ADD A,B ; add B
to A
assembler
◉ No matter how close assembly language is to machine
code, the computer still cannot understand it.
◉ The assembly language program must be translated into
machine code by separate program called an
assembler.
◉ The assembler program recognizes the character
strings that make up the symbolic names of the various
operations and substitutes the required code for each
instruction.
◉ In short assembler converts the assembly codes into
binary codes and then it assembles the machine
understandable code into the main memory of the
computer, making it ready for execution.
Working of an assembler
Functions of assembler
◉ It translates mnemonic operation codes to
machine code and corresponding register
address to system address.
◉ It checks the syntax of the assembly program
and generates diagnostic messages on syntax
errors.
◉ It assembles all the instructions in the
main memory for execution.
◉ In case of large assembly programs, it
also provides linking facility among
subroutines.
◉ It facilitates the generation of output on
the required output medium.
Advantages of assembly
language
◉ Easy to understand and use:
● It uses mnemonics instead of numerical opcodes and memory
locations used in machine language.
● Programs written in assembly level language are much more
easier to understand when compared to machine level
language
◉ Less error prone:
● mnemonics and system addresses are used
● Programmer need not keep track of address while coding,
leads to less error prone program.
◉ Efficiency:
● Can run much faster and use less memory and other
resources when compared to HLL programs.
◉ More control on hardware:
● Gives direct access to key machine features essential for
implementing certain kinds of low level routines.
Disadvantages of assembly
language
◉ Machine dependent:
● Different computer architectures have their own
machine and assembly languages, programs are
not portable to other systems.
◉ Harder to learn
● The source code for assembly level language is cryptic and in a very
low machine specific form
● Makes a programmer difficult to understand
◉ Slow development time
◉ Less efficient
● Assembly level language program has to be converted to machine
language
◉ No standardization
◉ No support for modern software engineering technology
● Provides less opportunity for reuse and no OOP support
● Does not provide support for safety-critical systems.
Third generation: high level
language
◉ Languages such as COBOL, FORTON, BASIC
and C are examples
◉ Similar to english language.
◉ They are machine independent
◉ A single HLL statement can substitute several
instructions in machine or assembly level
language.
◉ BASIC code snippet
LET X=10
LET
Y=20
LET SUM= X+
Y PRINT SUM
Translating HLL into machine
level language
◉ Achieved by language translators called as
compilers, interpreters etc which
the statements in one
accepts and
language
produce equivalent statements in other
language.
compiler
◉ It is defined as a translator that translates a program
into another program, known as target language.
◉ Usually used to translate a high level language into a
machine language.
◉ The compiler replaces one HLL statements by several
machine level language statements.
◉ The compiler stores the entire program, scans it and
translates the whole program into equivalent machine
language program.
◉ During translation, the compiler checks for syntax
errors, if any error it gives a error message
◉ After compilation, after removal of all errors from the
source code, the resulting machine code is saved in an
executable file.
interpreter
◉ It translates a statements in a program and
executes that statement immediately,
before translating next line of statement
◉ When an error occurs the execution of
the program is halted and error message is
displayed.
linker
◉ An application contains 100 or 1000s lines of
codes
◉ The codes are divided into logical groups and
stored in different so
modules debugging and that
becomesmaintenance
easier. the of
◉ When the programs are the codeinto
divided
blocks , they have to be linked together to
create a complete application, it is done by a
linker.
◉ a linker is a program that links several object
modules and libraries to form a single
program.
loader
◉ Loaders are part of operating system that
brings an executable file residing on disk into
memory and starts its execution.
◉ Its responsible for loading, linking and
relocation.
◉ A loader is a program that performs the
functions of a linker and then immediately
schedules the executable code for execution,
without necessarily creating an executable file
as an output.
◉ Four 4 basic functions are performed:
◉ Allocation
● It allocates memory space for the programs
◉ Linking
● It combines two or more separate object programs
and supplies the information needed to allow
references between them.
◉ Relocation
● It prepares a program to execute properly from its
secondary storage area
◉ Loading
● It places data and machine instructions into the
memory.
◉ Types of loader
● Absolute loader
○ It loads the file into memory at the location specified by
the beginning portion of the file and then passes
control to the program.
○ If the memory space specified by the header is
currently in use, execution cannot proceed and the user
must wait until the requested memory becomes free.
○ Performs only loading operations
○ It does not perform linking and program relocation.
● Relocating loader
○ This loader loads the program in the memory, altering
the various address required to ensure correct
referencing.
○ The decision as to where in memory the program is
placed, is made by the operating system, not the file
headers.
○ The relocating loader can only relocate code that has
been produced by a linker capable of producing relative
code.
Advantages of high level
languages

◉ Readability
◉ Machine independent
◉ Easy debugging
◉ Easier to maintain
◉ Low development cost
◉ Easy documentation
Four generation
◉ Commonly used for database access.
◉ Here computers are instructed what to and
not how to do.
◉ It is easy to write but has less control over
how each task is actually performed.
◉ Have minimum number of rules.
◉ Saves time and allows programmer to code
a complex tasks.
Advantages of
4GLThe user can create an application in a

much shorter time for development and


debugging than with other languages.
◉ The programmer is only interested in
what has to be done and that too at a very
high level.
◉ Programmers do not provide any logic to
perform a task.
◉ Lot of effort is saved.
Disadvantages of
4GL
◉ They are quite lengthy programs,
◉ Need more disk space
◉ Programs are inflexible when compared to
other language programs.
Fifth generation: very HLL
◉ Future of programming languages
◉ Will be able to process natural languages.
◉ The computers will be able to accept,
interpret and execute the instructions in
native language or language of end users.
◉ The programmers may simple type or tell
to computer, to instruct it what needs to be
done.
◉ Closely linked to artificial intelligence and
expert systems.
Features of a good programming
language
◉ Ease of use ◉ Promote structured
◉ Portability programming
◉ Naturalness the ◉ Compact code
for
◉ Maintainability
application
◉ Reusability
◉ Reliability
◉ Safety
◉ Provides interface
to other language
◉ Performance
◉ Concurrency support
◉ Cost
◉ standardization
Ease of use
◉ The language should be easy in writing
code for the programming and executing
them.
◉ The ease and clarity of a language depends
upon its syntax
◉ It should be clear, simple and unified set of
concepts.
◉ The vocabulary of language should
reassemble English.
◉ Symbols, abbreviations and jargons should be
avoided unless they are known by most of the
people.

You might also like