t n i tt ^ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: fortran, lisp, algol pascal...

28
<AT?>Ja-Tc nI <AT?=BTTc/ni ^Ymk NCZS5@69A;68hh ZSJ[hfj ,2 2 2 1 d`ys 0 a8?4:05NPrCh d`ys<AT?>Ja-Tc.X*+5Mrb/os/2-.5t tb^Y!opgl%+1&6a8?4:.q3l!)'dc.05e]/_e0ttb.31&/ ,#bi"($6 NPrCh5^Ymk

Upload: others

Post on 25-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

T nT T

hh

, 2 2 2 1 ys 0

a 5 r h ys T 5 b 5tb o l 6a dc 5e t b

i 6r h5

Page 2: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

-�� ��

n ���� ���� �������#)�.+

n �������#)�,(�&� ���*��!*� ���� �$"*�&�*�#)�'/%���

Page 3: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

%.��.���N��O

l HK:JIL:��.��,��P��PJEM>=7PF6?L5600�

l � .C@�+'QN4#2-$-)(2����+/*/1"O

l ;LD8J.�����[ALSU’09]A.V.Aho, M.S.Lam, R.Sethi, J.D. Ullman, “Compilers,” 2nd, Addison-Wesley, 2009.N!403�BJ<LGA9 O��5��&*!3Q

Page 4: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

��"

����n �����������!%n �������!%)(

�����n $'��'�������!%n �����&���� �&!%n �����������!%�#��

Page 5: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

���

n ������ ������ ��������

n ���������� ����� ��������

Page 6: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

0�������(,41

n !6*���.– ����/�-�

n &����.– char, int, large int, double,

n (,���.– )2�array��(,��struct�

n &�����(,– ����linked list�������stack��+��2�queue�

n %"����(,– '�35$�binary search tree��#735$�

balanced search tree���� � �hash table�

���������+C-Pascal,

��+����,

���+C++-Java, etc.,

�� �'�&�$�!* ���������

"(�%#)��������

Page 7: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

��������n 1940s-1950s ��: �������n 1960s: FORTRAN, LISP, ALGOL PASCAL�n 1970s: C��n 1980s: C++, Objective C, SmallTalkn 1990s: Java Scala�n Perl, Python, Ruby, ...

Page 8: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

C

n C

1 U

n CP 1

Page 9: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

�����������

�� �

���� ��)��!,"� ���.�+#��&��."-#+)� �(��.�*

���� �(���(��#+��)��"-

��)'$%��"- '���

Page 10: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

a U n P U R Pn P U

����� o Ut

U P Ul U o ) E

n p U ���� (, -1 L e v

n R PR P U tU d l U i

U )C i U ) r

Page 11: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

"&Q�'(2019 ��P8BMDIKD8��

n �/8BMDIKD9)����$;29GBECNF5�:A@�(#$7�OCMHBLP1A3)�����4�!1A3,@*

n 08��49)��)BMDIKD5CMHBJ8�9+,;,4+@*

n �8>-6BMDIKD5CMHBJ8�( 6��.+@*0A?=BMDIKD�7�<@05.+@

– ����$BMDIKD���)�-���– �%���BMDIKD

• ��� �(AST)(��#%�$+

– �!�CMHBL��OJITP• ��).50230&�#'!*�� �&�",+���-���(��(/51.4#%�� +

"&

Page 12: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

�#� !������� ����

�#� !������� ����

n Perl*n Prolog*n Python*n Ruby*n JavaScript*n AWKn LISP*n PHP n VBScript (VBasic�)

����������#��"�����

n Java (JVM)n Scala (JVM)n Perl, Python, Rubyn ...n Smalltalk (Smalltalk

VM)n Pascal (P-code)

*) ���������

��

Page 13: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

������ ����� ���

�� ��

9G>HBE>�

nBF<DC2��/����2�)(��

n���1CPU32��1�4�&7,51#��(�%

n �&,BF<DC2?:@;(�� 1*'�&0%

=GA9D�

n$6'+5CPU32��1�4�&68-%72."�1��

n$6'+5#$7�2

BF<DC2?:@;(��

nBF<DC2��/����2�)(�!

Page 14: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

n ( ((

-) - )2

--

)

) - )2

-)

1)

Page 15: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

n

) -- 2

(

Page 16: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

f aCt

n

f aC uS

oimn

) )nA f g t

g CwrC A t

n e f ggA p f a

A E f g

Page 17: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

O R

n 0/ 5 0 5 : 5 0 44.: . 5 // 4 5 4.

n / 4 0 0 0 5 . 0 0 0 04 55. 04. 4.: .

Page 18: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

n 5 9 4 n L F F S

) G O A ia

n S 086 n S 0 n L F F

9 1

Page 19: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

( ) c

n ib el 2 8 ( n 0 10 k a O O

2 ( - (

n elTjb C () 27 )

GPgoel 2 A 9 A ) G KG go 3 3/ ))

n L PK T p- ) 1 7 A9 7 - )

Page 20: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

P

n JHI B S 2 2 n ( U 9 9 0 2 2 n 15 M BG )

2 2

Page 21: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

O 5LU

n 4 ) )(U

Unr a 5 L

xt F7LCB

n

1xt U

9L o i U

a oCB

Page 22: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

J a c nv

n ) 2 3 5 ) nv P O lI

a s j ltr

n 1 1 b l P O l nvi e c C

-8 98n 01 317 (

nv

Page 23: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

i s L P P

n 378 51 775 9 S o9 m R tc9 a r P

I r O I G r017

n ) 9 e9 e G i r

Page 24: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

aS bSmu

n 1 3 ( re C R mu

n 09 (( P R R mu1 3 C l

n 4 336 3 ( ( P R mu

+ 8 J PR muyv t b k

Page 25: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

PM 94 B IBS

n ( )0 6 S0 R B IBS 91O1 O 1 7 ) AIC C

Page 26: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

GB�^��5:(87<(Rc�Fj

n GB�e��� >C���TZ��eD�TZ������ >D ��TZ���)<2$8�� %�1�6,/�=

� *3�/�]N��� *3�/�]N���$<+59+���)<2$8� kgLn���0$-#4Lnc

� ]N��! \lLX� ��� -&*.`I�0,.;�'fd���8$489�iH�� Rc"QJ

n =K�W 5:.+$3<(�a[WP� 5:.+$5WP�*3�/"mo����E@h_"YU

� V?�� WP�*3�/�MAO"Sb

Page 27: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

n a

n J C

J C)

v

Page 28: T n I TT ^Ymk harim/pub/proriron/program1.pdf · n1940s-1950s : n1960s: FORTRAN, LISP, ALGOL PASCAL n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java Scala nPerl, Python,

,'�A(

�����n ���7C�����$�!�&�2:n �$�!�&�2:�B>n ,*

n?@?1�6��2:�-D�8/0n<���!�� �4 ��$�!�&�2:�7C�.5

��%��n 9=�)=�$�!�&�2:n �&��"�;��&��#;2:n ����$�!�&�2:��3+