dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s)...
Transcript of dgafe .Y*, 3arim/pub/proriron/program3.pdfn % #(1940s-1950s) nFORTRAN(1960s) nALGOL(PASCAL)(1960s)...
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
��(��
n �*!%
– �� ���%)B– ��'3$(��– ���5</:7=/– ��(�'����– �� >� @04;?2=A(��– 819?;(��
n 6.=3
– �� ���%)&-'���B– '"�+,#�B– �%�)B
��*!$�#"�����
�'������
n����% #(1940s-1950s)� ����
nFORTRAN(1960s)nALGOL(PASCAL) (1960s)n1970s: C��� ��������
n1980s: C++, Objective C, SmallTalk n1990s: Java����&�����
nLISP(1960s)nPerl, Python, Ruby, Scala ...
������
�&;�*, _���*,`
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��^
X = X + 1
������
n � 3� ���������"n 1'��n 2'�������$%#��n 3'�
while (x != A[i]) {i := i – 1;
}
��!��&
�+����&)"('��
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 [��#*$]
���
��/ !���*-&,+�
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����
.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
�����
n ��$���*��#��*��
n ���
n ��+�&� ,
n ���
– IF�, IF-THEN�, IF-THEN-ELSE�– CASE�
n (�!�
– FOR�
– WHILE�– DO-UNTIL�
n �����$���'�!
n "&�
– GOTO�+�)%�����,-
– CATCH-THROUGH�+��$��,
!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#
��)� 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
���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
>@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*
��-��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(
'"(.,�������
n �����
– *�%*+����� ��������).!����������
• ��������������������)"%)*!��(,#��� ���������!������� ����&$',+���
n ��# .&
– -.�,���-.$,�
��(��
n �*!%
– �� ���%)B– ��'3$(��– ���5</:7=/– ��(�'����– �� >� @04;?2=A(��– 819?;(��
n 6.=3
– �� ���%)&-'���B– '"�+,#�B– �%�)B