SlideShare a Scribd company logo
Evolution and History of
Programming Languages
1
Debugging
 To debug a program or hardware device is to start with a problem, isolate the
source of the problem, and then fix it.
  Process of identifying, isolating and correcting the errors
Two Categories –
 Syntax errors -- Errors in spelling and grammar.
You can use the compiler or interpreter to uncover syntax errors.
You must have a good working knowledge of error messages to discover the
cause of the error.
Example: C line -> printf(“Hello!”)
 Logical errors -- Errors that indicate the logic used when coding the program
failed to solve the problem.
You do not get error messages with logic errors.
Your only clue to the existence of logic errors is the production of wrong
solutions.
2
Testing
 Checking of desired results
 Generate Test cases
 Objective is to find a case where program fails
 Two Types –
 Black Box (Functional) –
 This is a method of software testing that examines the functionality of an
software or program (e.g. what the software does) without peering into its
internal structures or workings.
 White Box (Glass Box) –
 This a method of testing software that tests internal structures or workings of
an application
 In white-box testing an internal perspective of the system, as well as
programming skills, are used to design test cases.
3
System Software:
System Software includes the Operating System and all the utilities
that enable the computer to function.
System software is a term referring to any computer software
which manages and controls the hardware so that application software
can perform a task.
Example:
Operating Systems, Compiler, Loader, Linker, Interpreter.
4
System Software:
Operating System:
An operating system (OS) is software that manages computer hardware
and software resources and provides common services for computer
programs.
The operating system is an essential component of the system
software in a computer system. Application programs usually require
an operating system to function.
OS acts as an interface between the application programs and the
machine hardware.
Examples: Windows, Linux, Unix and Mac OS, etc.,
5
System Software (contd):
Compiler: A compiler is a computer program (or set of 
programs) that transforms source code written in a programming 
language (the source language) into another computer language (the 
target language, often having a binary form known as object code).
The name "compiler" is primarily used for programs that translate 
source code from a high-level programming language to a lower level 
language (e.g. assembly language or machine code). 
cross-compiler :If the compiled program can run on a computer 
whose CPU or operating system is different from the one on which 
the compiler runs, the compiler is known as a cross-compiler. 
Decompiler : A program that translates from a low level language 
to a higher level one is a decompiler. 
Transpiler or Translator:A program that translates between high-
level languages is usually called a source-to-source compiler or 
transpiler.
6
System Software (contd):
Loader: A loader is the part of an operating system that is
responsible for loading programs into memory, preparing them
for execution and then executing them.
The loader is usually a part of the operating system's and usually is
loaded at system boot time and stays in memory until the system
is rebooted, shut down, or powered off.
7
System Software (contd):
• Linker: A linker or link editor is a program that takes one
or more objects generated by compilers and assembles them into a
single executable program.
• Linker may be a part of compiler.
• Linkers can take objects from a collection called a library. The
objects are program modules containing machine code and
information for the linker.
8
Object File
Linkerr Executable file
C library file
System Software (contd):
• Interpreter: An interpreter is a computer program that translates and
executes instructions written in a computer programming language line-by-
line, unit by unit etc.,
• An interpreter needs to be able to analyze instructions written in the source
language.
• Assembler
• – Converts assembly language programs into object files
9
10
•An object file is a file containing object code, meaning relocatable format machine 
code that is usually not directly executable. 
•Object file has .o extension e.g. hello.o 
•Object files are produced by an assembler, compiler, or other language translator, 
and used as input to the linker, which in turn typically generates an executable  file.
•An executable file is formed by linking the Object files and has .exe extension.
•Object file contains low level instructions which can be understood by the CPU. 
That is why it is also called machine code.
Difference between Object file and Executable file :
Both are binary files but the differences between those are:- 
1)we can execute an executable file while we cannot execute an object file. 
2) An object file is a file where compiler has not yet linked to the libraries, so you 
get an object file just before linking to the libraries, so still some of the symbols or 
function definitions are not yet resolved which are actually present in the libraries, 
and that's why we cannot execute it.
Object file and Executable file
11
1. Translates program one 
statement at a time.
Scans the entire program and translates it 
as a whole into machine code.
2.    It takes less amount of time 
to analyze the source code 
but the overall execution 
time is slower.
It takes large amount of time to analyze 
the source code but the overall execution 
time is comparatively faster.
3.     No intermediate object code 
is generated, hence are 
memory efficient.
Generates intermediate object code 
which further requires linking, hence 
requires more memory.
4.     Continues translating the 
program until the first error 
is met, in which case it stops. 
Hence debugging is easy.
It generates the error message only after 
scanning the whole program. Hence 
debugging is comparatively hard.
5.     Programming language like 
Python, Ruby use 
interpreters.
Programming language like C, C++ use 
compilers.
Interpreter Compiler
Difference between Interpreter and Compiler
Programming Language
12
•An artificial language used to write instructions that can 
be translated into machine language and then executed 
by a computer. 
•English and other natural languages are not used as programming 
languages because they 
cannot be easily translated into machine language.
•Examples: C, C++,Java, Pascal,Python etc
What is Programming Language
13
14
Classification of Programming Languages
The Evolution of Programming Languages -
15
First Generation(Low Level Language):
The first generation program language is pure  machine code, 
that is just ones and zeros e.g. 010110101110,
 Machine Language is the only language that is directly understood by the 
