SlideShare une entreprise Scribd logo
Evolution of
Programming Languages
from 1940s to 2100
History of Programmers
• Before 1940s: The first programmers
• The 1940s: Von Neumann, Konard Zuse & PlankalKul
• The 1950s: The First Programming Language
• The 1960s: An Explosion in Programming languages
• The 1970s: Simplicity, Abstraction, Study
• The 1980s: Consolidation and New Directions
• The 1990s: Internet and the Web
• The 2000s: tbd
Early History: The First Programmer
• Jacquard loom of early 1800s
– Translated card patterns into cloth designs
• Charles Babbage’s analytical engine (1830s & 40s)
Programs were cards with data and operations
• Ada Lovelace – first programmer
“The engine can arrange and combine its numerical quantities
exactly as if they were letters or any other general symbols; And in
fact might bring out its results in algebraic notation, were provision
made.”
Jacquard loom of early 1800s Charles Babbage’s analytical engine (1830s & 40s) Ada Lovelace – first programmer
The 1940s: Von Neumann and Zuse
John Von Neumann
led a team that built
computers with stored
programs and a central
processor ENIAC.
Konrad Zuse and Plankalkul
Konrad Zuse began work on Plankalkul (plan
calculus), the first algorithmic programming
language, with an aim of creating the theoretical
preconditions for the formulation of problems
of a general nature.
Seven years earlier, Zuse had developed and
built the world's first binary digital computer,
the Z1. He completed the first fully functional
program-controlled electromechanical digital
computer, the Z3, in 1941.
Only the Z4, the most sophisticated of his
creations, survived World War II.
Machine Code (1940’s)
•Initial computers were programmed in raw machine code.
•These were entirely numeric.
•What was wrong with using machine code? Everything!
•Poor readability
•Poor modifiability
•Expression coding was tedious
•Inherit deficiencies of hardware, e.g., no indexing or floating point
numbers
Pseudocodes (1949)
•Short Code or SHORTCODE - John Mauchly, 1949.
•Pseudocode interpreter for math problems, on Eckert
and Mauchly’s BINAC and later on UNIVAC I and II.
•Possibly the first attempt at a higher level language.
•Expressions were coded, left to right
More Pseudocodes
Speed coding; 1953-4
• A pseudocode interpreter for math on IBM 701, IBM 650.
• Developed by John Backus
• Pseudo ops for arithmetic and math functions
• Conditional and unconditional branching
• Auto increment registers for array access
• Slow but still dominated by slowness of s/w math
• Interpreter left only 700 words left for user program
Laning and Zierler System – 1953
• Implemented on the MIT Whirlwind computer
• First "algebraic" compiler system
• Subscripted variables, function calls, expression translation
• Never ported to any other machine
The 1950s: The First Programming
Language
• Pseudocodes: interpreters for assembly language like
• Fortran: the first higher level programming language
• COBOL: he first business oriented language
• Algol: one of the most influential programming languages ever
designed
• LISP: the first language to depart from the procedural paradigm
• APL: A Programming Language
The 1960s: An Explosion in Programming
Languages
• The development of hundreds of programming languages
• PL/I designed in 1963-4
– supposed to be all purpose
– combined features of FORTRAN, COBOL and Algol 60 and more!
– translators were slow, huge and unreliable
– some say it was ahead of its time......
• Algol 68
• SNOBOL
• Simula
• BASIC
The 1970s: Simplicity, Abstraction, Study
• Algol-W - Nicklaus Wirth and C.A.R.Hoare
– reaction against 1960s
– simplicity
• Pascal
– small, simple, efficient structures
– for teaching program
• C - 1972 - Dennis Ritchie
– aims for simplicity by reducing restrictions of the type system
– allows access to underlying system
– interface with O/S - UNIX
The 1980s: Consolidation and New
Paradigms
• Ada
– US Department of Defence
– European team lead by Jean Ichbiah. (Sam Lomonaco was also on the ADA team :-)
• Functional programming
– Scheme, ML, Haskell
• Logic programming
– Prolog
• Object-oriented programming
– Smalltalk, C++, Eiffel
Functional Programming
• Common Lisp: consolidation of LISP dialects spurred practical use,
as did the development of Lisp Machines.
• Scheme: a simple and pure LISP like language used for teaching
programming.
• Logo: Used for teaching young children how to program.
• ML: (Meta Language) a strongly-typed functional language first
developed by Robin Milner in the 70’s
• Haskell: poly morphicly typed, lazy, purely functional language.
Small talk (1972-80)
•Developed at Xerox PARC by Alan Kay and colleagues (esp. Adele
Goldberg) inspired by Simula 67
•First compilation in 1972 was written on a bet to come up with "the
most powerful language in the world" in "a single page of code".
•In 1980, Smalltalk 80, a uniformly object-oriented programming
environment became available as the first commercial release of the
Smalltalk language
•Pioneered the graphical user interface everyone now uses
•Industrial use continues to the present day
C++ (1985)
•Developed at Bell Labs by Stroustrup
•Evolved from C and SIMULA 67
•Facilities for object-oriented programming, taken partially from SIMULA
67, added to C
•Also has exception handling
•A large and complex language, in part because it supports both procedural
and OO programming
•Rapidly grew in popularity, along with OOP
•ANSI standard approved in November, 1997
Eiffel
Eiffel - a related language that supports OOP
- (Designed by Bertrand Meyer - 1992)
- Not directly derived from any other language
- Smaller and simpler than C++, but still has most of the power
1990’s: the Internet and Web
During the 90’s, Object-oriented languages (mostly C++)
became widely used in practical applications
The Internet and Web drove several phenomena:
– Adding concurrency and threads to existing languages
– Increased use of scripting languages such as Perl and Tcl/Tk
– Java as a new programming language
Java
• Developed at Sun in the early 1990s
with original goal of a language for
embedded computers
• Principals: Bill Joy, James Gosling, Mike
Sheradin, Patrick Naughton
• Original name, Oak, changed for copyright reasons
• Based on C++ but significantly simplified
• Supports only OOP
• Has references, but not pointers
• Includes support for applets and a form of concurrency (i.e. threads)
The future
• In the 60’s, the dream was a single all-purpose language
(e.g., PL/I, Algol)
• The 70s and 80s dream expressed by Winograd (1979)
“Just as high-level languages allow the programmer to escape the intricacies of
the machine, higher level programming systems can provide for manipulating
complex systems. We need to shift away from algorithms and towards the
description of the properties of the packages that we build. Programming
systems will be declarative not imperative”
• Will that dream be realised?
• Programming is not yet obsolete
Currently Trending Programming
Languages
There are several programming languages that are commonly used in the fields of AI, ML, and Cybersecurity. Here are some of the most popular ones:
1. Python: Python is one of the most popular programming languages for AI and ML development due to its simple syntax and readability. It supports a variety of
frameworks and libraries, which allows for more flexibility and creates endless possibilities for an engineer to work with. Some of the most popular Python libraries
for machine learning include: sci-kit image, OpenCV, TensorFlow, PyTorch, Keras, NumPy, NLTK, SciPy, and sci-kit learn123.
2. Java: Java is a general-purpose programming language that is used for creating mobile, desktop, web, and cloud applications. It is also used for developing AI
systems. Java is known for its scalability, security, and cross-platform compatibility2.
3. R: R is a programming language that is used for statistical computing and graphics. It is widely used in data analysis, machine learning, and scientific research. R
has a large number of libraries and packages that make it easy to perform complex statistical analyses3.
4. Julia: Julia is a high-level, high-performance programming language that is designed for numerical and scientific computing. It is used for developing AI and ML
models, as well as for data analysis and visualization3.
5. Lisp: Lisp is a family of programming languages that are used for AI and ML development. Lisp is known for its powerful macro system, which allows developers
to extend the language itself. Lisp is also used for symbolic computing, which is a type of computing that deals with symbols and expressions3.
6. JavaScript: JavaScript is a programming language that is used for creating highly interactive browser-based applications. It is also used for developing AI systems.
JavaScript is known for its flexibility and ease of use2.
7. C++: C++ is a general-purpose programming language that is used for developing AI and ML models, as well as for developing operating systems, system software,
and embedded systems. C++ is known for its speed and efficiency2.
• Here are some PowerPoint presentations that you might find useful:
1. Machine Learning in Cyber Security - This presentation provides a holistic view of machine learning in cybersecurity for better organizational readiness.
2. AI and ML in Cybersecurity - This presentation discusses the limitations of machine learning and issues of explain ability, where deep learning should never be
applied, and examples of how the blind application of algorithms can lead to wrong results.
• Please note that the information provided is current as of January 2024 and may be subject to change.
Comparing the performance of Mojo,
Python, and JavaScript
Comparing the performance of Mojo, Python, and JavaScript in the context of
machine learning.
According to a Medium article, Python and Mojo are two popular programming
languages that have been widely used in various applications, from web
development to machine learning. While both Python and Mojo share some
similarities, they also have notable differences that set them apart. As a developer or
programmer, it’s essential to understand the fundamental differences between these
languages so that you can choose the one that best suits your needs.
Another Medium article compares the performance of JavaScript and Python for
machine learning. The article states that JavaScript’s computational performance is
still much better than Python’s. However, the maturity of the libraries — which
often have underlying modules written in C — means that operations on large
datasets can offer so much more than sheer computational power. But there is still a
place for JavaScript in machine learning.
Programming Languages for Civil
Engineering
• Civil and Structural engineering are fields that require a lot of computational power. Learning to code can
help engineers automate repetitive tasks, improve their workflow, and increase their productivity. According
to The Computational Engineer, the following programming languages are commonly used in the civil and
structural engineering industry 1:
1. Grasshopper: A visual programming language that can be easily adopted by civil and structural engineers. It
is a plugin to a CAD and 3D-modelling software called Rhinoceros. It has a low bar to entry but is powerful
enough to manage most of your workflows, including your Revit workflows.
2. Dynamo: A popular visual programming language for building and civil engineers. It is a plugin for Autodesk
Revit and can be used to automate repetitive tasks and improve workflows.
3. BHoM: A data structure and toolset for building and architecture that can be used to create custom
workflows and automate tasks.
4. C#: A general-purpose programming language that is widely used in the civil engineering industry. It is used
to develop software applications and tools for civil engineering projects.
• These languages have been designed with civil engineering workflows in mind and offer a lower bar to entry
for civil and structural engineers. They are also powerful enough to manage most of your workflows,
including your Revit workflows. If you are new to coding, Grasshopper is a great first language to learn as it
has an easy-to-adopt and debug interface 1.
Never Ever Ending Life History of
Programming Languages
• 18 New Programming Languages to Learn in 2024 | Built In

