cs 150 lecture 2. review reasons for studying programming languages language evaluation criteria...
TRANSCRIPT
![Page 1: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/1.jpg)
CS 150 lecture 2
![Page 2: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/3.jpg)
![Page 4: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/4.jpg)
![Page 5: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/5.jpg)
![Page 6: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/6.jpg)
“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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/7.jpg)
Thanks to Google images…
![Page 8: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/9.jpg)
Speedcoding
• John Backus
![Page 10: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/11.jpg)
Von Neumann Machines
•
![Page 12: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/12.jpg)
Fortran
• John Backus and group
![Page 13: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/18.jpg)
PL/I
• Because of?
![Page 19: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/19.jpg)
Ken Iverson --APL 1960
•
![Page 20: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/26.jpg)
C++
• Bjarne Stroustrup
![Page 27: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/27.jpg)
Bertran Meyer : Eiffel• hybrid
![Page 28: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/28.jpg)
Jame Gosling : Java
• SUN
![Page 29: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/30.jpg)
For all you Linux buffs
![Page 31: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/31.jpg)
![Page 32: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/32.jpg)
![Page 33: CS 150 lecture 2. Review Reasons for studying programming languages Language evaluation criteria –Readability Simplicity? Orthogonality? –Writability](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070308/551bd5b6550346b9588b574e/html5/thumbnails/34.jpg)
Assignment
• How/In what terms did the speaker discuss evolution in the video?
• Is he an advocate of functional programming languages or no?