the history of programming languages cs 170b benjamin gaska, much help from william mitchell

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

Upload: reynold-parrish

Post on 24-Dec-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: 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.

Page 3: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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)

Page 4: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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

Page 5: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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

Page 6: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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.

Page 7: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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

Page 8: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

Simplified Timeline

• TimeLine of Languages• Fortran – 1954 • LISP – 1956• SNOBOL 1962 & ICON 1977• C – 1972• Smalltalk – 1972• Java – 1995• Rust - 2010

Page 9: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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

Page 10: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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”

Page 11: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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”

Page 12: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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

Page 13: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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”

Page 14: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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

Page 15: The History of Programming Languages CS 170b Benjamin Gaska, much help from William Mitchell

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