computer.
 Programmers have to design their code by hand then transfer it
to a computer by using a punch card. 
There is no need to translate the code and it will run straight away.
There are benefits:
Code can be fast and efficient because no translator needed.
Code can make use of specific processor features such as 
special registers
Drawbacks:
 Code cannot be ported to other systems and has to be rewritten
 Code is difficult to edit and update
It is difficult to debug the program.
The Evolution of Programming Languages -
16
Second Generation (Low Level Language):
•As you can imagine, writing in 1s and 0s all day will leave you prone to 
mistakes. Second-generation programming languages are a way of describing 
Assembly code which uses mnemonic codes like ADD,SUB,MUL,Div,MOV etc.
•By using codes resembling English programming becomes much easier. The use of 
these mnemonic codes such as LDA for load and STA for store means the code is 
easier to read and write. 
•To convert an assembly code program into object code to run on a computer 
requires an Assembler and each line of assembly can be replaced by the equivalent 
one line of object (machine) code:
17
Advantages of Assembly Language:
•     Code can be fast and efficient
•     Code can make use of specific processor features such    as 
special registers.
•  As it is closer to plain English, it is easier to read and write when 
compared to machine code.
Drawbacks:
• Code cannot be ported to other systems and has to be rewritten 
because each processor has their own mnemonics.
•No Symbolic names for memory locations. You need to keep track 
of the exact memory location that a piece of data is stored. That is, 
you must manipulate memory locations directly.
18
Third generation (High Level Languages)
•Even though Assembly code is easier to read than machine code, it is still 
not straightforward to perform loops and conditionals .
•Third-generation programming languages brought many programmer-
friendly features to code such as loops, conditionals, classes etc. 
•This means that one line of third generation code can produce many lines of 
object (machine) code, saving a lot of time when writing programs.
•Third generation languages can be platform independent, meaning that code 
written for one system will work on another. To convert a 3rd generation 
program into object code requires a Compiler or an Interpreter.
19
Third generation (High Level Languages)
FORTRAN –
•Stands for FORmula TRANslator is developed in 1957 by John Backus
•Very easy to handle complex numbers
•Syntax was very difficult to remember
BASIC –
• Stands for Beginner’s All purpose Symbolic Instruction Code developed in 1960
• This language use interpreter during execution of program
• Execution slower than FORTRAN programs
COBOL –
•Stands for COmmon Business Oriented Language developed in 1960
•Revised version in 1974 and then 1984 etc.
•First language to use English like statement in programming syntax
PASCAL –
• Named after Blaise Pascal (Philosopher) in 1970
• Specially designed as teaching language
• Structured programming language
• Platform independent language
20
Third generation (High Level Languages)
C
• Developed in 1972 at AT & T’s Bell Laboratory by Dennis Ritchie called 
POP
• Reliable and Simple language
• Powerful language which is used for system programming
• Handling of Data types, pointers, variables and file etc. is provided
C++
•Developed in 1979 by Bjarne Stroustrup called as C with Class and C++ in 
1983
• Extension of C, supports object oriented features and Case sensitive
• Specially works on Classes and Objects
JAVA –
•Developed in 1991 by Sun Microsystem called as Oak
• In 1995, changes to JAVA
• Supports object oriented features
• Simple and Easy to learn
• Safe and Secure language
• Portable and Platform Independent
21
Third generation (High Level Languages)
Examples:   C, C++,Java. 
BASIC (Beginners All Purpose Symbolic Instruction Code),
FORTRAN (Formula Translation).
PL/I (Programming Language, Version 1).
ALGOL (Algorithmic Language).
APL (A Programming Language).
•Advantages:
1.Hardware independence, can be easily ported to other systems and 
processors
2.Time saving, programmer friendly, one line of 3rd gen is the equivalent of 
many lines of 1st and 2nd gen.
•Disadvantages:
       Code produced might not make the best use of processor specific 
features unlike 1st and 2nd gen
22
•The fourth generation programming language or non-procedural language,
often abbreviated as 4GL, enables users to access data in a database.
•These are very high-level programming languages are often referred to as
goal-oriented programming languages because they are usually limited to a
very specific application and it might use syntax that is never used in other
programming languages.
•SQL, NOMAD and FOCUS are examples of fourth generation programming
languages.
Fourth generation
23
Fifth generation
•The fifth generation programming language or visual programming language,
is also known as natural language.
•Provides a visual or graphical interface, called a visual programming
environment, for creating source codes.
•Fifth generation programming allows people to interact with computers
without needing any specialized knowledge. People can talk to computers and
the voice recognition systems can convert spoken sounds into written words.
•The difficulty is the computer still only understands zeros and ones, so a
compiler and interpreter must convert the source code into the machine code
that the computer can understand.
•Fifth-generation languages characteristically consist of English-like words and
phrases, thus uses an English like syntax to simplify software development.
•Prolog (PROgramming In LOGic )and Mercury are the best known fifth-
generation languages.
24
Fifth generation
Advantages:
1.Have friendly interfaces
2.Easier to use than older high level languages
3.Linked to the English language
Disadvantages:
Programs run slower than those of earlier language generations because their
machine code is longer and more complex
A Typical C Program Development Environment
1. Edit
2. Preprocess
3. Compile
4. Link
5. Load
6. Execute
Disk
Disk
Loader
Linker
Compiler
Preprocessor
Editor
Disk
Disk
Disk
Primary Memory
CPU
Primary Memory
1. Program is created in the
editor and stored on disk
2. Preprocessor program
processes the code
3. Compiler creates object
code and stores it on disk.
5. Loader puts program
in memory.
4. Linker links the object
code with the
libraries
6. CPU takes each instruction
and executes it, possibly
storing new data values as
the program executes
•Phases of C Programs:
25