Contenu connexe

Similaire à Evolution of Programming Languages.pdf

2. Evolution of the Major Programming Languages.pdf
2. Evolution of the Major Programming Languages.pdf2. Evolution of the Major Programming Languages.pdf
2. Evolution of the Major Programming Languages.pdf
HILALJAMIRUDDINABDUL
 
Plc part 1
Plc part 1Plc part 1
Plc part 1
Taymoor Nazmy
 
P1 2018 python
P1 2018 pythonP1 2018 python
P1 2018 python
Prof. Wim Van Criekinge
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
Prof. Wim Van Criekinge
 
P1 2017 python
P1 2017 pythonP1 2017 python
P1 2017 python
Prof. Wim Van Criekinge
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge
Prof. Wim Van Criekinge
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
InfinIT - Innovationsnetværket for it
 
2. pl domain
2. pl domain2. pl domain
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
Dastan Kamaran
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
Dastan Kamaran
 
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptxPYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
shalini s
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
Synapseindiappsdevelopment
 
The History of Programming.pptx
The History of Programming.pptxThe History of Programming.pptx
The History of Programming.pptx
sheillakontor
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptx
AliAbbas906043
 
Imperative programming
Imperative programmingImperative programming
Imperative programming
Edward Blurock
 
Programming language
Programming languageProgramming language
Programming language
MalayKalavadia
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to course
nikit meshram
 
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
Khurram Tehseen
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
Carmen Sanborn
 
