Insights into the World of Programming Languages

 
The History of Programming
Languages
 
CS 170b
Benjamin Gaska, much help from William Mitchell
What is a programming language
 
A simple definition:
A system for describing computation.
It is generally agreed that in order for a language to be considered  a
programming language it must be 
Turing Complete
.
One way to prove a language is Turing Complete is to use it to implement a
Turing Machine
, a theoretical device capable of performing any algorithmic
computation.
How many programming languages are
there?
 
Some of the many attempts at a family tree of languages:
http://www.digibarn.com/collections/posters/tongues/
http://www.levenez.com/lang/
http://rigaux.org/language-study/diagram.html
http://en.wikipedia.org/wiki/Alphabetical_list_of_programming_lang
uages
( 650+/-)
The Language List
http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm
(about 2,500)
Natural Language vs. Programming Language
 
Both of them are ways to convey information
Both have syntax
Syntax is the way things are structured to create
larger meaning
Both have semantics
Semantics are what individual words mean
But it is clear that they are quite different
beasts
 
Programming languages must be unambiguous
Ultimately, all programming languages reach the level of
machine code
Programming languages are limited in what they can
describe
The descriptive power of human speech far outstrips that
of programming languages
Aside: The Sapir-
Whorf Hypothesis
 
The structure of a language affects
how we conceptualize the world.
Ex. There are languages that do not
make a distinction between the
colors blue and green. Native
speakers of these languages have
difficulty separating these colors in
tests.
What does a language design say about how
it views the world?
 
Each programming language is created with a
purpose.
Sometimes that can be to achieve an important goal
C was designed to allow for system programming
Sometimes it can be for “fun”
Malbolge was designed to be as difficult to comprehend
as possible
99-Bottles of Beer in Malboge
 
Simplified Timeline
 
TimeLine of Languages
Fortran – 1954
LISP – 1956
SNOBOL 1962 & ICON 1977
C – 1972
Smalltalk – 1972
Java – 1995
Rust - 2010
Fortran - 1954
John Backus
 
One of the oldest
programming languages
Incredibly influential
Was created for
engineering and scientific
computation
Everything in it is a
multidimensional array
Still in use today
LISP - 1956
John McCarthy
 
Created in order to allow
for programming of
mathematical notation
The earliest language used
(and still used today) for
serious AI research
The father of all “functional
languages”
SNOBOL – 1962
Icon – 1977
Ralph Griswold
 
SNOBOL (StriNg Oriented symBOlic
Language) was one of the earliest
languages for string manipulation
Icon was created here at the UA. Used
an interesting Goal-Directed evaluation
style
“A General-purpose language known
for its beauty and grace”
C – 1972
Dennis Ritchie
 
Designed for system level programming,
needed a language just above assembly
code.
Was created, specifically to create the
UNIX operating system
Possibly the most influential
programming language of all time
Source of the “Hello, world” archetype
Also famous for its tendency to create
bugs
Smalltalk – 1972
Alan Kay
 
 
The earliest major object
oriented programming
language
“Smalltalk fits on a
postcard!”
Defined the concept of a
laptop
“The best way to predict
the future is to invent it”
 
Java – 1995
James Gosling
 
“Write once, run anywhere”
Utilizes a bytecode that
allows it to run on any
machine
Most rapid growth of any
language in history
Garbage collection
 
Rust – 2010
Graydon Hoare (initial)
 
Built with pure-functional
programming and
concurrency in mind
Open-Source, the
language is designed and
implemented by the
community
Multi-paradigm, melting
together many ideas
from all the languages
we’ve seen
Slide Note
Embed
Share

Explore the fascinating realm of programming languages, from their fundamental definition as systems for computation to the diverse range of language designs that reflect different perspectives on the world. Learn about the essential characteristics that make a language Turing Complete, discover the vast number of programming languages that exist, and delve into the intriguing distinctions between natural language and programming language. Gain insights into how language design shapes our understanding and experience of coding.

  • Programming Languages
  • Turing Complete
  • Language Design
  • Natural vs Programming
  • Sapir-Whorf Hypothesis

Uploaded on Sep 28, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

  2. What is a programming language A simple definition: A system for describing computation. It is generally agreed that in order for a language to be considered a programming language it must be Turing Complete. One way to prove a language is Turing Complete is to use it to implement a Turing Machine, a theoretical device capable of performing any algorithmic computation.

  3. How many programming languages are there? Some of the many attempts at a family tree of languages: http://www.digibarn.com/collections/posters/tongues/ http://www.levenez.com/lang/ http://rigaux.org/language-study/diagram.html http://en.wikipedia.org/wiki/Alphabetical_list_of_programming_lang uages ( 650+/-) The Language List http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm (about 2,500)

  4. Natural Language vs. Programming Language Both of them are ways to convey information Both have syntax Syntax is the way things are structured to create larger meaning Both have semantics Semantics are what individual words mean

  5. But it is clear that they are quite different beasts Programming languages must be unambiguous Ultimately, all programming languages reach the level of machine code Programming languages are limited in what they can describe The descriptive power of human speech far outstrips that of programming languages

  6. Aside: The Sapir- Whorf Hypothesis The structure of a language affects how we conceptualize the world. Ex. There are languages that do not make a distinction between the colors blue and green. Native speakers of these languages have difficulty separating these colors in tests.

  7. What does a language design say about how it views the world? Each programming language is created with a purpose. Sometimes that can be to achieve an important goal C was designed to allow for system programming Sometimes it can be for fun Malbolge was designed to be as difficult to comprehend as possible 99-Bottles of Beer in Malboge

  8. Simplified Timeline TimeLine of Languages Fortran 1954 LISP 1956 SNOBOL 1962 & ICON 1977 C 1972 Smalltalk 1972 Java 1995 Rust - 2010

  9. Fortran - 1954 John Backus One of the oldest programming languages Incredibly influential Was created for engineering and scientific computation Everything in it is a multidimensional array Still in use today

  10. LISP - 1956 John McCarthy Created in order to allow for programming of mathematical notation The earliest language used (and still used today) for serious AI research The father of all functional languages

  11. SNOBOL 1962 Icon 1977 Ralph Griswold SNOBOL (StriNg Oriented symBOlic Language) was one of the earliest languages for string manipulation Icon was created here at the UA. Used an interesting Goal-Directed evaluation style A General-purpose language known for its beauty and grace

  12. C 1972 Dennis Ritchie Designed for system level programming, needed a language just above assembly code. Was created, specifically to create the UNIX operating system Possibly the most influential programming language of all time Source of the Hello, world archetype Also famous for its tendency to create bugs

  13. Smalltalk 1972 Alan Kay The earliest major object oriented programming language Smalltalk fits on a postcard! Defined the concept of a laptop The best way to predict the future is to invent it

  14. Java 1995 James Gosling Write once, run anywhere Utilizes a bytecode that allows it to run on any machine Most rapid growth of any language in history Garbage collection

  15. Rust 2010 Graydon Hoare (initial) Built with pure-functional programming and concurrency in mind Open-Source, the language is designed and implemented by the community Multi-paradigm, melting together many ideas from all the languages we ve seen

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#