Top Banner
Welcome to the CIS Seminar Fall, 2006
22

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.

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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.

Welcome to the CIS Seminar

Fall, 2006

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

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.

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

Grading

Presentation: 50%

Participation & Attendance: 50%

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

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 slidesYou 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.

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

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,

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

This Term’s Theme

Programming Languages!

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

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

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

Why So Many Languages?

What keeps computing from having one standard language that absorbs all others??

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

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 * XSTO SUMLDQ YFMP Y CALCULATE Y * YFAD SUM X * X + Y * YSTO SUM STORE SUM

Old IBM Assembly

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

The First Real PL: Fortran

It soon became obvious that assembly was hard to write andhard to understand. Mathematicians wanted to use more familiar notation.

A Fortran II example written byJohn Backus

1954

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

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)

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

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

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

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"

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

Algol

Algol = "Algorithmic Language"

Algol was a language for both programming and formal description of algorithms.

1958

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

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

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

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

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

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.

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

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.

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

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

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

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

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

Simula

Simula expanded on Algol to add objects, classes, methods, GC. It is the ancestor of object oriented programming.

1962

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;

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

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++)