System softare
System softareSystem softare
System softare
Dr. C.V. Suresh Babu
 

Similaire à Evolution of Programming Languages.pdf (20)

2. Evolution of the Major Programming Languages.pdf
2. Evolution of the Major Programming Languages.pdf2. Evolution of the Major Programming Languages.pdf
2. Evolution of the Major Programming Languages.pdf
 
Plc part 1
Plc part 1Plc part 1
Plc part 1
 
P1 2018 python
P1 2018 pythonP1 2018 python
P1 2018 python
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
 
P1 2017 python
P1 2017 pythonP1 2017 python
P1 2017 python
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
 
2. pl domain
2. pl domain2. pl domain
2. pl domain
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)Oop lecture1-chapter1(review of java)
Oop lecture1-chapter1(review of java)
 
PYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptxPYTHON FUNDAMENTALS OF COMP.pptx
PYTHON FUNDAMENTALS OF COMP.pptx
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
 
The History of Programming.pptx
The History of Programming.pptxThe History of Programming.pptx
The History of Programming.pptx
 
History of Computer Programming Languages.pptx
History of Computer Programming Languages.pptxHistory of Computer Programming Languages.pptx
History of Computer Programming Languages.pptx
 
Imperative programming
Imperative programmingImperative programming
Imperative programming
 
