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

Slides:



Advertisements
Similar presentations
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Advertisements

Bramble Software Consultants Ltd. ◦ What is computer software? ◦ Types of Software ◦ Programming ◦ Applications Bramble Software Consultants Ltd.
CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
1 Scheme and Functional Programming Aaron Bloomfield CS 415 Fall 2005.
Computation and representation Joe Lau. Overview of lecture What is computation? Brief history Computational explanations in cognitive science Levels.
A brief history of programming languages
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 330 Programming Language Structures Ch.2: Syntax and Semantics Fall 2005.
Object-Oriented Programming OOP John Gilligan School of Computing DIT Kevin St.
CS 330 Programming Languages 09 / 13 / 2007 Instructor: Michael Eckmann.
Common Lisp Derek Debruin Mark Larue Vinh Doan. Problem Domains There was a need in the early 1960s to define a programming language whose computational.
Programming Languages Structure
Computability to Practical Computing - and - How to Talk to Machines.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
6/27/2015G. Levine1 PROGRAMMING LANGUAGES Text: Programming Languages, Design and Implementation Pratt and Zelkowitz 4 th ed. Prentice-Hall.
Experiments in Computer Science Mark Claypool. Introduction Some claim computer science is not an experimental science –Computers are man-made, predictable.
Dr. Muhammed Al-Mulhem ICS An Introduction to Functional Programming.
Programming languages Prepared by : Jyrald Aquino.
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
Presentation topic : LISP Amir Shahzad MCS 3 MCC
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
PROGRAMMING LANGUAGES The Study of Programming Languages.
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
+ Java vs. Javascript Jessi Style. + Java Compiled Can stand on its own Written once, run anywhere Two-stage debugging Java is an Object Oriented Programming.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
Invitation to Computer Science 5th Edition
Sequences Informally, a sequence is a set of elements written in a row. – This concept is represented in CS using one- dimensional arrays The goal of mathematics.
Algorithms Describing what you know. Contents What are they and were do we find them? Why show the algorithm? What formalisms are used for presenting.
Computer programming.
The Evolution of the Object Model OOAD. The Evolution of the Object Model software engineering trends observed The shift in focus from programming-in-the-small.
The Turing machine Olena Lastivka. Definition Turing machine is a theoretical device that manipulates symbols on a strip of tape according to a table.
LISP – Not just a Speech Impediment Jim Lowe. Brief History of LISP Initial development begins at the Dartmouth Summer Research Project in 1956 by Dr.
CS 106 Introduction to Computer Science I 03 / 19 / 2007 Instructor: Michael Eckmann.
1 Programming Languages Marjan Sirjani Course web site:
CS 326 Programming Languages, Concepts and Implementation Instructor: Mircea Nicolescu Lecture 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
A language which is acceptable to a computer system is called a computer language or programming language and the process of writing instructions in such.
How Solvable Is Intelligence? A brief introduction to AI Dr. Richard Fox Department of Computer Science Northern Kentucky University.
CS529 Multimedia Networking Experiments in Computer Science.
Chapter 6 Programming Languages (1) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
CIS 120 Problem Solving Programming Java. Problem Solving Problem-Solving: the process of defining a problem, searching for relevant information and resources.
Fortran Fortran – Formula Translation –Developed by John Backus (IBM) in the mid 1950s. –It was a team effort and the design goal was to produce a translation.
Programming Language 1. Programming language A programming language is a machine-readable artificial language designed to express computations that can.
CS 423 Compiler project notes Dept. of Comp. Sci. & Eng. Geunbae Lee.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
Definitions of AI There are as many definitions as there are practitioners. How would you define it? What is important for a system to be intelligent?
1-1 An Introduction to Functional Programming Sept
FORTRAN History. FORTRAN - Interesting Facts n FORTRAN is the oldest Language actively in use today. n FORTRAN is still used for new software development.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
Lisp "List Processing". Lisp history John McCarthy developed the basics behind Lisp during the 1956 Dartmouth Summer Research Project on Artificial Intelligence.
Course Instructor: Hira Farman Course : BY:HIRA FARMAN.
History of Programming Languages Compiled by Wasim Ahmad Khan.
Cs205: engineering software university of virginia fall 2006 David Evans Object-Oriented Programming.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Alan Kay The Father of Object-Oriented Programming Chris Rees.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
High Level Programming Languages
Ada – 1983 History’s largest design effort
Programming Languages
Procedural versus Functional Programming
Fundamentals of Programming
Presentation transcript:

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: uages uages ( 650+/-) The Language List (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

Fortran 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 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