SlideShare a Scribd company logo
COMPUTER PROGRAMMING: FROM MACHINE LANGUAGE TO ARTIFICIAL
INTELLIGENCE
Takeaway: As computing power has increased, programming languages have evolved to take
advantage of enhanced computing resources. Programming languages were used even before
computers were invented. For example, a player piano scroll, that long roll of encoded paper tape, is
considered an early form of programming because it contained the instructions needed to make a
piano play a tune. The first computers were programmed by flipping switches and changing the
configuration of the hardware. As a result, early programmers had to be intimately familiar with
computer hardware. But we’ve come a long way, and high-level programming languages require
little or no knowledge of the underlying hardware.
THE FIRST GENERATION - PROGRAMMING AT THE MACHINE LEVEL
First-generation programming languages (1GL) are often known as machine languages or machine
code. They operate at the lowest level of abstraction (closest to the hardware) of all languages.
First-generation languages deal directly with the binary zeros and ones that are used to store and
process information in a computer. Programs in higher-level languages must be compiled or
assembled into machine code in order to run. First-generation languages were used to program first-
generation computers such as UNIVAC I and the IBM 701.
THE SECOND GENERATION - SOME ASSEMBLY REQUIRED
Second-generation languages (2GL), often known as assembly languages, were developed largely
because of the difficulty in programming with first-generation languages. Although still low-level
languages, assembly languages introduced the use of symbolic codes (called mnemonics) to
represent instructions to the computer. A program in assembly language is translated into machine
code by means of a utility known as an assembler.
Since they operate at the lowest level of abstraction, second-generation languages offer the benefits
of speed and minimum code size. They also enable a programmer to directly manipulate hardware
components such as memory locations and registers. At one time, assembly languages were used to
program operating systems and applications that required smaller, faster-running code, such as
video games. Examples of games written in assembly language include console games for the Mega
Drive/Genesis platform and the Super Nintendo Entertainment System platform.
Although largely supplanted by higher-level languages, assembly languages are still used in
situations where hardware interaction is required or performance must be optimized. Some
compilers for higher-level languages compile source code to an assembly language before invoking
an assembler to compile to machine code.
THE THIRD GENERATION - GENTLEMAN’S C AND OTHERS
The third generation of programming languages (3GL) includes high-level languages such as C, C+
+, Fortran, COBOL, BASIC, C# and Java. Third-generation programming languages represent a
major improvement in usability over assembly languages.
Unlike assembly languages, third-generation languages are not machine-specific. When
programming with a third-generation language, a programmer writes the source code for the
program and then uses a compiler to translate it into object code (or machine code), which can be
understood by the targeted computer.
The development of programming paradigms such as structured programming and object-oriented
programming (OOP) coincided with the development of third-generation languages.
THE FOURTH GENERATION - PROGRAMMER ENHANCEMENT
Fourth-generation programming languages (4GL) were created to enhance programmer
productivity in specific domains such as database querying and report generation.
The syntax of a fourth-generation language is generally closer to human language than the syntax
from previous generations of programming languages. A single statement in a fourth-generation
language can automatically generate the equivalent of a series of instructions in a third-generation
language, reducing the time it takes to develop an application.
Examples of fourth-generation languages include Structured Query Language (SQL), Informix-4GL
and ColdFusion.
THE FIFTH GENERATION - WATSON, I PRESUME
Fifth-generation languages (5GL) are often used in the realm of artificial intelligence.
The traditional unit of computation is the algorithm, which is basically a step-by-step procedure for
calculating a solution. Fifth-generation languages attempt to go beyond the algorithm by defining
the conditions (or properties) for a solution and allowing the computer to determine the possible
solutions that meet the specified conditions.
An example of a fifth-generation language is Prolog, which was one of the languages used to
program IBM’s Watson in preparation for its participation on the television quiz show "Jeopardy!".
WHY SHOULD I CARE?
There you have it, the generations of programming languages really aren't that hard to understand.
A good mental model is the higher up you get, the further abstracted you are from the hardware.
This means less control, but also less work to accomplish something through programming.
Why does this matter? While theoretical, it's key to understand where your development fits in.
Many developers spend the majority of their day in an integrated development environment for a a
3GL language, so understanding that a language is 2GL or 4GL gives you some perspective as to
the level of detail required to produce usable code. In general, working with a 2GL language is
going to be more complex than a 3GL language. On the other hand, you can accomplish much less
with a 4GL language like SQL than with a 3GL like C.