Programming language
Programming languageProgramming language
Programming language
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to course
 
Ppl 13 july2019
Ppl 13 july2019Ppl 13 july2019
Ppl 13 july2019
 
Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...Unit 4 Assignment 1 Comparative Study Of Programming...
Unit 4 Assignment 1 Comparative Study Of Programming...
 
System softare
System softareSystem softare
System softare
 

Dernier

一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
nyfuhyz
 
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens""Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
sameer shah
 
Population Growth in Bataan: The effects of population growth around rural pl...
Population Growth in Bataan: The effects of population growth around rural pl...Population Growth in Bataan: The effects of population growth around rural pl...
Population Growth in Bataan: The effects of population growth around rural pl...
Bill641377
 
The Ipsos - AI - Monitor 2024 Report.pdf
The  Ipsos - AI - Monitor 2024 Report.pdfThe  Ipsos - AI - Monitor 2024 Report.pdf
The Ipsos - AI - Monitor 2024 Report.pdf
Social Samosa
 
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
xclpvhuk
 
一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理
一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理
一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理
y3i0qsdzb
 
Predictably Improve Your B2B Tech Company's Performance by Leveraging Data
Predictably Improve Your B2B Tech Company's Performance by Leveraging DataPredictably Improve Your B2B Tech Company's Performance by Leveraging Data
Predictably Improve Your B2B Tech Company's Performance by Leveraging Data
Kiwi Creative
 
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
mkkikqvo
 
End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024
Lars Albertsson
 
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docxDATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
SaffaIbrahim1
 
原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理
原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理
原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理
a9qfiubqu
 
UofT毕业证如何办理
UofT毕业证如何办理UofT毕业证如何办理
UofT毕业证如何办理
exukyp
 
writing report business partner b1+ .pdf
writing report business partner b1+ .pdfwriting report business partner b1+ .pdf
writing report business partner b1+ .pdf
VyNguyen709676
 
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Aggregage
 
Experts live - Improving user adoption with AI
Experts live - Improving user adoption with AIExperts live - Improving user adoption with AI
Experts live - Improving user adoption with AI
jitskeb
 
A presentation that explain the Power BI Licensing
A presentation that explain the Power BI LicensingA presentation that explain the Power BI Licensing
A presentation that explain the Power BI Licensing
AlessioFois2
 
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
v7oacc3l
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
bmucuha
 
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
Timothy Spann
 
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
wyddcwye1
 

Dernier (20)

一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
一比一原版(UMN文凭证书)明尼苏达大学毕业证如何办理
 
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens""Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
"Financial Odyssey: Navigating Past Performance Through Diverse Analytical Lens"
 
Population Growth in Bataan: The effects of population growth around rural pl...
Population Growth in Bataan: The effects of population growth around rural pl...Population Growth in Bataan: The effects of population growth around rural pl...
Population Growth in Bataan: The effects of population growth around rural pl...
 
