The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell.
-
Upload
reynold-parrish -
Category
Documents
-
view
217 -
download
0
Transcript of The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell.
The History of Programming
LanguagesCS 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_languages• ( 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 - 1954John 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 - 1956John 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 – 1962Icon – 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 – 1972Dennis 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 – 1972Alan 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 – 1995James 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 – 2010Graydon 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