More Related Content

What's hot

Computer Language
Computer LanguageComputer Language
Computer Language
Deepak Yadav
 
Computer languages
Computer languagesComputer languages
Computer languages
ABHINAV SINGH
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
Tanzeela_Hussain
 
Introduction of c programming
Introduction of c programmingIntroduction of c programming
Introduction of c programming
Tarun Sharma
 
Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
Akhil Kaushik
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer ProgrammingProf. Erwin Globio
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languagesVarun Garg
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming Languages
Manish Kharotia
 
Programming languages
Programming languagesProgramming languages
Programming languagesvito_carleone
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming LanguagesTarun Sharma
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming languageVasavi College of Engg
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languages
educationfront
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming ConceptsJussi Pohjolainen
 
Programming in c
Programming in cProgramming in c
Programming in c
indra Kishor
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1
Arslan Hussain
 
Programming Languages / Translators
Programming Languages / TranslatorsProgramming Languages / Translators
Programming Languages / Translators
Project Student
 
History of C Programming Language
History of C Programming LanguageHistory of C Programming Language
History of C Programming Language
Niloy Biswas
 

What's hot (20)

Computer Language
Computer LanguageComputer Language
Computer Language
 
Introduction to programming languages
Introduction to programming languagesIntroduction to programming languages
Introduction to programming languages
 
Computer languages
Computer languagesComputer languages
Computer languages
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
Introduction of c programming
Introduction of c programmingIntroduction of c programming
Introduction of c programming
 
Compiler Design Basics
Compiler Design BasicsCompiler Design Basics
Compiler Design Basics
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer Programming
 
Lect 1. introduction to programming languages
Lect 1. introduction to programming languagesLect 1. introduction to programming languages
Lect 1. introduction to programming languages
 
Introduction Programming Languages
Introduction Programming LanguagesIntroduction Programming Languages
Introduction Programming Languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Generations of Programming Languages
Generations of Programming LanguagesGenerations of Programming Languages
Generations of Programming Languages
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming language
 
Introduction to Programming Languages
Introduction to Programming LanguagesIntroduction to Programming Languages
Introduction to Programming Languages
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming Concepts
 
Programming in c
Programming in cProgramming in c
Programming in c
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1
 
Rajesh ppt
Rajesh pptRajesh ppt
Rajesh ppt
 
Programming Languages / Translators
Programming Languages / TranslatorsProgramming Languages / Translators
Programming Languages / Translators
 
History of C Programming Language
History of C Programming LanguageHistory of C Programming Language
History of C Programming Language
 
Computer languages 11
Computer languages 11Computer languages 11
Computer languages 11
 

Viewers also liked

A Brief History of Programming
A Brief History of ProgrammingA Brief History of Programming
A Brief History of Programming
jxyz
 
Evolution of Programming Languages Over the Years
Evolution of Programming Languages Over the YearsEvolution of Programming Languages Over the Years
Evolution of Programming Languages Over the Years
designs.codes
 
Evolution of Computer Languages
Evolution of Computer LanguagesEvolution of Computer Languages
Evolution of Computer Languages
Electro Computer Warehouse
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
sebrown
 
Programming languages
Programming languagesProgramming languages
Programming languagesAkash Varaiya
 
Computer Languages.
Computer Languages.Computer Languages.
Computer Languages.
Aditya Sheoran
 
Computer languages
Computer languagesComputer languages
Computer languages
Buxoo Abdullah
 
Intro to programming
Intro to programmingIntro to programming
Intro to programmingArvin Buendia
 
Mca i pic u-1 introduction to c language
Mca i pic u-1 introduction to c languageMca i pic u-1 introduction to c language
Mca i pic u-1 introduction to c language
Rai University
 
The History of Programming Languages
The History of Programming LanguagesThe History of Programming Languages
The History of Programming Languages
nTier Custom Solutions
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
PraShant Kumar
 
Chapter Seven(1)
Chapter Seven(1)Chapter Seven(1)
Chapter Seven(1)bolovv
 
01. introduction
01. introduction01. introduction
01. introduction
babaaasingh123
 
Various types of computers & history
Various types of computers & historyVarious types of computers & history
Various types of computers & historywildman099
 
generation of computers
generation of computersgeneration of computers
generation of computers
01997228
 
Programming languages
Programming languagesProgramming languages
Programming languages
Archana Maharjan
 

Viewers also liked (20)

A Brief History of Programming
A Brief History of ProgrammingA Brief History of Programming
A Brief History of Programming
 
Evolution of Programming Languages Over the Years
Evolution of Programming Languages Over the YearsEvolution of Programming Languages Over the Years
Evolution of Programming Languages Over the Years
 
Programming Language
Programming LanguageProgramming Language
Programming Language
 
History of programming
History of programmingHistory of programming
History of programming
 
Evolution of Computer Languages
Evolution of Computer LanguagesEvolution of Computer Languages
Evolution of Computer Languages
 
