Chapter 2
E N D
Presentation Transcript
1. 1 Chapter 2 ??? ??
2. 2
3. 3 2.1 ??? ?????? ?? Charles Babbage (1792 1871)
Difference Engine
?? ??? ?? ??
?? ? (finite difference)? ??? ???? ?
Analytical Engine : ? ??? ???? ?? ??
?? ???? ??? ??
????? ??? ?????? ????? ?? ?? ?? (????, ???? ??)
Ada Augusta(C Babbage ??)
??? ??? ????? (Analytical Engine ?????)
Ada? ???? ??? ?? ??
4. 4 2.1 ??? ?????? ?? 1930?? 1940??
????? ???? ???? ??? ??? ??
Zuse? Plan Calculus
Turing? Turing Machine
Church? Lambda Calculus
Aiken? Mark I
von Neumann? Flow Diagrams
??? ???? ?? ????? ???? ??
5. 5
6. 6 2.2 1950?? : ??? ????? ?? 1950?? ??
??? ?? (???? ?? ??)
1950?? ??
FORTRAN(Formula TRANslation)
1954 57, John Backus? ?? ??? ??? ?? ??
FORTRAN II, FORTRAN IV, FORTRAN 66, FORTRAN 77, FORTRAN 90
FORTRAN ????? ???? ??? ??? ?? ??? ? ??
??, ?? ??, ???, ????? ?? ??? ?? ??? ? ??
7. 7 2.2 1950?? : ??? ????? ?? 1950?? ??? ??? ??
COBOL (Common Business-Oriented Language)
???????
ALGOL 60 (ALGOrithmic Language 60)
???? ??, ??
LISP (LISt Processor)
????, ??? ???
APL (A Programming Language)
?????
8. 8 2.2 1950?? : ??? ????? ?? 1950?? ??
COBOL (COmmon Business-Oriented Language)
1959 - 60, ????? Grace Hopper? ?? ??
?? ??
????? ????? ?? ??, ???? ?? ?
??? ??
??? ?? ??
????? ?? ??? ??
PICTURE? ?? ??? ?? ??? ??? ??
9. 9 2.2 1950?? : ??? ????? ?? 1950?? ??
ALGOL 60 (ALGOrithmic Language 60)
1958 - 60, ???? ??? ?? ???? ?? ??
??? ??
??? ???(free format), ??? ???, begin-end ??,
?? ????, ???, call-by-value ?? ?? ?? ?? ??
?? ?? ?? ?? ??
Backus-Naur Forms(BNF)? ??? ??
10. 10 2.2 1950?? : ??? ????? ?? 1950?? ??
LISP (LISt Processor)
1950 ?? ??, MIT? John McCarthy? ?? ??
???? ??? ??? ??? ??? ???? ?
???? ?? ??
??? ??
??? ????, S-expression
???? ?? ???? ?? ??
garbage collection ?? ??
???? ??
11. 11 2.2 1950?? : ??? ????? ?? 1950?? ??
APL (A Programming Language)
1950 ?? ???? 60?? ??
????? K. Iverson? ?? ??
??? ??
??? ??? ?? ??? ??, ??? ?????
??? ??
????? ??
?? ????? ?? ??? ?? ??
???? ?? ??
12. 12 2.3 1960?? : ????? ??? ?? Sammet? Programming Languages: History and Funda Mentals? ??
13. 13 2.3 1960?? : ????? ??? ?? 1960?? ??? ??
?? ?? ?? ?? ?? ?? ??? ?? ??
??? ?? ??? ??
? : ???, ??, ??? ?? ?? ?
???? ??? ??, ?? ??? ??? ??
1960?? ??? ??
PL/I (Programming Language One)
ALGOL 68
Simula 67
BASIC(Beginners All-purpose Symbolic Instruction Code)
14. 14 2.3 1960?? : ????? ??? ?? PL/I
FORTRAN, COBOL, ALGOL 60? ?? ?? ??
??? ?? ?? (???, ?? ?? ??, ????)
IBM? ??? ??
??? ??? (??)
???? ?? ??? ???
?? ?? ??
??? ???, ?? ?? ??
?? ???? ?? ???? ?? ??? ??
15. 15 2.3 1960?? : ????? ??? ?? ALGOL 68
ALGOL60 + ? ??? ?? ?? + ??? ?? ??? ??
??? ?? ?? ??
????? ??? ?? ??
???? ? ???, ??? ?? (?? ??)
?? ?? ??? ?? ?? ??
??? ???, ?? ???, ?? ?? ??
?? ??? ?? ??? (?? ?? ??)
16. 16 2.3 1960?? : ????? ??? ?? ?? ? ?? ??
Snobol (StriNg Oriented symBOlic Language)
??? ??? ?? ??, ?? ?? ?? ??
Simula 67
?? ?? ??(??? ?? ?? ??)
Simula I + ALGOL 60
????? ??
BASIC (Beginners All-purpose Symbolic Instruction Code)
????? ??? ??
???? ??? ?? (???, ?????, ???)
??? (ANSI ?? : 1978 minimal BASIC, 1988 Standard BASIC)
?? ?? BASIC : ?? ??, ?? ??, ???? ??
17. 17 1970?? : ???, ???, ?? ?? 1970?? ?? ??? ??
60??? ?? ? ???? ??? ??
Niklaus Wirth : ALGOL 68 ???? ?? (???)
Wirth + Hoare : ALGOL W ??
1970?? ??? ??? ??
PASCAL (1971, Wirth)
??, ????, ?????, ?????, ????? ???
?? ???, ??? ??? ??, ??? ?? ?? ?? ?? (???)
C ?? (1972, Dennis Ritchie)
PASCAL ?? ?? ??? ???
?? ??? ? ???? ???? ??, ???? ?? ??
?? ??? ?? : ?? ??? ?? (?? ??? ?? ??)
???? ?????? (Bliss(1971), Forth(1971))
C ??? ??? UNIX ?? C ?? ???
C, PASCAL ???, ??? ??? (???? ??) : ?? ??
18. 18 1970?? : ???, ???, ?? ?? 1970?? ?, ?? ?? ??
?? ???, ???, ?? ?? ????? ????? ??
1970?? ?, ??? ??? ??
CLU (1974-77, MIT? Babara Liskov)
??? ??? ?? ??? ?? ?? ?? ?? ???, ?? ???, ????
?? ??? : cluster (Simula? class? ??)
?? ?? : iterator - ???
???? : Ada? ??? ?? ??
19. 19 1970?? : ???, ???, ?? ?? 1970?? ?, ??? ??? ??
Euclid (1976-77, ???(Toronto) ??)
PASCAL? ??? ??
PASCAL? ??? ??(aliasing) ??, ???? ???, ???? ?? ?? ??
????? ??? ??? ???? ? ?? ??
Mesa (1976-79, Xerox? Palo Alto ???)
PASCAL ??? ?? ??, ?????, ???, ?? ?????? ?? ??
??? ?????? Modula-2 ???? ??? ??? ??
20. 20 2.5 1980?? : ??? ??? ?? 1980?? ??? ??
Ada ??(?? ??)
??? ??? ??? ?? ?? - ??(Scheme), ML(Meta Language) ??
??? ????? ?? - Prolog ??
?? ?? ??? ?? ??? ?? ? ??
1980?? ??? ??
Ada
?? ???, ?? ????(package), ?? ??(task), ????? ??
???? ???? ???, ?? ??
?? : ?? ?? (? 2? PL/I ???)
21. 21 2.5 1980?? : ??? ??? ?? 1980?? ??? ??
Modula-2
1982-88, Modula ??? ??, ???? ???( N. Wirth)
PASCAL? ???? ?? ??(?? ??? ??)
???, ??? ???? ??
??? ??? ????? ?? : ???? ??? ??? ??? ??
?? ???? ??
??? ? ???? ??? ??? ?? ?????? ? ??
22. 22 2.5 1980?? : ??? ??? ?? 1980?? ??? ??? ??
??(Scheme)
1975-78, MIT? Gerald J. Sussman? Guy L. Steele, Jr. ??
LISP ?? ??
LISP?? ?????, lambda calculus? ??? ???
Common LISP : ??
ML (meta language)
1978, ????(Edinburgh) ??? Robin Milner ??
?? ??? ??? ?? ?
PASCAL? ???? ??? (??, ?? ??)
Miranda
1985-86, ???? ??? ???? ??(David Turner)? ??
23. 23 2.5 1980?? : ??? ??? ?? 1980?? ??? ??
Prolog (1972- , A. Colmerauer? ??)
??? ??
???? ???? ?? ??
SETL (?? ??(NYU)? J. Schwartz)
???? ????? ??? ??? ? (???, ??? ?? ??? ??)
?? ??
Smalltalk (1972-80, Xerox?? Alan Kay, Dan Ingalls)
?? ?? ??? ??
C++ (1980, Bjarne Stroustrup)
C ??? ??? ?? ????
Eiffel (1980?? ??, Bertrand Meyer)
PASCAL? ????? ??? ?? ?? ?? ??
24. 24 2.6 1990?? : World Wide Web ????? (Java) 1990?? ??? ??
? 4?? ?? ??
????? ??? ??
????? ?? ?????
??? ???? ?? ??
HTML, Java ??
1990?? ??? ??
Java??
James Gosling ?? ??
C++ ?? : ?? ?? ??, ?? ?? ??, ?? ?? ??
C++? ???? ??? ??
C++ ?? ??? ????, ? ????, ???? ?? ? ??
? ?? ?? ?? : ?? ???
Java? ????? ?? ? Web ????? (C/C++?? ??)
25. 25 2.6 1990?? : World Wide Web ????? (Java) Java? ?? : ???? ??? ?? ??
???, ??? ??
?? ??? : ??? ? ??
?? ?? ??? ??? ??? ??(C++? ??)
??? ?? ??? ??
??? ???? ??, ??? ?? ??
??? ?? ( ?? ??? ?? ?? : C/C++? ??),
????? ?? ? ? ??? ??? ??
???? ?? ?? ?? ?? (????? ??)
??? ?? (synchronize) - Thread
??? ??
??? ? ?? ??? ?? ( widenning)
?? ?? ?? (??? ??)
Java ??? - ??????? ??
????? Java?? (C++??)
26. 26 2.7 ????? ??? ???? ?? ????? ??? ????(??? ?? 2?? ??)
FORTRAN, COBOL,BASIC ? : ???? ??
PL/1,PASCAL, C ? : ???? ??? ?? ??
Prolog, SETL? : ??? ??
27. 27 2.7 ????? ??? ???? ?? 4?? ??? ??
?????? ?? (software crisis)
4?? ???? ?????? ???? ?? ???? ???? ?? ???(editor)? ???(debugger), ?????? ??? ????? ?? ?????? ?? ??? ??? ??
??? ? : SQL(Structured Query Language), Lotus, Delphi ?
??? ?? ?? ?? ????? ? ? ? ?? ??? ???? ??
?? ?? ??? ??? ?? ??? ??? ?
??? Visual BASIC, Visual C++, Power Builder? ? ??? ??
28. 28 2.7 ????? ??? ???? ?? ?? ??
???? ??? ?? ???? ???? ?? ??? ??? ?? ??
1979, Winograd? ?? ??? ?? ??
??? ??? ? 5?? ??? ???? ?? ??
?? ???? ?? ?? ??? ???? ???? ??
29. 29 2.7 ????? ??? ???? ?? ????? ?? (software crisis)? ??
??? ????? ???? ???? ??
?? ??? ??? ??
??? ??
?? ??? ???? ???? ?????? ??? ??
?? ??? ??
????? ??? ??? ??? ?? ?? ??
??? ??? ????? ?? ???? ?? ??, ?? ??? ?? ??? ????? ????? ???? ???