More Related Content

What's hot

Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigms
John Paul Hallasgo
 
Programming language
Programming languageProgramming language
Programming languageAyesha Waheed
 
Assignment on basic programming language
Assignment on  basic programming languageAssignment on  basic programming language
Assignment on basic programming language
Guru buying house , Main branch ,Barishal.
 
Programming language
Programming languageProgramming language
Programming language
Shuja Qais
 
Basic Meaning of Computer languages
Basic Meaning of Computer languagesBasic Meaning of Computer languages
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenationAshwini Awatare
 
So you want to be a programmer
So you want to be a programmerSo you want to be a programmer
So you want to be a programmerBusayo Oyebisi
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming conceptssalmankhan570
 
Programming Languages
Programming LanguagesProgramming Languages
ICT, Importance of programming and programming languages
ICT, Importance of programming and programming languagesICT, Importance of programming and programming languages
ICT, Importance of programming and programming languages
Ebin Robinson
 
Computer programming languages
Computer programming languagesComputer programming languages
Computer programming languages
SubramanianMuthusamy3
 
Computer languages
Computer languagesComputer languages
Computer languages
mrutherfordwest
 
Programming languages
Programming languagesProgramming languages
Programming languages
Fatima Abdul Rahman
 
Grade 10 introduction and history of programming
Grade 10   introduction and history of programmingGrade 10   introduction and history of programming
Grade 10 introduction and history of programming
Rafael Balderosa
 
Programming
ProgrammingProgramming
Programming
abdulkareem_nm
 
Concept of computer programming iv
Concept of computer programming ivConcept of computer programming iv
Concept of computer programming ivEyelean xilef
 
Types Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master ProgrammingTypes Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master Programming
calltutors
 
Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languages
Nitin Kumar Kashyap
 
Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentation
fazli khaliq
 

What's hot (20)

Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigms
 
Programming language
Programming languageProgramming language
Programming language
 
Assignment on basic programming language
Assignment on  basic programming languageAssignment on  basic programming language
Assignment on basic programming language
 
Programming language
Programming languageProgramming language
Programming language
 
Basic Meaning of Computer languages
Basic Meaning of Computer languagesBasic Meaning of Computer languages
Basic Meaning of Computer languages
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
 
So you want to be a programmer
So you want to be a programmerSo you want to be a programmer
So you want to be a programmer
 
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
 
Programming Languages
Programming LanguagesProgramming Languages
Programming Languages
 
ICT, Importance of programming and programming languages
ICT, Importance of programming and programming languagesICT, Importance of programming and programming languages
ICT, Importance of programming and programming languages
 
Computer programming languages
Computer programming languagesComputer programming languages
Computer programming languages
 
History of programming
History of programmingHistory of programming
History of programming
 
Computer languages
Computer languagesComputer languages
Computer languages
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Grade 10 introduction and history of programming
Grade 10   introduction and history of programmingGrade 10   introduction and history of programming
Grade 10 introduction and history of programming
 
Programming
ProgrammingProgramming
Programming
 
Concept of computer programming iv
Concept of computer programming ivConcept of computer programming iv
Concept of computer programming iv
 
Types Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master ProgrammingTypes Of Coding Languages: A Complete Guide To Master Programming
Types Of Coding Languages: A Complete Guide To Master Programming
 