Generations Of Programming Languages
Generations Of Programming LanguagesGenerations Of Programming Languages
Generations Of Programming Languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Computer Languages.
Computer Languages.Computer Languages.
Computer Languages.
 
Computer languages
Computer languagesComputer languages
Computer languages
 
Intro to programming
Intro to programmingIntro to programming
Intro to programming
 
Mca i pic u-1 introduction to c language
Mca i pic u-1 introduction to c languageMca i pic u-1 introduction to c language
Mca i pic u-1 introduction to c language
 
Ch1
Ch1Ch1
Ch1
 
The History of Programming Languages
The History of Programming LanguagesThe History of Programming Languages
The History of Programming Languages
 
software development and programming languages
software development and programming languages software development and programming languages
software development and programming languages
 
Chapter Seven(1)
Chapter Seven(1)Chapter Seven(1)
Chapter Seven(1)
 
Ch2
Ch2Ch2
Ch2
 
01. introduction
01. introduction01. introduction
01. introduction
 
Various types of computers & history
Various types of computers & historyVarious types of computers & history
Various types of computers & history
 
generation of computers
generation of computersgeneration of computers
generation of computers
 
Programming languages
Programming languagesProgramming languages
Programming languages
 

Similar to 4 evolution-of-programming-languages

1.Overview of Programming.pptx
1.Overview of Programming.pptx1.Overview of Programming.pptx
1.Overview of Programming.pptx
Vishwas459764
 
Software Concepts Notes
Software Concepts NotesSoftware Concepts Notes
Software Concepts Notes
Prof. Dr. K. Adisesha
 
Computer program, computer languages, computer software
Computer program, computer languages, computer softwareComputer program, computer languages, computer software
Computer program, computer languages, computer software
Sweta Kumari Barnwal
 
Introduction to system programming
Introduction to system programmingIntroduction to system programming
Introduction to system programming
sonalikharade3
 
Ic lecture8
Ic lecture8 Ic lecture8
Ic lecture8
AttaullahRahimoon
 
Chapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptxChapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptx
dawod yimer
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
Gaditek
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
Gaditek
 
SYSTEM DEVELOPMENT
SYSTEM DEVELOPMENTSYSTEM DEVELOPMENT
SYSTEM DEVELOPMENT
shahzadebaujiti
 
UNIT 2 ECSE-2.pptx
UNIT 2 ECSE-2.pptxUNIT 2 ECSE-2.pptx
UNIT 2 ECSE-2.pptx
AdharshKokkula
 
Unit2_1.pdf
Unit2_1.pdfUnit2_1.pdf
Unit2_1.pdf
JatinSharma586255
 
Pooja H
Pooja H Pooja H
Pooja H
PoojaH35
 
PPS UNIT 1- R18.docx
PPS UNIT 1- R18.docxPPS UNIT 1- R18.docx
PPS UNIT 1- R18.docx
Uzma1102
 
Computer Programming
Computer Programming Computer Programming
Computer Programming
Newreborn Incarnation
 
computer Unit 6
computer Unit 6computer Unit 6
computer Unit 6
Aqeel Rehman
 
Programming Fundamentals lecture 2
Programming Fundamentals lecture 2Programming Fundamentals lecture 2
Programming Fundamentals lecture 2
REHAN IJAZ
 
introductiontocomputerprogramming.pptx
introductiontocomputerprogramming.pptxintroductiontocomputerprogramming.pptx
introductiontocomputerprogramming.pptx
HazardRhenz1
 
Introduction to computer programming
Introduction to computer programmingIntroduction to computer programming
Introduction to computer programming
Noel Malle
 

Similar to 4 evolution-of-programming-languages (20)

1.Overview of Programming.pptx
1.Overview of Programming.pptx1.Overview of Programming.pptx
1.Overview of Programming.pptx
 
Software Concepts Notes
Software Concepts NotesSoftware Concepts Notes
Software Concepts Notes
 
Computer program, computer languages, computer software
Computer program, computer languages, computer softwareComputer program, computer languages, computer software
Computer program, computer languages, computer software
 
Introduction to system programming
Introduction to system programmingIntroduction to system programming
Introduction to system programming
 
Ic lecture8
Ic lecture8 Ic lecture8
Ic lecture8
 
Chapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptxChapter 2 Program language translation.pptx
Chapter 2 Program language translation.pptx
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
 
Programming Paradigm & Languages
Programming Paradigm & LanguagesProgramming Paradigm & Languages
Programming Paradigm & Languages
 
Richa garg itm
Richa garg itmRicha garg itm
Richa garg itm
 
SYSTEM DEVELOPMENT
SYSTEM DEVELOPMENTSYSTEM DEVELOPMENT
SYSTEM DEVELOPMENT
 
UNIT 2 ECSE-2.pptx
UNIT 2 ECSE-2.pptxUNIT 2 ECSE-2.pptx
UNIT 2 ECSE-2.pptx
 
Unit2_1.pdf
Unit2_1.pdfUnit2_1.pdf
Unit2_1.pdf
 
Pooja H
Pooja H Pooja H
Pooja H
 
PPS UNIT 1- R18.docx
PPS UNIT 1- R18.docxPPS UNIT 1- R18.docx
PPS UNIT 1- R18.docx
 
Computer Programming
Computer Programming Computer Programming
Computer Programming
 
Computer
ComputerComputer
Computer
 
