Welcome to the CIS Seminar Fall, 2006. Taking this for Credit You’ll do a ½ hour presentation (or you and a friend will do a 1 hour presentation). This.

Slides:



Advertisements
Similar presentations
CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Advertisements

1 Scheme and Functional Programming Aaron Bloomfield CS 415 Fall 2005.
Assembly Language for Intel-Based Computers, 4 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and.
CS 415: Programming Languages Algol Aaron Bloomfield Fall 2005.
CS ExCo Advanced in Topics Object-Oriented Programming.
A brief history of programming languages
CS 197 Computers in Society History of Computing.
Welcome to the CIS Seminar I Prof Peterson's OF PROGRAMMING LANGUAGES.
Computability to Practical Computing - and - How to Talk to Machines.
6/27/2015G. Levine1 PROGRAMMING LANGUAGES Text: Programming Languages, Design and Implementation Pratt and Zelkowitz 4 th ed. Prentice-Hall.
Comp 205: Comparative Programming Languages Imperative Programming Languages Functional Programming Languages Semantics Other Paradigms Lecture notes,
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
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)
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
History of Programming Languages
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.
University of Utah 1 IBM Dominates the industry Critics complain that IBM doesn't innovate -Sound familiar?
G Programming Languages T he main themes of programming language design and use: –Model of computation –Expressiveness types and their operations.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
COMPUTER PROGRAMS AND LANGUAGES Chapter 4. Developing a computer program Programs are a set (series) of instructions Programmers determine The instructions.
ISBN Chapter 2 Evolution of the Major Programming Languages.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Programming History. Who was the first programmer?
1 Programming Languages Marjan Sirjani Course web site:
Programming Languages The Beginning. In the beginning... Computers were very expensive; programmers were cheap Programming was by plugboards or binary.
1 Programming Language History and Evolution In Text: Chapter 2.
Programming Languages What is a programming language? –systematic notation by which we describe computational processes to others –notation for description.
The Evolution of Programming Languages Day 2 Lecturer: Xiao Jia The Evolution of PLs1.
Logical and Functional Programming
Salman Marvasti Sharif University of Technology Winter 2015.
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
FORTRAN History. FORTRAN - Interesting Facts n FORTRAN is the oldest Language actively in use today. n FORTRAN is still used for new software development.
Chapter 12: Computer Programming 1 Computer Programming Chapter 12.
Ole-Johan Dahl ACM Turing Award (2001) Presentation by Carsten Hood CSCE | Spring 2014.
Allyson M. Hoss, January 14, 2008 CSC 7101 Programming Language Structures Spring 2008 Louisiana State University.
Language Translation Issues General Syntactic Criteria.
CSCE 314 Programming Languages
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering CSCE 190 Programming Language Paradigms Fall 2014
CS154 A History of Computation Thaddeus Aid Department of Computer Science San Jose State University Spring 2016 Creative Commons Attribution-ShareAlike.
1 CS100J Spring Instructor: David Gries CS100M: Matlab No prior programming experience One semester of calculus Math & engineering type problems.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Programming Language Paradigms ITSK2314 Lecture 3.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
First appeared Features Popular uses Basic This language emphasises on ease of use, allowing general purpose programming to those with a small amount of.
Programming Language History and Evolution
CSCI 161: Introduction to Programming
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Why study programming languages?
CSCI 3200: Programming Languages
Algol 60 John Cowan N Languages in N Months Meetup June 7, 2016
Programming Language Design Concepts
Comp 205: Comparative Programming Languages
An Introduction to Programming
Programming Language History and Evolution
Introduction to Computers and Python
Programming Language Design
History and Background
Von Neumann Architecture
Cobol Design goals: Problems
Language Translation Issues
Language Translation Issues
An Introduction to Programming
Language Translation Issues
Language Translation Issues
CSCI 3200: Programming Languages
Language Translation Issues
Presentation transcript:

Welcome to the CIS Seminar Fall, 2006

Taking this for Credit You’ll do a ½ hour presentation (or you and a friend will do a 1 hour presentation). This presentation includes background and discussion in the wiki. You need to participate You need to attend every week.

Grading Presentation: 50% Participation & Attendance: 50%

About Your Presentation We will pick topics today if possible. You need to do background research (hint: Google doesn’t yet cover all information in the universe! Try the library …) You need to make a good wiki page, including discussion prompts or problems. You need to make good slides You need to practice! I will ask for a trial run at least 3 days before. If you’re not ready I’ll ask for more trial runs.

