+ All Categories
Home > Documents > dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s)...

dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s)...

Date post: 08-Jan-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
18
dgafe.Y*, "3 &M*,h'i% ! bf`c\j20151 !Hdgafe.Y*,,IZVKWj)([/[^YZj+(hiL#QWK] Rkbf`cZ-_$LJUSZ\j[0\+(ZJ_]R[XONTPKk 20161j% [bf`cl :DDA544FFF2;=?3;CD3:@=E96;3683<A4G6B;>44AE74AB@B;B@?4
Transcript
Page 1: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

dgafe .Y*, "3―�&M*,h�'i―

���%

��!�

�bf`c\j2015��1 � ��!�Hdgafe .Y*,,IZ�VKWj�)([�/[^YZj�+(h��iL�#��QWK]Rk�bf`cZ-_$LJUS��Z\j��[�0\�+(ZJ_]R[XO��NTPKk

2016��1 �j���%

��[bf`cl:DDA544FFF2;=?3;CD3:@=E96;3683<A4G6B;>44AE74AB@B;B@?4

Page 2: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

��(��

n �*!%

– �� ���%)B– ��'3$(��– ���5</:7=/– ��(�'����– �� >� @04;?2=A(��– 819?;(��

n 6.=3

– �� ���%)&-'���B– '"�+,#�B– �%�)B

Page 3: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

��*!$�#"�����

�'������

n����% #(1940s-1950s)� ����

nFORTRAN(1960s)nALGOL(PASCAL) (1960s)n1970s: C��� ��������

n1980s: C++, Objective C, SmallTalk n1990s: Java����&�����

nLISP(1960s)nPerl, Python, Ruby, Scala ...

Page 4: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

������

Page 5: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

�&;�*, _���*,`

n �'

– +$ J(7�&;J7B1��J5T�U�S>E�&;G>E�'?T2

– �&;U�L?<GIQCE��_YZ\`J�U�8H:R+$U(7*,

n O7�>)-?TG

– W]V[XUa�0_�&;`J�LG>E�!?TW]V[X*,bW]V[XJ �IQSa��J�P�U��=@T<GF��U?Tb_YZ\P�.NJ3��"4UOD`

• ⇔/��*,_/��>9�AH6`– �%#H*,c�`C*,aFortranaAlgol_Pascal`– ���*,_imperative language`GO�M

<<K��^

Page 6: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

X = X + 1

Page 7: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

������

n � 3� ���������"n 1'��n 2'�������$%#��n 3'�

while (x != A[i]) {i := i – 1;

}

��!��&

Page 8: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

�+����&)"('��

n ����������!� ���&)"('������� %"�������

#Register for A is R1#label WHILE is 2110 MOVE 120 1'21 ADD R3 R1 R222 MOVE R3 132…2930 JUMPIF R1 ’21’31 [��#*$]

���

Page 9: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

��/ !���*-&,+�

n ������!���%�$���*-&,+ ������)&"���#��

#Register for A is R1#label WHILE is 2110 MOVE 120 1'21 ADD R3 R1 R222 MOVE R3 132…2930 JUMPIF R1 ’21’31 [��'.(]

[��'.(]A = 0while��(A) {

A = A +1;} [��'.(]

C����

Page 10: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

.F ��v���v

n E.W.zrux|�b$-akm��v���vb;Q&�~�zr��n Yn��c�LU\jU\jMb��v��R(E[]Z

n ��v��p.F W^)TV`p$�– �bNm4pw���{�`OP�_g`im– >@.%a:hCgnZ=%�G#��,�%�H"��TlDW����akm��.Fp5Om�

– LGOTO+�AM_A�p�SBVWZ�

n 3�_c�6W^Om– ��on^OmefXd^bK9>@c�Xd^.F ��v���vbxyr�_Nm�

VVc���

.F ��v���v / E.W.zrux|�, C.A.R.��q, O.-J.z��< ; I�2�, ��!, 1�0�?(wrs�x�r�����J8/ ; 32), wrs�x7, 1975

s}t��zrux|��E. W. Dijkstra, 1930�5*11' - 2002�8*6'�wikipedia: Ls}t��zrux|�M

Page 11: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

�����

n ��$���*��#��*��

n ���

n ��+�&� ,

n ���

– IF�, IF-THEN�, IF-THEN-ELSE�– CASE�

n (�!�

– FOR�

– WHILE�– DO-UNTIL�

n �����$���'�!

n "&�

– GOTO�+�)%�����,-

– CATCH-THROUGH�+��$��,

Page 12: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

!0#=

n /*6+-8;7:9.<�0&%�)"#3

n ������ =Böhm*Jacopini,12��$4%��

– Böhm, C. and Jacopini, G. 1966. Flow diagrams, turingmachines and languages with only two formation rules.Commun. ACM 9, 5 (May. 1966), 366-371

n 1'-�2�*1'-��5�'8;7:9.���-3'-�� ��,1&(���

– ��

– ��

– ��

!0#

Page 13: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

��)� T����

n GANJDL5!%

– � 7R�34<���>R���'0���5��2)<:&5��+=1%<

n �"�FM@KHN@

– ���>�� 2��FM@KHN@-<67P�#6Q����( %

– FM@KI� 7R.=(�>-<'(FM@KI6�$PC?BEQ';��,9-%:&54/1%<8)S

**7�O

Page 14: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

���U7QBKS<V)AS@341U��V

19 XY� 5EOS>2Q68:>G".*!/,-7QBKS<)���;=?ODN )��

� X (=130��V

R1

O9:< R1

��ADD R3 R1 R2

R2

R3

HIM U���V���W

��R����HIM��

9JQC����9JQC��

��)��(�/$'CP6LFQ6#-)*

��(*%!+0&T

Page 15: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

>@DH?F4�6�;.38:AE=CB

n >@DH?F

– ��)4&0��4$:<���,/74

n !�G��G��38:� ��1�6�;.:+1389#��42%goto�<��,2%AE=CB(����

– goto�4��3 -:"�4��• Dijkstra, E. W. 1968. Letters to the editor: go to statement

considered harmful. Commun. ACM 11, 3 (Mar. 1968), 147-148.

'5*

Page 16: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

��-��9��

n BFNQEP?��1>/58<=&��9��8#04&��9��?��1>��,7)

n KCLQN�9$)� �GOAMIPA,��

% 230&KCLQN�07)GOAMJ;����

n �:&�*�9 �+,"�

% '6@7!�;HD.�+>RRR(

Page 17: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

'"(.,�������

n �����

– *�%*+����� ��������).!����������

• ��������������������)"%)*!��(,#��� ���������!������� ����&$',+���

n ��# .&

– -.�,���-.$,�

Page 18: dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s) n1970s: C n1980s: C++, Objective C, SmallTalk n1990s: Java & nLISP(1960s) ... .F

��(��

n �*!%

– �� ���%)B– ��'3$(��– ���5</:7=/– ��(�'����– �� >� @04;?2=A(��– 819?;(��

n 6.=3

– �� ���%)&-'���B– '"�+,#�B– �%�)B


Recommended