computer Unit 6
computer Unit 6computer Unit 6
computer Unit 6
 
Programming Fundamentals lecture 2
Programming Fundamentals lecture 2Programming Fundamentals lecture 2
Programming Fundamentals lecture 2
 
introductiontocomputerprogramming.pptx
introductiontocomputerprogramming.pptxintroductiontocomputerprogramming.pptx
introductiontocomputerprogramming.pptx
 
Introduction to computer programming
Introduction to computer programmingIntroduction to computer programming
Introduction to computer programming
 

More from Rohit Shrivastava

1 introduction-to-computer
1 introduction-to-computer1 introduction-to-computer
1 introduction-to-computer
Rohit Shrivastava
 
17 structure-and-union
17 structure-and-union17 structure-and-union
17 structure-and-union
Rohit Shrivastava
 
16 dynamic-memory-allocation
16 dynamic-memory-allocation16 dynamic-memory-allocation
16 dynamic-memory-allocation
Rohit Shrivastava
 
3 algorithm-and-flowchart
3 algorithm-and-flowchart3 algorithm-and-flowchart
3 algorithm-and-flowchart
Rohit Shrivastava
 
6 operators-in-c
6 operators-in-c6 operators-in-c
6 operators-in-c
Rohit Shrivastava
 

More from Rohit Shrivastava (13)

1 introduction-to-computer
1 introduction-to-computer1 introduction-to-computer
1 introduction-to-computer
 
17 structure-and-union
17 structure-and-union17 structure-and-union
17 structure-and-union
 
16 dynamic-memory-allocation
16 dynamic-memory-allocation16 dynamic-memory-allocation
16 dynamic-memory-allocation
 
14 strings
14 strings14 strings
14 strings
 
11 functions
11 functions11 functions
11 functions
 
10 array
10 array10 array
10 array
 
8 number-system
8 number-system8 number-system
8 number-system
 
7 decision-control
7 decision-control7 decision-control
7 decision-control
 
6 operators-in-c
6 operators-in-c6 operators-in-c
6 operators-in-c
 
5 introduction-to-c
5 introduction-to-c5 introduction-to-c
5 introduction-to-c
 
3 algorithm-and-flowchart
3 algorithm-and-flowchart3 algorithm-and-flowchart
3 algorithm-and-flowchart
 
2 memory-and-io-devices
2 memory-and-io-devices2 memory-and-io-devices
2 memory-and-io-devices
 
6 operators-in-c
6 operators-in-c6 operators-in-c
6 operators-in-c
 

Recently uploaded

Digital Marketing Training In Bangalore
Digital  Marketing Training In BangaloreDigital  Marketing Training In Bangalore
Digital Marketing Training In Bangalore
nidm599
 
Personal Brand exploration KE.pdf for assignment
Personal Brand exploration KE.pdf for assignmentPersonal Brand exploration KE.pdf for assignment
Personal Brand exploration KE.pdf for assignment
ragingokie
 
欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】
欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】
欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】
foismail170
 
一比一原版(YU毕业证)约克大学毕业证如何办理
一比一原版(YU毕业证)约克大学毕业证如何办理一比一原版(YU毕业证)约克大学毕业证如何办理
一比一原版(YU毕业证)约克大学毕业证如何办理
yuhofha
 
How Mentoring Elevates Your PM Career | PMI Silver Spring Chapter
How Mentoring Elevates Your PM Career | PMI Silver Spring ChapterHow Mentoring Elevates Your PM Career | PMI Silver Spring Chapter
How Mentoring Elevates Your PM Career | PMI Silver Spring Chapter
Hector Del Castillo, CPM, CPMM
 
134. Reviewer Certificate in Computer Science
134. Reviewer Certificate in Computer Science134. Reviewer Certificate in Computer Science
134. Reviewer Certificate in Computer Science
Manu Mitra
 
皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】
皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】
皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】
larisashrestha558
 
Brand Identity For A Sportscaster Project and Portfolio I
Brand Identity For A Sportscaster Project and Portfolio IBrand Identity For A Sportscaster Project and Portfolio I
Brand Identity For A Sportscaster Project and Portfolio I
thomasaolson2000
 
DIGITAL MARKETING COURSE IN CHENNAI.pptx
DIGITAL MARKETING COURSE IN CHENNAI.pptxDIGITAL MARKETING COURSE IN CHENNAI.pptx
DIGITAL MARKETING COURSE IN CHENNAI.pptx
FarzanaRbcomcs
 
135. Reviewer Certificate in Journal of Engineering
135. Reviewer Certificate in Journal of Engineering135. Reviewer Certificate in Journal of Engineering
135. Reviewer Certificate in Journal of Engineering
Manu Mitra
 
原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样
原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样
原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样
atwvhyhm
 
Exploring Career Paths in Cybersecurity for Technical Communicators
Exploring Career Paths in Cybersecurity for Technical CommunicatorsExploring Career Paths in Cybersecurity for Technical Communicators
Exploring Career Paths in Cybersecurity for Technical Communicators
Ben Woelk, CISSP, CPTC
 
Full Sail_Morales_Michael_SMM_2024-05.pptx
Full Sail_Morales_Michael_SMM_2024-05.pptxFull Sail_Morales_Michael_SMM_2024-05.pptx
Full Sail_Morales_Michael_SMM_2024-05.pptx
mmorales2173
 