Evolution of programming languages
Evolution of programming languagesEvolution of programming languages
Evolution of programming languages
 
Programming Fundamental Presentation
Programming Fundamental PresentationProgramming Fundamental Presentation
Programming Fundamental Presentation
 

Similar to Machine language to artificial intelligence

Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languageskitturashmikittu
 
Introduction to programming principles languages
Introduction to programming principles languagesIntroduction to programming principles languages
Introduction to programming principles languages
Frankie Jones
 
Programming Part 01
Programming Part 01Programming Part 01
Programming Part 01
zakri zakaria
 
La5 ict-topic-5-programming
La5 ict-topic-5-programmingLa5 ict-topic-5-programming
La5 ict-topic-5-programmingAzmiah Mahmud
 
Ict topic 5
Ict topic 5Ict topic 5
Ict topic 5
kwongliik
 
Programming languages
Programming languagesProgramming languages
Programming languagesvito_carleone
 
Ayushi
AyushiAyushi
Generation of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxGeneration of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptx
AryaDutta4
 
La 5 Programming2
La 5   Programming2La 5   Programming2
La 5 Programming2Cma Mohd
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
NaqashAhmad14
 
Preliminary-Examination.docx
Preliminary-Examination.docxPreliminary-Examination.docx
Preliminary-Examination.docx
StromilesVidal
 
What is Assembly & Procedural Programming Languages?
What is Assembly & Procedural Programming Languages?What is Assembly & Procedural Programming Languages?
What is Assembly & Procedural Programming Languages?
MinoshWijayarathne
 
Lang generations 7557_syed_ghazanfarnaqvi_saturday
Lang generations 7557_syed_ghazanfarnaqvi_saturdayLang generations 7557_syed_ghazanfarnaqvi_saturday
Lang generations 7557_syed_ghazanfarnaqvi_saturdaySyed Naqvi
 
Lecture_1_Introduction_to_Programming.pptx
Lecture_1_Introduction_to_Programming.pptxLecture_1_Introduction_to_Programming.pptx
Lecture_1_Introduction_to_Programming.pptx
Chewe Lulembo
 
Cmp104 lec 6 computer lang
Cmp104 lec 6 computer langCmp104 lec 6 computer lang
Cmp104 lec 6 computer langkapil078
 
Cmp104 lec 6 computer lang
Cmp104 lec 6 computer langCmp104 lec 6 computer lang
Cmp104 lec 6 computer langkapil078
 

Similar to Machine language to artificial intelligence (20)

Computer languages 11
Computer languages 11Computer languages 11
Computer languages 11
 
Notacd071
Notacd071Notacd071
Notacd071
 
Notacd07
Notacd07Notacd07
Notacd07
 
Nota programming
Nota programmingNota programming
Nota programming
 
Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languages
 
Introduction to programming principles languages
Introduction to programming principles languagesIntroduction to programming principles languages
Introduction to programming principles languages
 
Programming Part 01
Programming Part 01Programming Part 01
Programming Part 01
 
La5 ict-topic-5-programming
La5 ict-topic-5-programmingLa5 ict-topic-5-programming
La5 ict-topic-5-programming
 
Ict topic 5
Ict topic 5Ict topic 5
Ict topic 5
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Ayushi
AyushiAyushi
Ayushi
 
Generation of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptxGeneration of Computer language by arya dutta (1).pptx
Generation of Computer language by arya dutta (1).pptx
 
La 5 Programming2
La 5   Programming2La 5   Programming2
La 5 Programming2
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
 
Preliminary-Examination.docx
Preliminary-Examination.docxPreliminary-Examination.docx
Preliminary-Examination.docx
 
What is Assembly & Procedural Programming Languages?
What is Assembly & Procedural Programming Languages?What is Assembly & Procedural Programming Languages?
What is Assembly & Procedural Programming Languages?
 
