際際滷

際際滷Share 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 weve 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 - GENTLEMANS 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 IBMs 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 (20)

Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigms
John Paul Hallasgo
Programming language
Programming languageProgramming language
Programming language
Ayesha 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
Basic Meaning of Computer languages
Amity University | FMS - DU | IMT | Stratford University | KKMI International Institute | AIMA | DTU
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
Ashwini 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 programmer
Busayo Oyebisi
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
salmankhan570
Programming Languages
Programming LanguagesProgramming Languages
Programming Languages
Amity University | FMS - DU | IMT | Stratford University | KKMI International Institute | AIMA | DTU
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
History of programming
History of programmingHistory of programming
History of programming
Sharwin Calimlim
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 iv
Eyelean 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
Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigms
John Paul Hallasgo
Programming language
Programming languageProgramming language
Programming language
Ayesha Waheed
Programming language
Programming languageProgramming language
Programming language
Shuja Qais
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
Ashwini 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 programmer
Busayo Oyebisi
Basic programming concepts
Basic programming conceptsBasic programming concepts
Basic programming concepts
salmankhan570
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
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
Concept of computer programming iv
Concept of computer programming ivConcept of computer programming iv
Concept of computer programming iv
Eyelean 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

Similar to Machine language to artificial intelligence (20)

Software Engineering : Computer basics - Introduction to computer
Software Engineering : Computer basics - Introduction to computerSoftware Engineering : Computer basics - Introduction to computer
Software Engineering : Computer basics - Introduction to computer
PrabaKaran656400
Computer languages 11
Computer languages 11Computer languages 11
Computer languages 11
Muhammad Ramzan
Notacd071
Notacd071Notacd071
Notacd071
cikgushaharizan
Notacd07
Notacd07Notacd07
Notacd07
Azmiah Mahmud
Nota programming
Nota programmingNota programming
Nota programming
Azmiah Mahmud
Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languages
kitturashmikittu
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-programming
Azmiah Mahmud
Ict topic 5
Ict topic 5Ict topic 5
Ict topic 5
kwongliik
Programming languages
Programming languagesProgramming languages
Programming languages
vito_carleone
Ayushi
AyushiAyushi
Ayushi
Ayushi Chaturvedi
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 Programming2
Cma 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
GENERATIONS_OF_PROGRAMMING_LANGUAGES.docx
GENERATIONS_OF_PROGRAMMING_LANGUAGES.docxGENERATIONS_OF_PROGRAMMING_LANGUAGES.docx
GENERATIONS_OF_PROGRAMMING_LANGUAGES.docx
PastiADDini
Fundamentals of Programming language.docx
Fundamentals of Programming language.docxFundamentals of Programming language.docx
Fundamentals of Programming language.docx
bijayakumarsahoo22
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_saturday
Syed Naqvi
Software Engineering : Computer basics - Introduction to computer
Software Engineering : Computer basics - Introduction to computerSoftware Engineering : Computer basics - Introduction to computer
Software Engineering : Computer basics - Introduction to computer
PrabaKaran656400
Computer languages 11
Computer languages 11Computer languages 11
Computer languages 11
Muhammad Ramzan
Generation of computer languages
Generation of computer languagesGeneration of computer languages
Generation of computer languages
kitturashmikittu
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-programming
Azmiah Mahmud
Ict topic 5
Ict topic 5Ict topic 5
Ict topic 5
kwongliik
Programming languages
Programming languagesProgramming languages
Programming languages
vito_carleone
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 Programming2
Cma 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
GENERATIONS_OF_PROGRAMMING_LANGUAGES.docx
GENERATIONS_OF_PROGRAMMING_LANGUAGES.docxGENERATIONS_OF_PROGRAMMING_LANGUAGES.docx
GENERATIONS_OF_PROGRAMMING_LANGUAGES.docx
PastiADDini
Fundamentals of Programming language.docx
Fundamentals of Programming language.docxFundamentals of Programming language.docx
Fundamentals of Programming language.docx
bijayakumarsahoo22
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_saturday
Syed Naqvi

More from Suneel Dogra (20)

Business model
Business modelBusiness model
Business model
Suneel Dogra
Internet
InternetInternet
Internet
Suneel Dogra
Html
HtmlHtml
Html
Suneel Dogra
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
Suneel Dogra
Advanced html
Advanced htmlAdvanced html
Advanced html
Suneel Dogra
File organisation
File organisationFile organisation
File organisation
Suneel Dogra
Distributed databases
Distributed databasesDistributed databases
Distributed databases
Suneel Dogra
Database models
Database models Database models
Database models
Suneel Dogra
Data base management system
Data base management systemData base management system
Data base management system
Suneel Dogra
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1
Suneel Dogra
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1
Suneel Dogra
Internet security
Internet securityInternet security
Internet security
Suneel Dogra
What is the linux
What is the linuxWhat is the linux
What is the linux
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 about
Suneel 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.-2014
Suneel 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
File organisation
File organisationFile organisation
File organisation
Suneel Dogra
Distributed databases
Distributed databasesDistributed databases
Distributed databases
Suneel Dogra
Database models
Database models Database models
Database models
Suneel Dogra
Data base management system
Data base management systemData base management system
Data base management system
Suneel Dogra
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1
Suneel Dogra
Web sitedesignpart1
Web sitedesignpart1Web sitedesignpart1
Web sitedesignpart1
Suneel Dogra
Internet security
Internet securityInternet security
Internet security
Suneel Dogra
What is the linux
What is the linuxWhat is the linux
What is the linux
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 about
Suneel 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.-2014
Suneel 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

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 weve 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 - GENTLEMANS 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 IBMs 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.