Operating system. short answes and Interview questions .pdf
Operating system. short answes and Interview questions .pdfOperating system. short answes and Interview questions .pdf
Operating system. short answes and Interview questions .pdf
harikrishnahari6276
 
Chapters 3 Contracts.pptx Chapters 3 Contracts.pptx
Chapters 3  Contracts.pptx Chapters 3  Contracts.pptxChapters 3  Contracts.pptx Chapters 3  Contracts.pptx
Chapters 3 Contracts.pptx Chapters 3 Contracts.pptx
Sheldon Byron
 
RECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdf
RECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdfRECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdf
RECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdf
AlessandroMartins454470
 
han han widi kembar tapi beda han han dan widi kembar tapi sama
han han widi kembar tapi beda han han dan widi kembar tapi samahan han widi kembar tapi beda han han dan widi kembar tapi sama
han han widi kembar tapi beda han han dan widi kembar tapi sama
IrlanMalik
 
一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理
一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理
一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理
yuhofha
 
How to create an effective K-POC tutorial
How to create an effective K-POC tutorialHow to create an effective K-POC tutorial
How to create an effective K-POC tutorial
vencislavkaaa
 
一比一原版(UVic毕业证)维多利亚大学毕业证如何办理
一比一原版(UVic毕业证)维多利亚大学毕业证如何办理一比一原版(UVic毕业证)维多利亚大学毕业证如何办理
一比一原版(UVic毕业证)维多利亚大学毕业证如何办理
pxyhy
 

Recently uploaded (20)

Digital Marketing Training In Bangalore
Digital  Marketing Training In BangaloreDigital  Marketing Training In Bangalore
Digital Marketing Training In Bangalore
 
Personal Brand exploration KE.pdf for assignment
Personal Brand exploration KE.pdf for assignmentPersonal Brand exploration KE.pdf for assignment
Personal Brand exploration KE.pdf for assignment
 
欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】
欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】
欧洲杯投注网站-欧洲杯投注网站推荐-欧洲杯投注网站| 立即访问【ac123.net】
 
一比一原版(YU毕业证)约克大学毕业证如何办理
一比一原版(YU毕业证)约克大学毕业证如何办理一比一原版(YU毕业证)约克大学毕业证如何办理
一比一原版(YU毕业证)约克大学毕业证如何办理
 
How Mentoring Elevates Your PM Career | PMI Silver Spring Chapter
How Mentoring Elevates Your PM Career | PMI Silver Spring ChapterHow Mentoring Elevates Your PM Career | PMI Silver Spring Chapter
How Mentoring Elevates Your PM Career | PMI Silver Spring Chapter
 
134. Reviewer Certificate in Computer Science
134. Reviewer Certificate in Computer Science134. Reviewer Certificate in Computer Science
134. Reviewer Certificate in Computer Science
 
皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】
皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】
皇冠体育- 皇冠体育官方网站- CROWN SPORTS| 立即访问【ac123.net】
 
Brand Identity For A Sportscaster Project and Portfolio I
Brand Identity For A Sportscaster Project and Portfolio IBrand Identity For A Sportscaster Project and Portfolio I
Brand Identity For A Sportscaster Project and Portfolio I
 
DIGITAL MARKETING COURSE IN CHENNAI.pptx
DIGITAL MARKETING COURSE IN CHENNAI.pptxDIGITAL MARKETING COURSE IN CHENNAI.pptx
DIGITAL MARKETING COURSE IN CHENNAI.pptx
 
135. Reviewer Certificate in Journal of Engineering
135. Reviewer Certificate in Journal of Engineering135. Reviewer Certificate in Journal of Engineering
135. Reviewer Certificate in Journal of Engineering
 
原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样
原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样
原版制作(RMIT毕业证书)墨尔本皇家理工大学毕业证在读证明一模一样
 
Exploring Career Paths in Cybersecurity for Technical Communicators
Exploring Career Paths in Cybersecurity for Technical CommunicatorsExploring Career Paths in Cybersecurity for Technical Communicators
Exploring Career Paths in Cybersecurity for Technical Communicators
 
Full Sail_Morales_Michael_SMM_2024-05.pptx
Full Sail_Morales_Michael_SMM_2024-05.pptxFull Sail_Morales_Michael_SMM_2024-05.pptx
Full Sail_Morales_Michael_SMM_2024-05.pptx
 
Operating system. short answes and Interview questions .pdf
Operating system. short answes and Interview questions .pdfOperating system. short answes and Interview questions .pdf
Operating system. short answes and Interview questions .pdf
 
Chapters 3 Contracts.pptx Chapters 3 Contracts.pptx
Chapters 3  Contracts.pptx Chapters 3  Contracts.pptxChapters 3  Contracts.pptx Chapters 3  Contracts.pptx
Chapters 3 Contracts.pptx Chapters 3 Contracts.pptx
 
RECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdf
RECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdfRECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdf
RECOGNITION AWARD 13 - TO ALESSANDRO MARTINS.pdf
 
han han widi kembar tapi beda han han dan widi kembar tapi sama
han han widi kembar tapi beda han han dan widi kembar tapi samahan han widi kembar tapi beda han han dan widi kembar tapi sama
han han widi kembar tapi beda han han dan widi kembar tapi sama
 
一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理
一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理
一比一原版(TMU毕业证)多伦多都会大学毕业证如何办理
 
