SlideShare a Scribd company logo
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
BIRTH OF PROGRAMMING
LANGUAGES
Plankalkül (1941)
• Plankalkül is a computer language developed
for engineering purposes by Konrad Zuse, a
German Civil Engineer and inventor.
• It was invented as the programming language
for the Z3, the first programmable
electromechanical computing machine, which
Zuse built on his own in 1941. Konrad Zuse
• It was the first high-level non-von Neumann programming
language to be designed for a computer and was designed between
1943 and 1945.
• It was not known for a long time owing to a combination of factors
such as conditions in wartime and postwar Nazi Germany.
Short Code (1949)
• Short Code was the first higher-level language ever developed and used
for a computer.
• Short Code was designed in 1949 by John Mauchly, co-inventor of
UNIVAC I, the first commercial computer produced in the United States.
John Mauchly
UNIVAC
Short Code (1949)
• Unlike machine code, Short Code statements represented mathematical
expressions rather than a machine instruction.
• While Short Code represented expressions, the representation itself was
not direct and required a conversion process then called automatic
programming.
• Along with basic arithmetic, Short Code allowed for branching and calls to a
library of functions.
• The language was interpreted and ran about 50 times slower than machine
code.
A-0 (1951)
• The A-0 system, written by Grace Hopper in 1951 and 1952 for the
UNIVAC I, was the first compiler system ever developed for a computer.
Grace Hopper and UNIVAC
Grace Hopper
A-0 (1951)
• A-0 functioned more as a loader/linker than the modern notion of a
compiler.
• A program was specified as a sequence of subroutines and arguments.
The subroutines were identified by a numeric code and the arguments to
the subroutines were written directly after each subroutine code.
• The A-0 system converted the specification into machine code that could
be fed into the computer in a second pass to execute the program.
A-0 (1951)
• A similar systems was invented independently
by David Wheeler and Maurice Wilkes for the
EDSAC computer in 1951.
Maurice Wilkes and EDSAC
EVOLUTION OF PROGRAMMING
LANGUAGES
FORTRAN
Fortran
• IBM Mathematical Formula Translating System, later
popularly know as Fortran.
• Originally developed by a team lead by John Backus at
IBM in the 1950s for scientific and engineering
applications on the IBM704, introduced in 1954.
• General-purpose, procedural, imperative
programming language that is especially suited to
numeric computation and scientific computing.
John Backus
• Originally designed to improve on the economics of
programming, as programming using low level languages had
become to be more costly than the time it actually saved.
Fortran
• The solution was to design a higher level programming language enabling
scientists to write programs using a mathematical notation/language.
• Great emphasis was put on the efficiency of the translated machine code,
which is still the case today, explaining why Fortran programs are still
considered as a benchmark for execution speed.
• Emphasis was put on number computations. Only much later was it
possible to have Fortran programs manipulate characters or strings.
Fortran
• Features introduced by earlier versions of Fortran:
• Comments
• Assignment statement using complex expressions
• Control structures (conditional, loop)
• Subroutines and functions used similarly to the mathematical notion of
function
• Formatting of input/output
• Machine independent code
• Procedural programming
• Arrays
• Early development of compilers
• Showed the importance/possibility/relevance of higher-level programming
languages
• Compiler development tools/techniques
• Optimizing compiler
Fortran
• Reasons explaining Fortran’s early success:
– Made efficient use of programmer’s time
– Easy to learn and use by scientists
– Was fully supported by IBM for many years
– At the time, most applications and users were scientific
– Simplified many tedious tasks such as input/output formatting
– Compiler was generating very well optimized code
• Fortran is still one of the most popular languages in the area of high-
performance computing and is the language used for programs that
benchmark and rank the world's fastest supercomputers.
COBOL
Cobol
• A specification of COBOL
was initially created during
the second half of 1959 by
Grace Hopper.
• The specifications were to a
great extent inspired by the
Grace Hopper’s FLOW-
MATIC and IBM’s
COMTRAN languages.
Left to right: Ron Hamm, John L. Jones, Dr. Jan Prokop, Oliver Smoot,
Tom Rice, Donald Nelson, Commodore Grace M. Hopper,
Michael O'Connell and Howard Bromberg. © Computer History Museum
• Acronym for COmmon Business-Oriented Language
• Primary domain in business, finance, and administrative systems.
Cobol
• Initial meeting for the creation of COBOL (then named CBL) was held at
the Pentagon in May 1959.
• The meeting agreed to the following requirements:
– Use of English (as business is in English)
– Ease of use (even at expense of performance)
– Both these requirements aimed at its use by business people
• Emphasis was put on immediate action, as many other such
languages/systems were attempted at the time.
• By December 1959, a first version was defined, which was refined in 1961
and 1962.
• A standard version was defined in 1968. Further standardized evolutions
were defined in 1974, 1985 and 2002.
Cobol
• First programming language advocated by the United States Department of
Defense, which contributed to its success.
• The development of Cobol paralleled that of Fortran.
• It is a data processing language, making it different from Fortran and Algol.
• Puts explicit emphasis on the description of the manipulated data at two
levels:
• Machine-dependent description (environment division) providing a
connection between the Cobol program and the data files as stored on a
specific media.
• Machine-independent logical description of data as manipulated by
procedures.
Cobol
• Positive:
• Macros
• Hierarchical data structures
• Descriptive variable names
• Elaborated Input/Output formatting
• Built-in searching/sorting procedures
• Backed-up by Department of Defense
• Negative:
• Poor performance of early compilers
• Restricted to business data applications
ALGOL
Algol
• ALGOL (ALGOrithmic Language) is a family of imperative computer
programming languages originally developed in the mid 1950s that greatly
influenced many other programming languages.
Some of the original designers or Algol.
Top row: John McCarthy, Fritz Bauer, Joe Wegstein.
Bottom row: John Backus, Peter Naur, Alan Perlis.
• Introduced by a joint committee
of American (ACM) and
European (GAMM) experts .
• GAMM: Gesellschaft für
Angewandte Mathematik und
Mechanik ("Society of Applied
Mathematics and Mechanics")
• ACM: Association for Computing
Machinery
Algol
• According to John Backus, the original goals of the original meeting in ETH
Zurich were:
– To provide a means of communicating numerical methods and other
procedures between people
– To provide a means of realizing a stated process on a variety of machines.
• Original objectives of Algol:
– Machine independence
– As close as possible to mathematical notation
– Usable for the description of algorithms in publications
– Easily translatable to machine instructions
– Avoid some of the perceived problems with FORTRAN
– Language simplicity
PL/I
PL/I
• With Fortran and Cobol, there were two distinct “kinds” of programmers.
Fortran emphasized floating point arithmetic, arrays, procedures, fast
computation. Cobol emphasized decimal arithmetic, fast asynchronous
input/output, string handling, efficient search/sort routines.
• More and more, there came a need for all these features to be
incorporated in a single language.
IBM 360
• When IBM designed the famous
IBM360 computer, it saw the
opportunity to design a new general-
purpose language designed specifically
for it.
• This language was named PL/I
(Programming Language 1). It was
originally developed in 1964-1966.
PL/I
• Goals of PL/I:
– Provide features of Fortran, augmented with the capacities of Cobol.
– Clarity of language.
– Incorporating current programming languages innovations.
– Performance of compiled code competitive with that of Fortran.
– Extensibility to new hardware and other application areas.
– Improve programming productivity - transferring effort from programmer to
compiler.
– Machine and operating system independence.
PL/I
• This created a language with very numerous features and requirements,
including many innovative ones:
– Reference data types
– User-defined data types
– Concurrency
– Dynamic arrays
– Auto-correcting compiler
– String handling
– Machine independence
– Efficiency
– Exception handling
– I/O control system
– Report-generation
– Recursion
PASCAL
Pascal
• Pascal is a very influential imperative and procedural
programming language, designed in 1968-1969 and
published in 1970 by Niklaus Wirth.
• Small and efficient language intended to encourage
good programming practices using structured
programming and data structuring.
Nicklaus Wirth
• Pascal is based on the ALGOL-60 programming language and named
in honor of the French mathematician and philosopher Blaise Pascal.
Pascal
• Pascal, in its original form, is a purely procedural language and includes
the traditional array of ALGOL-60 control structures.
• Pascal also has many data structuring facilities and other abstractions
which were not included in the original ALGOL 60, such as:
– user-defined type definitions
– records
– case statement
– pointers
– enumerations
– sets
• Such constructs were inspired from Simula 67, ALGOL 68, and Wirth and
Hoare’s ALGOL W.
SIMULA
Simula
• Simula 67 introduced objects, classes, subclasses, virtual methods,
coroutines, discrete event simulation, and featured garbage collection.
• Simula is considered the first object-oriented programming language.
Ole-Johan Dahl and Kristen Nygaard
• Simula was developed in the 1960s
at the Norwegian Computing Center
in Oslo, by Ole-Johan Dahl and
Kristen Nygaard.
• Syntactically, it is a superset of Algol
60.
Simula
• As its name implies, Simula was designed for doing simulation.
• Simulation systems are modelled by a series of state changes that occur in
parallel through the interaction of the elements of the system as they
compete for restricted system resources.
• Each type of element of the system is composed of its internal state, as
well as a set of procedures that define its own behaviour.
• Elements interact with one another as a system by calling some of the
other elements’ procedures.
• This is the baseline of what we now call object-oriented programming.
Simula
• Simula was based on Algol 60 with the addition of the concept of class.
• Simula allowed to declare classes of objects, create instances of these
classes, name the instances, and even form a hierarchical structure of
class declarations.
• Simula was designed solely as a language to be used for simulations.
However, in retrospect, its concept can clearly be used as a general-
purpose language.
• The impact of Simula on subsequent languages is great but little
recognized, as most people think that object-oriented programming is a
relatively new concept.
C
C
• C is a general-purpose programming language
developed between 1969 and 1973 by Dennis
Ritchie at the Bell Telephone Laboratories for use
with the Unix operating system.
• Although C was designed for implementing system
software, it is also widely used for developing
portable application software.
Dennis Ritchie
• C has become one of the most popular programming languages. It is
widely used on many different software platforms, and there are few
computer architectures for which a C compiler does not exist. C has
greatly influenced many other programming languages, most notably
C++, which originally began as an extension to C.
C
• C was influenced by the languages BCPL and B (systems languages), who
were influenced by Algol and Fortran.
• C was originally designed in 1969-1972 with the
following goals in mind:
• to be compiled using a relatively straightforward compiler
• to provide low-level access to memory
• to provide language constructs that map efficiently to
machine instructions
• to require minimal run-time support
• In 1977-1979, portability emerged when portability
of the Unix operating system was being
demonstrated.
• In 1978, the famous book The C Programming Language was
published, written by Brian Kernigan and Dennis Ritchie.
C++
C++
• C++ is a statically typed, multi-paradigm, compiled,
general-purpose programming language.
• It is a middle-level language, as it comprises a
combination of both high-level and low-level
language features.
• It was developed by Bjarne Stroustrup starting in
1979 at Bell Laboratories as an enhancement to the
C programming language following the object-
oriented principles pioneered by Simula.
• Goals:
• Augment C with the notion of classes and
inheritance
• Keep the same performance as C
• Keep same applicability as C
Bjarne Strousroup
C++
• Bjarne Stroustrup describes some rules that he used for the design of C++:
– Statically typed, general-purpose language, as efficient and portable as C
– Direct and comprehensive support for multiple programming styles (procedural
programming, data abstraction, object-oriented programming, and generic
programming)
– Give the programmer choice, even if this makes it possible for the programmer to
choose incorrectly
– As compatible with C as possible, providing a smooth transition from C
– Avoid features that are platform specific or not general purpose
– Not incur overhead for features that are not used
– Function without a sophisticated programming environment
JAVA
Java
• Java is a programming language originally
developed by James Gosling at Sun
Microsystems and released in 1995 as a
core component of Sun Microsystems'
Java platform.
James Gosling
• Java is a general-purpose, concurrent, class-based, and object-
oriented, and is specifically designed to have as few
implementation dependencies as possible.
• It is intended to let application developers "write once, run
anywhere“, meaning that once it has been compiled, it can be
executed on any platform.
Java
• It was originally designed as a language to be used for embedded
electronic devices, with the following goals:
– Simplicity
– Reliability
– Object-orientation
• The main languages available for that purpose were C and C++.
• It was found that these were not suitable given the stated requirements.
• Java was thus defined as a simpler and safer version of C++.
Java
• Java thus derives much of its syntax from C++ but has a simpler object
model and fewer low-level facilities:
– No free functions
– No multiple inheritance
– No pointers
– No explicit memory management
– Array boundary checking
– No structs and unions
• Some additions enhance Java’s scope of application:
– Extreme portability
– Concurrency using threads
– Graphical user interface libraries
– Database adapters
– Networking, distributed computing

More Related Content

PDF
2. Evolution of the Major Programming Languages.pdf
PPT
Evalution about programming language part 2
PPTX
Chapter 2 : Theory of programming languages
PPT
Computer history krishna
PDF
2 evolution of the major programming languages
PPT
PPL unit 1 syntax and semantics- evolution of programming language lexical an...
PPT
2 evolution of the major
PPT
History of computer language
2. Evolution of the Major Programming Languages.pdf
Evalution about programming language part 2
Chapter 2 : Theory of programming languages
Computer history krishna
2 evolution of the major programming languages
PPL unit 1 syntax and semantics- evolution of programming language lexical an...
2 evolution of the major
History of computer language

Similar to PYTHON FUNDAMENTALS OF COMP.pptx (20)

PDF
Assignment on basic programming language
PPT
pl10ch2.ppt
PDF
A History of Computer Programming Languages.pdf
PDF
Evolution of Programming Languages.pdf
PDF
Evolution of Programming Languages.pdf
PPTX
Imperative Programing engineering ppt.pptx
PPT
Grade 10 introduction and history of programming
PDF
GeekNight: Evolution of Programming Languages
PDF
Geek Night 16.0 - Evolution of Programming Languages
PPT
COMP6411.1.history.ppt
PPT
01 intro
PPTX
History of Computer Programming Languages.pptx
PPTX
Introduction to programming
PDF
Algol60
DOCX
Unit ii oo design 9
PDF
Software Engineering
DOCX
#Ems the second year
PPTX
Why-Kotlin definition to understand the use of kotin
PPTX
Presentation2
Assignment on basic programming language
pl10ch2.ppt
A History of Computer Programming Languages.pdf
Evolution of Programming Languages.pdf
Evolution of Programming Languages.pdf
Imperative Programing engineering ppt.pptx
Grade 10 introduction and history of programming
GeekNight: Evolution of Programming Languages
Geek Night 16.0 - Evolution of Programming Languages
COMP6411.1.history.ppt
01 intro
History of Computer Programming Languages.pptx
Introduction to programming
Algol60
Unit ii oo design 9
Software Engineering
#Ems the second year
Why-Kotlin definition to understand the use of kotin
Presentation2

Recently uploaded (20)

PDF
composite construction of structures.pdf
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
PDF
Digital Logic Computer Design lecture notes
PPTX
Construction Project Organization Group 2.pptx
PPTX
additive manufacturing of ss316l using mig welding
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
composite construction of structures.pdf
Operating System & Kernel Study Guide-1 - converted.pdf
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Lesson 3_Tessellation.pptx finite Mathematics
Lecture Notes Electrical Wiring System Components
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Model Code of Practice - Construction Work - 21102022 .pdf
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
Digital Logic Computer Design lecture notes
Construction Project Organization Group 2.pptx
additive manufacturing of ss316l using mig welding
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Foundation to blockchain - A guide to Blockchain Tech
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Embodied AI: Ushering in the Next Era of Intelligent Systems

PYTHON FUNDAMENTALS OF COMP.pptx

  • 31. Plankalkül (1941) • Plankalkül is a computer language developed for engineering purposes by Konrad Zuse, a German Civil Engineer and inventor. • It was invented as the programming language for the Z3, the first programmable electromechanical computing machine, which Zuse built on his own in 1941. Konrad Zuse • It was the first high-level non-von Neumann programming language to be designed for a computer and was designed between 1943 and 1945. • It was not known for a long time owing to a combination of factors such as conditions in wartime and postwar Nazi Germany.
  • 32. Short Code (1949) • Short Code was the first higher-level language ever developed and used for a computer. • Short Code was designed in 1949 by John Mauchly, co-inventor of UNIVAC I, the first commercial computer produced in the United States. John Mauchly UNIVAC
  • 33. Short Code (1949) • Unlike machine code, Short Code statements represented mathematical expressions rather than a machine instruction. • While Short Code represented expressions, the representation itself was not direct and required a conversion process then called automatic programming. • Along with basic arithmetic, Short Code allowed for branching and calls to a library of functions. • The language was interpreted and ran about 50 times slower than machine code.
  • 34. A-0 (1951) • The A-0 system, written by Grace Hopper in 1951 and 1952 for the UNIVAC I, was the first compiler system ever developed for a computer. Grace Hopper and UNIVAC Grace Hopper
  • 35. A-0 (1951) • A-0 functioned more as a loader/linker than the modern notion of a compiler. • A program was specified as a sequence of subroutines and arguments. The subroutines were identified by a numeric code and the arguments to the subroutines were written directly after each subroutine code. • The A-0 system converted the specification into machine code that could be fed into the computer in a second pass to execute the program.
  • 36. A-0 (1951) • A similar systems was invented independently by David Wheeler and Maurice Wilkes for the EDSAC computer in 1951. Maurice Wilkes and EDSAC
  • 39. Fortran • IBM Mathematical Formula Translating System, later popularly know as Fortran. • Originally developed by a team lead by John Backus at IBM in the 1950s for scientific and engineering applications on the IBM704, introduced in 1954. • General-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing. John Backus • Originally designed to improve on the economics of programming, as programming using low level languages had become to be more costly than the time it actually saved.
  • 40. Fortran • The solution was to design a higher level programming language enabling scientists to write programs using a mathematical notation/language. • Great emphasis was put on the efficiency of the translated machine code, which is still the case today, explaining why Fortran programs are still considered as a benchmark for execution speed. • Emphasis was put on number computations. Only much later was it possible to have Fortran programs manipulate characters or strings.
  • 41. Fortran • Features introduced by earlier versions of Fortran: • Comments • Assignment statement using complex expressions • Control structures (conditional, loop) • Subroutines and functions used similarly to the mathematical notion of function • Formatting of input/output • Machine independent code • Procedural programming • Arrays • Early development of compilers • Showed the importance/possibility/relevance of higher-level programming languages • Compiler development tools/techniques • Optimizing compiler
  • 42. Fortran • Reasons explaining Fortran’s early success: – Made efficient use of programmer’s time – Easy to learn and use by scientists – Was fully supported by IBM for many years – At the time, most applications and users were scientific – Simplified many tedious tasks such as input/output formatting – Compiler was generating very well optimized code • Fortran is still one of the most popular languages in the area of high- performance computing and is the language used for programs that benchmark and rank the world's fastest supercomputers.
  • 43. COBOL
  • 44. Cobol • A specification of COBOL was initially created during the second half of 1959 by Grace Hopper. • The specifications were to a great extent inspired by the Grace Hopper’s FLOW- MATIC and IBM’s COMTRAN languages. Left to right: Ron Hamm, John L. Jones, Dr. Jan Prokop, Oliver Smoot, Tom Rice, Donald Nelson, Commodore Grace M. Hopper, Michael O'Connell and Howard Bromberg. © Computer History Museum • Acronym for COmmon Business-Oriented Language • Primary domain in business, finance, and administrative systems.
  • 45. Cobol • Initial meeting for the creation of COBOL (then named CBL) was held at the Pentagon in May 1959. • The meeting agreed to the following requirements: – Use of English (as business is in English) – Ease of use (even at expense of performance) – Both these requirements aimed at its use by business people • Emphasis was put on immediate action, as many other such languages/systems were attempted at the time. • By December 1959, a first version was defined, which was refined in 1961 and 1962. • A standard version was defined in 1968. Further standardized evolutions were defined in 1974, 1985 and 2002.
  • 46. Cobol • First programming language advocated by the United States Department of Defense, which contributed to its success. • The development of Cobol paralleled that of Fortran. • It is a data processing language, making it different from Fortran and Algol. • Puts explicit emphasis on the description of the manipulated data at two levels: • Machine-dependent description (environment division) providing a connection between the Cobol program and the data files as stored on a specific media. • Machine-independent logical description of data as manipulated by procedures.
  • 47. Cobol • Positive: • Macros • Hierarchical data structures • Descriptive variable names • Elaborated Input/Output formatting • Built-in searching/sorting procedures • Backed-up by Department of Defense • Negative: • Poor performance of early compilers • Restricted to business data applications
  • 48. ALGOL
  • 49. Algol • ALGOL (ALGOrithmic Language) is a family of imperative computer programming languages originally developed in the mid 1950s that greatly influenced many other programming languages. Some of the original designers or Algol. Top row: John McCarthy, Fritz Bauer, Joe Wegstein. Bottom row: John Backus, Peter Naur, Alan Perlis. • Introduced by a joint committee of American (ACM) and European (GAMM) experts . • GAMM: Gesellschaft für Angewandte Mathematik und Mechanik ("Society of Applied Mathematics and Mechanics") • ACM: Association for Computing Machinery
  • 50. Algol • According to John Backus, the original goals of the original meeting in ETH Zurich were: – To provide a means of communicating numerical methods and other procedures between people – To provide a means of realizing a stated process on a variety of machines. • Original objectives of Algol: – Machine independence – As close as possible to mathematical notation – Usable for the description of algorithms in publications – Easily translatable to machine instructions – Avoid some of the perceived problems with FORTRAN – Language simplicity
  • 51. PL/I
  • 52. PL/I • With Fortran and Cobol, there were two distinct “kinds” of programmers. Fortran emphasized floating point arithmetic, arrays, procedures, fast computation. Cobol emphasized decimal arithmetic, fast asynchronous input/output, string handling, efficient search/sort routines. • More and more, there came a need for all these features to be incorporated in a single language. IBM 360 • When IBM designed the famous IBM360 computer, it saw the opportunity to design a new general- purpose language designed specifically for it. • This language was named PL/I (Programming Language 1). It was originally developed in 1964-1966.
  • 53. PL/I • Goals of PL/I: – Provide features of Fortran, augmented with the capacities of Cobol. – Clarity of language. – Incorporating current programming languages innovations. – Performance of compiled code competitive with that of Fortran. – Extensibility to new hardware and other application areas. – Improve programming productivity - transferring effort from programmer to compiler. – Machine and operating system independence.
  • 54. PL/I • This created a language with very numerous features and requirements, including many innovative ones: – Reference data types – User-defined data types – Concurrency – Dynamic arrays – Auto-correcting compiler – String handling – Machine independence – Efficiency – Exception handling – I/O control system – Report-generation – Recursion
  • 56. Pascal • Pascal is a very influential imperative and procedural programming language, designed in 1968-1969 and published in 1970 by Niklaus Wirth. • Small and efficient language intended to encourage good programming practices using structured programming and data structuring. Nicklaus Wirth • Pascal is based on the ALGOL-60 programming language and named in honor of the French mathematician and philosopher Blaise Pascal.
  • 57. Pascal • Pascal, in its original form, is a purely procedural language and includes the traditional array of ALGOL-60 control structures. • Pascal also has many data structuring facilities and other abstractions which were not included in the original ALGOL 60, such as: – user-defined type definitions – records – case statement – pointers – enumerations – sets • Such constructs were inspired from Simula 67, ALGOL 68, and Wirth and Hoare’s ALGOL W.
  • 59. Simula • Simula 67 introduced objects, classes, subclasses, virtual methods, coroutines, discrete event simulation, and featured garbage collection. • Simula is considered the first object-oriented programming language. Ole-Johan Dahl and Kristen Nygaard • Simula was developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. • Syntactically, it is a superset of Algol 60.
  • 60. Simula • As its name implies, Simula was designed for doing simulation. • Simulation systems are modelled by a series of state changes that occur in parallel through the interaction of the elements of the system as they compete for restricted system resources. • Each type of element of the system is composed of its internal state, as well as a set of procedures that define its own behaviour. • Elements interact with one another as a system by calling some of the other elements’ procedures. • This is the baseline of what we now call object-oriented programming.
  • 61. Simula • Simula was based on Algol 60 with the addition of the concept of class. • Simula allowed to declare classes of objects, create instances of these classes, name the instances, and even form a hierarchical structure of class declarations. • Simula was designed solely as a language to be used for simulations. However, in retrospect, its concept can clearly be used as a general- purpose language. • The impact of Simula on subsequent languages is great but little recognized, as most people think that object-oriented programming is a relatively new concept.
  • 62. C
  • 63. C • C is a general-purpose programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. • Although C was designed for implementing system software, it is also widely used for developing portable application software. Dennis Ritchie • C has become one of the most popular programming languages. It is widely used on many different software platforms, and there are few computer architectures for which a C compiler does not exist. C has greatly influenced many other programming languages, most notably C++, which originally began as an extension to C.
  • 64. C • C was influenced by the languages BCPL and B (systems languages), who were influenced by Algol and Fortran. • C was originally designed in 1969-1972 with the following goals in mind: • to be compiled using a relatively straightforward compiler • to provide low-level access to memory • to provide language constructs that map efficiently to machine instructions • to require minimal run-time support • In 1977-1979, portability emerged when portability of the Unix operating system was being demonstrated. • In 1978, the famous book The C Programming Language was published, written by Brian Kernigan and Dennis Ritchie.
  • 65. C++
  • 66. C++ • C++ is a statically typed, multi-paradigm, compiled, general-purpose programming language. • It is a middle-level language, as it comprises a combination of both high-level and low-level language features. • It was developed by Bjarne Stroustrup starting in 1979 at Bell Laboratories as an enhancement to the C programming language following the object- oriented principles pioneered by Simula. • Goals: • Augment C with the notion of classes and inheritance • Keep the same performance as C • Keep same applicability as C Bjarne Strousroup
  • 67. C++ • Bjarne Stroustrup describes some rules that he used for the design of C++: – Statically typed, general-purpose language, as efficient and portable as C – Direct and comprehensive support for multiple programming styles (procedural programming, data abstraction, object-oriented programming, and generic programming) – Give the programmer choice, even if this makes it possible for the programmer to choose incorrectly – As compatible with C as possible, providing a smooth transition from C – Avoid features that are platform specific or not general purpose – Not incur overhead for features that are not used – Function without a sophisticated programming environment
  • 68. JAVA
  • 69. Java • Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. James Gosling • Java is a general-purpose, concurrent, class-based, and object- oriented, and is specifically designed to have as few implementation dependencies as possible. • It is intended to let application developers "write once, run anywhere“, meaning that once it has been compiled, it can be executed on any platform.
  • 70. Java • It was originally designed as a language to be used for embedded electronic devices, with the following goals: – Simplicity – Reliability – Object-orientation • The main languages available for that purpose were C and C++. • It was found that these were not suitable given the stated requirements. • Java was thus defined as a simpler and safer version of C++.
  • 71. Java • Java thus derives much of its syntax from C++ but has a simpler object model and fewer low-level facilities: – No free functions – No multiple inheritance – No pointers – No explicit memory management – Array boundary checking – No structs and unions • Some additions enhance Java’s scope of application: – Extreme portability – Concurrency using threads – Graphical user interface libraries – Database adapters – Networking, distributed computing