Upload
maverick-hight
View
214
Download
2
Tags:
Embed Size (px)
Citation preview
CS 150 lecture 2
Review
• Reasons for studying programming languages• Language evaluation criteria
– Readability• Simplicity?• Orthogonality?
– Writability
• Influences on language design• Language design trade offs• Implementation methods
“those that forget their history are doomed to repeat it.”
Thanks to Google images…
Plankakul
• Konrad Zuse• Why did this come to
be?
Speedcoding
• John Backus
Univac Compiling System
• Grace Murray Hooper
Von Neumann Machines
•
Fortran
• John Backus and group
LISP1958
(defun append (L M) (cond ((null L) M) (T (cons (car l) (append (cdr L) M)) )))
John McCarthy
ML (Meta Language) 1980’s
• Robin Milnerfun size Empty = 0 (* size
of b_tree = # nodes *) | size (Node (lft, _, rht)) = 1 + size lft + size rht;
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
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.
John Kemeny of DartmouthBASIC Dartmouth 1960’s
LET X=5
DIM INTLIST(99)
INPUT LISTLEN
PL/I
• Because of?
Ken Iverson --APL 1960
•
Ralph GriswoldSNOBOL 1960’s
• String pattern matching
SIMULA 1967
• Basic idea of class• Nygaard and Dahl
Niklaus WirthPascal
• Simplicity by design• Then Modula• Then Oberon
Ada 1970’s to 1983
• What is ADA for?
Alan Kay : Smalltalk
• OOP• Xerox Parc
C
• Dennis Ritchie• Based on the
language B• At Bell labs – used in
the UNIX project
C++
• Bjarne Stroustrup
Bertran Meyer : Eiffel• hybrid
Jame Gosling : Java
• SUN
C#
• Anders Hejlsberg• Designer of Turbo
Pascal• Microsoft product
For all you Linux buffs
Class discussion
• Continuation of evolution? What would be the ideal programming language today?
Assignment
• How/In what terms did the speaker discuss evolution in the video?
• Is he an advocate of functional programming languages or no?