Scheduling History of programming languages (Prof Peterson) Haskell (Prof Peterson) Mathematica as a programming language (Prof Keck) Hindley-Milner Type systems (Daniel) Computer camp wrapup (Prof Peterson) Ruby on Rails (Tim) Internship report (Kate) Running CMT (Randy Spydell) Alex Chiang (HP) Tim Chamilard (UCCS) Gareth Eaton (DU) Eric Friedman (CNet) Kate's Dad (???) Amanda Tarr (Some crazy game company) Possible Student talks: C++ and templates, Prolog, Snobol / Icon,

This Term’s Theme Programming Languages!

A Brief History of Programming Languages Computer Science is unique in that no one language of expression has emerged to supplant all others. Most other disciplines have one "official" language: * standard music notation * standard math notation * standards for blueprints & technical descriptions

Why So Many Languages? What keeps computing from having one standard language that absorbs all others??

In The Beginning Computers were really expensive! Few programs. Just write everything in the native language of the machine. LDQ X FMP X CALCULATE X * X STO SUM LDQ Y FMP Y CALCULATE Y * Y FAD SUM X * X + Y * Y STO SUM STORE SUM Old IBM Assembly

The First Real PL: Fortran It soon became obvious that assembly was hard to write and hard to understand. Mathematicians wanted to use more familiar notation. A Fortran II example written by John Backus 1954

Fortran Innovations * Math notations (infix expressions) * Basic control structures: IF, DO loops, subroutines / functions * No real linker – "Common Blocks" were a substitute * Column oriented syntax (punched cards)

Lambda Calculus Strikes! Lisp was a language WAY ahead of it's time! John McCarthy proposed a language based on lambda-calculus and S-expressions (pairs). 1958

Lisp Innovations * Automatic Storage Management * Purely functional subset * Defined by a meta-interpreter * Syntactic simplicity * Single recursive structure type Lisp is still alive and well – nowadays it's called "Python"

Algol Algol = "Algorithmic Language" Algol was a language for both programming and formal description of algorithms. 1958

Contributions of Algol * First language with "Modern" syntax * A language of scholarly publication * Better "function call" mechanism – more descriptive * Led to Pascal and eventually Java * Adopted as the "machine language" by Burroughs

COBOL Cobol was a language designed to fill the needs of the business community (mathematicians and other shady academics were responsible for the other languages!) It was influenced by Grace Hopper's ideas in Flow-Matic. 1959

Pity the Cobol Programmer MULTIPLY B BY B GIVING B-SQUARED. MULTIPLY 4 BY A GIVING FOUR-A. MULTIPLY FOUR-A BY C GIVING FOUR-A-C. SUBTRACT FOUR-A-C FROM B-SQUARED GIVING RESULT-1. COMPUTE RESULT-2 = RESULT-1 **.5. SUBTRACT B FROM RESULT-2 GIVING NUMERATOR. MULTIPLY 2 BY A GIVING DENOMINATOR. DIVIDE NUMERATOR BY DENOMINATOR GIVING X.

Cobol Innovations * Extensive I/O capabilities * Natural language (why?) * Abandoned native numeric representation * Emphasized data layout (nested naming) This is the language that will not die. You could earn big $$$ becoming a Cobol programmer.

APL Ken Iverson was probably the first "mad genius" to design a programming that was completely unprecedented and unique. Good luck figuring this one out: 1962

APL Contributions * An amazing economy of expression * Extreme functional programming – many APL operators made it into Haskell * Explored the difficulty of introducing new symbols into the PL * Everyone knew about APL but nobody actually used it except crazy math dudes * Still alive as the "J" programming language

Simula Simula expanded on Algol to add objects, classes, methods, GC. It is the ancestor of object oriented programming Ole-Johan Dahl and Kristen Nygaard External Class Geometry; Geometry Begin ! Subclasses declared in the prefixed block: ; Point Class Color_Point(C); Character C; Begin... End; Rectangle Class Square; Begin... End; ! Variables declared in the prefixed block: ; Ref(Color_Point) A1; Ref(Point) C, D; Ref(Circle) K; Ref(Line) E, F; Ref(Rectangle) R1; Ref(Square) S1; ! Block body: ; C :- New Point(5,6); D :- New Point(20,30); A1 :- New Color_Point(3, 4, 'G'); K :- New Circle(10, C); E :- New Line(C, D); F :- X; K.Shift (1,1); R1 :- New Rectangle("Rec_R1", 5, 4); S1 :- New Square("Square_S1", 4, 6); S1.Show; End of prefixed block;

Simula * Simula was designed for discrete event based simulation – something that O-O does very well! * It took a long time for O-O ideas to hit the mainstream (C++)