How to create an effective K-POC tutorial
How to create an effective K-POC tutorialHow to create an effective K-POC tutorial
How to create an effective K-POC tutorial
 
一比一原版(UVic毕业证)维多利亚大学毕业证如何办理
一比一原版(UVic毕业证)维多利亚大学毕业证如何办理一比一原版(UVic毕业证)维多利亚大学毕业证如何办理
一比一原版(UVic毕业证)维多利亚大学毕业证如何办理
 

4 evolution-of-programming-languages

  • 1. Evolution and History of Programming Languages 1
  • 2. Debugging  To debug a program or hardware device is to start with a problem, isolate the source of the problem, and then fix it.   Process of identifying, isolating and correcting the errors Two Categories –  Syntax errors -- Errors in spelling and grammar. You can use the compiler or interpreter to uncover syntax errors. You must have a good working knowledge of error messages to discover the cause of the error. Example: C line -> printf(“Hello!”)  Logical errors -- Errors that indicate the logic used when coding the program failed to solve the problem. You do not get error messages with logic errors. Your only clue to the existence of logic errors is the production of wrong solutions. 2
  • 3. Testing  Checking of desired results  Generate Test cases  Objective is to find a case where program fails  Two Types –  Black Box (Functional) –  This is a method of software testing that examines the functionality of an software or program (e.g. what the software does) without peering into its internal structures or workings.  White Box (Glass Box) –  This a method of testing software that tests internal structures or workings of an application  In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases. 3
  • 4. System Software: System Software includes the Operating System and all the utilities that enable the computer to function. System software is a term referring to any computer software which manages and controls the hardware so that application software can perform a task. Example: Operating Systems, Compiler, Loader, Linker, Interpreter. 4
  • 5. System Software: Operating System: An operating system (OS) is software that manages computer hardware and software resources and provides common services for computer programs. The operating system is an essential component of the system software in a computer system. Application programs usually require an operating system to function. OS acts as an interface between the application programs and the machine hardware. Examples: Windows, Linux, Unix and Mac OS, etc., 5
  • 6. System Software (contd): Compiler: A compiler is a computer program (or set of  programs) that transforms source code written in a programming  language (the source language) into another computer language (the  target language, often having a binary form known as object code). The name "compiler" is primarily used for programs that translate  source code from a high-level programming language to a lower level  language (e.g. assembly language or machine code).  cross-compiler :If the compiled program can run on a computer  whose CPU or operating system is different from the one on which  the compiler runs, the compiler is known as a cross-compiler.  Decompiler : A program that translates from a low level language  to a higher level one is a decompiler.  Transpiler or Translator:A program that translates between high- level languages is usually called a source-to-source compiler or  transpiler. 6
  • 7. System Software (contd): Loader: A loader is the part of an operating system that is responsible for loading programs into memory, preparing them for execution and then executing them. The loader is usually a part of the operating system's and usually is loaded at system boot time and stays in memory until the system is rebooted, shut down, or powered off. 7
  • 8. System Software (contd): • Linker: A linker or link editor is a program that takes one or more objects generated by compilers and assembles them into a single executable program. • Linker may be a part of compiler. • Linkers can take objects from a collection called a library. The objects are program modules containing machine code and information for the linker. 8 Object File Linkerr Executable file C library file
  • 9. System Software (contd): • Interpreter: An interpreter is a computer program that translates and executes instructions written in a computer programming language line-by- line, unit by unit etc., • An interpreter needs to be able to analyze instructions written in the source language. • Assembler • – Converts assembly language programs into object files 9
  • 10. 10 •An object file is a file containing object code, meaning relocatable format machine  code that is usually not directly executable.  •Object file has .o extension e.g. hello.o  •Object files are produced by an assembler, compiler, or other language translator,  and used as input to the linker, which in turn typically generates an executable  file. •An executable file is formed by linking the Object files and has .exe extension. •Object file contains low level instructions which can be understood by the CPU.  That is why it is also called machine code. Difference between Object file and Executable file : Both are binary files but the differences between those are:-  1)we can execute an executable file while we cannot execute an object file.  2) An object file is a file where compiler has not yet linked to the libraries, so you  get an object file just before linking to the libraries, so still some of the symbols or  function definitions are not yet resolved which are actually present in the libraries,  and that's why we cannot execute it. Object file and Executable file
  • 11. 11 1. Translates program one  statement at a time. Scans the entire program and translates it  as a whole into machine code. 2.    It takes less amount of time  to analyze the source code  but the overall execution  time is slower. It takes large amount of time to analyze  the source code but the overall execution  time is comparatively faster. 3.     No intermediate object code  is generated, hence are  memory efficient. Generates intermediate object code  which further requires linking, hence  requires more memory. 4.     Continues translating the  program until the first error  is met, in which case it stops.  Hence debugging is easy. It generates the error message only after  scanning the whole program. Hence  debugging is comparatively hard. 5.     Programming language like  Python, Ruby use  interpreters. Programming language like C, C++ use  compilers. Interpreter Compiler Difference between Interpreter and Compiler
  • 15. The Evolution of Programming Languages - 15 First Generation(Low Level Language): The first generation program language is pure  machine code,  that is just ones and zeros e.g. 010110101110,  Machine Language is the only language that is directly understood by the  computer.  Programmers have to design their code by hand then transfer it to a computer by using a punch card.  There is no need to translate the code and it will run straight away. There are benefits: Code can be fast and efficient because no translator needed. Code can make use of specific processor features such as  special registers Drawbacks:  Code cannot be ported to other systems and has to be rewritten  Code is difficult to edit and update It is difficult to debug the program.
  • 16. The Evolution of Programming Languages - 16 Second Generation (Low Level Language): •As you can imagine, writing in 1s and 0s all day will leave you prone to  mistakes. Second-generation programming languages are a way of describing  Assembly code which uses mnemonic codes like ADD,SUB,MUL,Div,MOV etc. •By using codes resembling English programming becomes much easier. The use of  these mnemonic codes such as LDA for load and STA for store means the code is  easier to read and write.  •To convert an assembly code program into object code to run on a computer  requires an Assembler and each line of assembly can be replaced by the equivalent  one line of object (machine) code:
  • 17. 17 Advantages of Assembly Language: •     Code can be fast and efficient •     Code can make use of specific processor features such    as  special registers. •  As it is closer to plain English, it is easier to read and write when  compared to machine code. Drawbacks: • Code cannot be ported to other systems and has to be rewritten  because each processor has their own mnemonics. •No Symbolic names for memory locations. You need to keep track  of the exact memory location that a piece of data is stored. That is,  you must manipulate memory locations directly.
  • 18. 18 Third generation (High Level Languages) •Even though Assembly code is easier to read than machine code, it is still  not straightforward to perform loops and conditionals . •Third-generation programming languages brought many programmer- friendly features to code such as loops, conditionals, classes etc.  •This means that one line of third generation code can produce many lines of  object (machine) code, saving a lot of time when writing programs. •Third generation languages can be platform independent, meaning that code  written for one system will work on another. To convert a 3rd generation  program into object code requires a Compiler or an Interpreter.
  • 19. 19 Third generation (High Level Languages) FORTRAN – •Stands for FORmula TRANslator is developed in 1957 by John Backus •Very easy to handle complex numbers •Syntax was very difficult to remember BASIC – • Stands for Beginner’s All purpose Symbolic Instruction Code developed in 1960 • This language use interpreter during execution of program • Execution slower than FORTRAN programs COBOL – •Stands for COmmon Business Oriented Language developed in 1960 •Revised version in 1974 and then 1984 etc. •First language to use English like statement in programming syntax PASCAL – • Named after Blaise Pascal (Philosopher) in 1970 • Specially designed as teaching language • Structured programming language • Platform independent language
  • 20. 20 Third generation (High Level Languages) C • Developed in 1972 at AT & T’s Bell Laboratory by Dennis Ritchie called  POP • Reliable and Simple language • Powerful language which is used for system programming • Handling of Data types, pointers, variables and file etc. is provided C++ •Developed in 1979 by Bjarne Stroustrup called as C with Class and C++ in  1983 • Extension of C, supports object oriented features and Case sensitive • Specially works on Classes and Objects JAVA – •Developed in 1991 by Sun Microsystem called as Oak • In 1995, changes to JAVA • Supports object oriented features • Simple and Easy to learn • Safe and Secure language • Portable and Platform Independent
  • 21. 21 Third generation (High Level Languages) Examples:   C, C++,Java.  BASIC (Beginners All Purpose Symbolic Instruction Code), FORTRAN (Formula Translation). PL/I (Programming Language, Version 1). ALGOL (Algorithmic Language). APL (A Programming Language). •Advantages: 1.Hardware independence, can be easily ported to other systems and  processors 2.Time saving, programmer friendly, one line of 3rd gen is the equivalent of  many lines of 1st and 2nd gen. •Disadvantages:        Code produced might not make the best use of processor specific  features unlike 1st and 2nd gen
  • 22. 22 •The fourth generation programming language or non-procedural language, often abbreviated as 4GL, enables users to access data in a database. •These are very high-level programming languages are often referred to as goal-oriented programming languages because they are usually limited to a very specific application and it might use syntax that is never used in other programming languages. •SQL, NOMAD and FOCUS are examples of fourth generation programming languages. Fourth generation
  • 23. 23 Fifth generation •The fifth generation programming language or visual programming language, is also known as natural language. •Provides a visual or graphical interface, called a visual programming environment, for creating source codes. •Fifth generation programming allows people to interact with computers without needing any specialized knowledge. People can talk to computers and the voice recognition systems can convert spoken sounds into written words. •The difficulty is the computer still only understands zeros and ones, so a compiler and interpreter must convert the source code into the machine code that the computer can understand. •Fifth-generation languages characteristically consist of English-like words and phrases, thus uses an English like syntax to simplify software development. •Prolog (PROgramming In LOGic )and Mercury are the best known fifth- generation languages.
  • 24. 24 Fifth generation Advantages: 1.Have friendly interfaces 2.Easier to use than older high level languages 3.Linked to the English language Disadvantages: Programs run slower than those of earlier language generations because their machine code is longer and more complex
  • 25. A Typical C Program Development Environment 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Disk Disk Loader Linker Compiler Preprocessor Editor Disk Disk Disk Primary Memory CPU Primary Memory 1. Program is created in the editor and stored on disk 2. Preprocessor program processes the code 3. Compiler creates object code and stores it on disk. 5. Loader puts program in memory. 4. Linker links the object code with the libraries 6. CPU takes each instruction and executes it, possibly storing new data values as the program executes •Phases of C Programs: 25