Lang generations 7557_syed_ghazanfarnaqvi_saturday
Lang generations 7557_syed_ghazanfarnaqvi_saturdayLang generations 7557_syed_ghazanfarnaqvi_saturday
Lang generations 7557_syed_ghazanfarnaqvi_saturday
 
Lecture_1_Introduction_to_Programming.pptx
Lecture_1_Introduction_to_Programming.pptxLecture_1_Introduction_to_Programming.pptx
Lecture_1_Introduction_to_Programming.pptx
 
Cmp104 lec 6 computer lang
Cmp104 lec 6 computer langCmp104 lec 6 computer lang
Cmp104 lec 6 computer lang
 
Cmp104 lec 6 computer lang
Cmp104 lec 6 computer langCmp104 lec 6 computer lang
Cmp104 lec 6 computer lang
 

More from Suneel Dogra

Business model
Business modelBusiness model
Business model
Suneel Dogra
 
Internet
InternetInternet
Internet
Suneel Dogra
 
Distributed databases
Distributed databasesDistributed databases
Distributed databasesSuneel Dogra
 
Data base management system
Data base management systemData base management system
Data base management systemSuneel Dogra
 
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1Suneel Dogra
 
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1Suneel Dogra
 
Internet security
Internet securityInternet security
Internet security
Suneel Dogra
 
He 12 different types of servers that every techie should know about
He 12 different types of servers that every techie should know aboutHe 12 different types of servers that every techie should know about
He 12 different types of servers that every techie should know aboutSuneel Dogra
 
Bachelor of computer application b.c.a.-2014
Bachelor of computer application b.c.a.-2014Bachelor of computer application b.c.a.-2014
Bachelor of computer application b.c.a.-2014Suneel Dogra
 
Cloud computing application
Cloud computing applicationCloud computing application
Cloud computing application
Suneel Dogra
 
Fast track to linux
Fast track to linuxFast track to linux
Fast track to linux
Suneel Dogra
 
A sorted linear array
A sorted linear array A sorted linear array
A sorted linear array
Suneel Dogra
 
String in c
String in cString in c
String in c
Suneel Dogra
 

More from Suneel Dogra (20)

Business model
Business modelBusiness model
Business model
 
Internet
InternetInternet
Internet
 
Html
HtmlHtml
Html
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Advanced html
Advanced htmlAdvanced html
Advanced html
 
Sql
SqlSql
Sql
 
File organisation
File organisationFile organisation
File organisation
 
Distributed databases
Distributed databasesDistributed databases
Distributed databases
 
Database models
Database models Database models
Database models
 
Data base management system
Data base management systemData base management system
Data base management system
 
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1
 
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1
 
Internet security
Internet securityInternet security
Internet security
 
What is the linux
What is the linuxWhat is the linux
What is the linux
 
He 12 different types of servers that every techie should know about
He 12 different types of servers that every techie should know aboutHe 12 different types of servers that every techie should know about
He 12 different types of servers that every techie should know about
 
Bachelor of computer application b.c.a.-2014
Bachelor of computer application b.c.a.-2014Bachelor of computer application b.c.a.-2014
Bachelor of computer application b.c.a.-2014
 
Cloud computing application
Cloud computing applicationCloud computing application
Cloud computing application
 
Fast track to linux
Fast track to linuxFast track to linux
Fast track to linux
 
A sorted linear array
A sorted linear array A sorted linear array
A sorted linear array
 
String in c
String in cString in c
String in c
 