The Ipsos - AI - Monitor 2024 Report.pdf
The  Ipsos - AI - Monitor 2024 Report.pdfThe  Ipsos - AI - Monitor 2024 Report.pdf
The Ipsos - AI - Monitor 2024 Report.pdf
 
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
 
一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理
一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理
一比一原版巴斯大学毕业证(Bath毕业证书)学历如何办理
 
Predictably Improve Your B2B Tech Company's Performance by Leveraging Data
Predictably Improve Your B2B Tech Company's Performance by Leveraging DataPredictably Improve Your B2B Tech Company's Performance by Leveraging Data
Predictably Improve Your B2B Tech Company's Performance by Leveraging Data
 
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
 
End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024End-to-end pipeline agility - Berlin Buzzwords 2024
End-to-end pipeline agility - Berlin Buzzwords 2024
 
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docxDATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
 
原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理
原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理
原版一比一弗林德斯大学毕业证(Flinders毕业证书)如何办理
 
UofT毕业证如何办理
UofT毕业证如何办理UofT毕业证如何办理
UofT毕业证如何办理
 
writing report business partner b1+ .pdf
writing report business partner b1+ .pdfwriting report business partner b1+ .pdf
writing report business partner b1+ .pdf
 
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
 
Experts live - Improving user adoption with AI
Experts live - Improving user adoption with AIExperts live - Improving user adoption with AI
Experts live - Improving user adoption with AI
 
A presentation that explain the Power BI Licensing
A presentation that explain the Power BI LicensingA presentation that explain the Power BI Licensing
A presentation that explain the Power BI Licensing
 
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
在线办理(英国UCA毕业证书)创意艺术大学毕业证在读证明一模一样
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
 
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
06-12-2024-BudapestDataForum-BuildingReal-timePipelineswithFLaNK AIM
 
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
原版一比一利兹贝克特大学毕业证(LeedsBeckett毕业证书)如何办理
 

