CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria...

34
CS 150 lecture 2

Transcript of CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria...

Page 1: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

CS 150 lecture 2

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

Review

• Reasons for studying programming languages• Language evaluation criteria

– Readability• Simplicity?• Orthogonality?

– Writability

• Influences on language design• Language design trade offs• Implementation methods

Page 3: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Page 4: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Page 5: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Page 6: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

“those that forget their history are doomed to repeat it.”

Page 7: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Thanks to Google images…

Page 8: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Plankakul

• Konrad Zuse• Why did this come to

be?

Page 9: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Speedcoding

• John Backus

Page 10: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Univac Compiling System

• Grace Murray Hooper

Page 11: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Von Neumann Machines

Page 12: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Fortran

• John Backus and group

Page 13: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

LISP1958

(defun append (L M) (cond ((null L) M) (T (cons (car l) (append (cdr L) M)) )))

John McCarthy

Page 14: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

ML (Meta Language) 1980’s

• Robin Milnerfun size Empty = 0 (* size

of b_tree = # nodes *) | size (Node (lft, _, rht)) = 1 + size lft + size rht;

Page 15: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Peter Naur : ACM and GAMMALGOL

ALGOL 58 Program// the main program, calculate the mean of // some numbers begin integer N; Read Int(N); begin real array Data[1:N]; real sum, avg; integer i; sum:=0; for i:=1 step 1 until N do begin real val; Read Real(val); Data[i]:=if val<0 then -val else val end; for i:=1 step 1 until N do sum:=sum Data[i];

avg:=sum/N; Print Real(avg) end end

Page 16: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Grace Murray Hopper, againCOBOL 1959

PROCEDURE DIVISION. MAIN-PARAGRAPH. MOVE X TO YIF Y > Z THEN ADD Z TO X

MOVE X TO Z ELSE DISPLAY END-IF

STOP RUN.

Page 17: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

John Kemeny of DartmouthBASIC Dartmouth 1960’s

LET X=5

DIM INTLIST(99)

INPUT LISTLEN

Page 18: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

PL/I

• Because of?

Page 19: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Ken Iverson --APL 1960

Page 20: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Ralph GriswoldSNOBOL 1960’s

• String pattern matching

Page 21: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

SIMULA 1967

• Basic idea of class• Nygaard and Dahl

Page 22: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Niklaus WirthPascal

• Simplicity by design• Then Modula• Then Oberon

Page 23: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Ada 1970’s to 1983

• What is ADA for?

Page 24: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Alan Kay : Smalltalk

• OOP• Xerox Parc

Page 25: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

C

• Dennis Ritchie• Based on the

language B• At Bell labs – used in

the UNIX project

Page 26: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

C++

• Bjarne Stroustrup

Page 27: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Bertran Meyer : Eiffel• hybrid

Page 28: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Jame Gosling : Java

• SUN

Page 29: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

C#

• Anders Hejlsberg• Designer of Turbo

Pascal• Microsoft product

Page 30: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

For all you Linux buffs

Page 31: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Page 32: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.
Page 33: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Class discussion

• Continuation of evolution? What would be the ideal programming language today?

Page 34: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability.

Assignment

• How/In what terms did the speaker discuss evolution in the video?

• Is he an advocate of functional programming languages or no?