Machine language to artificial intelligence

  • 1. COMPUTER PROGRAMMING: FROM MACHINE LANGUAGE TO ARTIFICIAL INTELLIGENCE Takeaway: As computing power has increased, programming languages have evolved to take advantage of enhanced computing resources. Programming languages were used even before computers were invented. For example, a player piano scroll, that long roll of encoded paper tape, is considered an early form of programming because it contained the instructions needed to make a piano play a tune. The first computers were programmed by flipping switches and changing the configuration of the hardware. As a result, early programmers had to be intimately familiar with computer hardware. But we’ve come a long way, and high-level programming languages require little or no knowledge of the underlying hardware. THE FIRST GENERATION - PROGRAMMING AT THE MACHINE LEVEL First-generation programming languages (1GL) are often known as machine languages or machine code. They operate at the lowest level of abstraction (closest to the hardware) of all languages. First-generation languages deal directly with the binary zeros and ones that are used to store and process information in a computer. Programs in higher-level languages must be compiled or assembled into machine code in order to run. First-generation languages were used to program first- generation computers such as UNIVAC I and the IBM 701. THE SECOND GENERATION - SOME ASSEMBLY REQUIRED Second-generation languages (2GL), often known as assembly languages, were developed largely because of the difficulty in programming with first-generation languages. Although still low-level languages, assembly languages introduced the use of symbolic codes (called mnemonics) to represent instructions to the computer. A program in assembly language is translated into machine code by means of a utility known as an assembler. Since they operate at the lowest level of abstraction, second-generation languages offer the benefits of speed and minimum code size. They also enable a programmer to directly manipulate hardware components such as memory locations and registers. At one time, assembly languages were used to program operating systems and applications that required smaller, faster-running code, such as video games. Examples of games written in assembly language include console games for the Mega Drive/Genesis platform and the Super Nintendo Entertainment System platform. Although largely supplanted by higher-level languages, assembly languages are still used in situations where hardware interaction is required or performance must be optimized. Some compilers for higher-level languages compile source code to an assembly language before invoking an assembler to compile to machine code. THE THIRD GENERATION - GENTLEMAN’S C AND OTHERS The third generation of programming languages (3GL) includes high-level languages such as C, C+ +, Fortran, COBOL, BASIC, C# and Java. Third-generation programming languages represent a major improvement in usability over assembly languages. Unlike assembly languages, third-generation languages are not machine-specific. When programming with a third-generation language, a programmer writes the source code for the program and then uses a compiler to translate it into object code (or machine code), which can be understood by the targeted computer. The development of programming paradigms such as structured programming and object-oriented programming (OOP) coincided with the development of third-generation languages.
  • 2. THE FOURTH GENERATION - PROGRAMMER ENHANCEMENT Fourth-generation programming languages (4GL) were created to enhance programmer productivity in specific domains such as database querying and report generation. The syntax of a fourth-generation language is generally closer to human language than the syntax from previous generations of programming languages. A single statement in a fourth-generation language can automatically generate the equivalent of a series of instructions in a third-generation language, reducing the time it takes to develop an application. Examples of fourth-generation languages include Structured Query Language (SQL), Informix-4GL and ColdFusion. THE FIFTH GENERATION - WATSON, I PRESUME Fifth-generation languages (5GL) are often used in the realm of artificial intelligence. The traditional unit of computation is the algorithm, which is basically a step-by-step procedure for calculating a solution. Fifth-generation languages attempt to go beyond the algorithm by defining the conditions (or properties) for a solution and allowing the computer to determine the possible solutions that meet the specified conditions. An example of a fifth-generation language is Prolog, which was one of the languages used to program IBM’s Watson in preparation for its participation on the television quiz show "Jeopardy!". WHY SHOULD I CARE? There you have it, the generations of programming languages really aren't that hard to understand. A good mental model is the higher up you get, the further abstracted you are from the hardware. This means less control, but also less work to accomplish something through programming. Why does this matter? While theoretical, it's key to understand where your development fits in. Many developers spend the majority of their day in an integrated development environment for a a 3GL language, so understanding that a language is 2GL or 4GL gives you some perspective as to the level of detail required to produce usable code. In general, working with a 2GL language is going to be more complex than a 3GL language. On the other hand, you can accomplish much less with a 4GL language like SQL than with a 3GL like C.