Evolution of Programming Languages.pdf

  • 2. History of Programmers • Before 1940s: The first programmers • The 1940s: Von Neumann, Konard Zuse & PlankalKul • The 1950s: The First Programming Language • The 1960s: An Explosion in Programming languages • The 1970s: Simplicity, Abstraction, Study • The 1980s: Consolidation and New Directions • The 1990s: Internet and the Web • The 2000s: tbd
  • 3. Early History: The First Programmer • Jacquard loom of early 1800s – Translated card patterns into cloth designs • Charles Babbage’s analytical engine (1830s & 40s) Programs were cards with data and operations • Ada Lovelace – first programmer “The engine can arrange and combine its numerical quantities exactly as if they were letters or any other general symbols; And in fact might bring out its results in algebraic notation, were provision made.”
  • 4. Jacquard loom of early 1800s Charles Babbage’s analytical engine (1830s & 40s) Ada Lovelace – first programmer
  • 5. The 1940s: Von Neumann and Zuse John Von Neumann led a team that built computers with stored programs and a central processor ENIAC.
  • 6. Konrad Zuse and Plankalkul Konrad Zuse began work on Plankalkul (plan calculus), the first algorithmic programming language, with an aim of creating the theoretical preconditions for the formulation of problems of a general nature. Seven years earlier, Zuse had developed and built the world's first binary digital computer, the Z1. He completed the first fully functional program-controlled electromechanical digital computer, the Z3, in 1941. Only the Z4, the most sophisticated of his creations, survived World War II.
  • 7. Machine Code (1940’s) •Initial computers were programmed in raw machine code. •These were entirely numeric. •What was wrong with using machine code? Everything! •Poor readability •Poor modifiability •Expression coding was tedious •Inherit deficiencies of hardware, e.g., no indexing or floating point numbers
  • 8. Pseudocodes (1949) •Short Code or SHORTCODE - John Mauchly, 1949. •Pseudocode interpreter for math problems, on Eckert and Mauchly’s BINAC and later on UNIVAC I and II. •Possibly the first attempt at a higher level language. •Expressions were coded, left to right
  • 9. More Pseudocodes Speed coding; 1953-4 • A pseudocode interpreter for math on IBM 701, IBM 650. • Developed by John Backus • Pseudo ops for arithmetic and math functions • Conditional and unconditional branching • Auto increment registers for array access • Slow but still dominated by slowness of s/w math • Interpreter left only 700 words left for user program Laning and Zierler System – 1953 • Implemented on the MIT Whirlwind computer • First "algebraic" compiler system • Subscripted variables, function calls, expression translation • Never ported to any other machine
  • 10. The 1950s: The First Programming Language • Pseudocodes: interpreters for assembly language like • Fortran: the first higher level programming language • COBOL: he first business oriented language • Algol: one of the most influential programming languages ever designed • LISP: the first language to depart from the procedural paradigm • APL: A Programming Language
  • 11. The 1960s: An Explosion in Programming Languages • The development of hundreds of programming languages • PL/I designed in 1963-4 – supposed to be all purpose – combined features of FORTRAN, COBOL and Algol 60 and more! – translators were slow, huge and unreliable – some say it was ahead of its time...... • Algol 68 • SNOBOL • Simula • BASIC
  • 12. The 1970s: Simplicity, Abstraction, Study • Algol-W - Nicklaus Wirth and C.A.R.Hoare – reaction against 1960s – simplicity • Pascal – small, simple, efficient structures – for teaching program • C - 1972 - Dennis Ritchie – aims for simplicity by reducing restrictions of the type system – allows access to underlying system – interface with O/S - UNIX
  • 13. The 1980s: Consolidation and New Paradigms • Ada – US Department of Defence – European team lead by Jean Ichbiah. (Sam Lomonaco was also on the ADA team :-) • Functional programming – Scheme, ML, Haskell • Logic programming – Prolog • Object-oriented programming – Smalltalk, C++, Eiffel
  • 14. Functional Programming • Common Lisp: consolidation of LISP dialects spurred practical use, as did the development of Lisp Machines. • Scheme: a simple and pure LISP like language used for teaching programming. • Logo: Used for teaching young children how to program. • ML: (Meta Language) a strongly-typed functional language first developed by Robin Milner in the 70’s • Haskell: poly morphicly typed, lazy, purely functional language.
  • 15. Small talk (1972-80) •Developed at Xerox PARC by Alan Kay and colleagues (esp. Adele Goldberg) inspired by Simula 67 •First compilation in 1972 was written on a bet to come up with "the most powerful language in the world" in "a single page of code". •In 1980, Smalltalk 80, a uniformly object-oriented programming environment became available as the first commercial release of the Smalltalk language •Pioneered the graphical user interface everyone now uses •Industrial use continues to the present day
  • 16. C++ (1985) •Developed at Bell Labs by Stroustrup •Evolved from C and SIMULA 67 •Facilities for object-oriented programming, taken partially from SIMULA 67, added to C •Also has exception handling •A large and complex language, in part because it supports both procedural and OO programming •Rapidly grew in popularity, along with OOP •ANSI standard approved in November, 1997
  • 17. Eiffel Eiffel - a related language that supports OOP - (Designed by Bertrand Meyer - 1992) - Not directly derived from any other language - Smaller and simpler than C++, but still has most of the power
  • 18. 1990’s: the Internet and Web During the 90’s, Object-oriented languages (mostly C++) became widely used in practical applications The Internet and Web drove several phenomena: – Adding concurrency and threads to existing languages – Increased use of scripting languages such as Perl and Tcl/Tk – Java as a new programming language
  • 19. Java • Developed at Sun in the early 1990s with original goal of a language for embedded computers • Principals: Bill Joy, James Gosling, Mike Sheradin, Patrick Naughton • Original name, Oak, changed for copyright reasons • Based on C++ but significantly simplified • Supports only OOP • Has references, but not pointers • Includes support for applets and a form of concurrency (i.e. threads)
  • 20. The future • In the 60’s, the dream was a single all-purpose language (e.g., PL/I, Algol) • The 70s and 80s dream expressed by Winograd (1979) “Just as high-level languages allow the programmer to escape the intricacies of the machine, higher level programming systems can provide for manipulating complex systems. We need to shift away from algorithms and towards the description of the properties of the packages that we build. Programming systems will be declarative not imperative” • Will that dream be realised? • Programming is not yet obsolete
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Currently Trending Programming Languages There are several programming languages that are commonly used in the fields of AI, ML, and Cybersecurity. Here are some of the most popular ones: 1. Python: Python is one of the most popular programming languages for AI and ML development due to its simple syntax and readability. It supports a variety of frameworks and libraries, which allows for more flexibility and creates endless possibilities for an engineer to work with. Some of the most popular Python libraries for machine learning include: sci-kit image, OpenCV, TensorFlow, PyTorch, Keras, NumPy, NLTK, SciPy, and sci-kit learn123. 2. Java: Java is a general-purpose programming language that is used for creating mobile, desktop, web, and cloud applications. It is also used for developing AI systems. Java is known for its scalability, security, and cross-platform compatibility2. 3. R: R is a programming language that is used for statistical computing and graphics. It is widely used in data analysis, machine learning, and scientific research. R has a large number of libraries and packages that make it easy to perform complex statistical analyses3. 4. Julia: Julia is a high-level, high-performance programming language that is designed for numerical and scientific computing. It is used for developing AI and ML models, as well as for data analysis and visualization3. 5. Lisp: Lisp is a family of programming languages that are used for AI and ML development. Lisp is known for its powerful macro system, which allows developers to extend the language itself. Lisp is also used for symbolic computing, which is a type of computing that deals with symbols and expressions3. 6. JavaScript: JavaScript is a programming language that is used for creating highly interactive browser-based applications. It is also used for developing AI systems. JavaScript is known for its flexibility and ease of use2. 7. C++: C++ is a general-purpose programming language that is used for developing AI and ML models, as well as for developing operating systems, system software, and embedded systems. C++ is known for its speed and efficiency2. • Here are some PowerPoint presentations that you might find useful: 1. Machine Learning in Cyber Security - This presentation provides a holistic view of machine learning in cybersecurity for better organizational readiness. 2. AI and ML in Cybersecurity - This presentation discusses the limitations of machine learning and issues of explain ability, where deep learning should never be applied, and examples of how the blind application of algorithms can lead to wrong results. • Please note that the information provided is current as of January 2024 and may be subject to change.
  • 37. Comparing the performance of Mojo, Python, and JavaScript Comparing the performance of Mojo, Python, and JavaScript in the context of machine learning. According to a Medium article, Python and Mojo are two popular programming languages that have been widely used in various applications, from web development to machine learning. While both Python and Mojo share some similarities, they also have notable differences that set them apart. As a developer or programmer, it’s essential to understand the fundamental differences between these languages so that you can choose the one that best suits your needs. Another Medium article compares the performance of JavaScript and Python for machine learning. The article states that JavaScript’s computational performance is still much better than Python’s. However, the maturity of the libraries — which often have underlying modules written in C — means that operations on large datasets can offer so much more than sheer computational power. But there is still a place for JavaScript in machine learning.
  • 38. Programming Languages for Civil Engineering • Civil and Structural engineering are fields that require a lot of computational power. Learning to code can help engineers automate repetitive tasks, improve their workflow, and increase their productivity. According to The Computational Engineer, the following programming languages are commonly used in the civil and structural engineering industry 1: 1. Grasshopper: A visual programming language that can be easily adopted by civil and structural engineers. It is a plugin to a CAD and 3D-modelling software called Rhinoceros. It has a low bar to entry but is powerful enough to manage most of your workflows, including your Revit workflows. 2. Dynamo: A popular visual programming language for building and civil engineers. It is a plugin for Autodesk Revit and can be used to automate repetitive tasks and improve workflows. 3. BHoM: A data structure and toolset for building and architecture that can be used to create custom workflows and automate tasks. 4. C#: A general-purpose programming language that is widely used in the civil engineering industry. It is used to develop software applications and tools for civil engineering projects. • These languages have been designed with civil engineering workflows in mind and offer a lower bar to entry for civil and structural engineers. They are also powerful enough to manage most of your workflows, including your Revit workflows. If you are new to coding, Grasshopper is a great first language to learn as it has an easy-to-adopt and debug interface 1.
  • 39. Never Ever Ending Life History of Programming Languages • 18 New Programming Languages to Learn in 2024 | Built In