情報知識ネットワーク研究室arim/pub/proriron/program2.pdfn1940s-1950s : n1960s: FORTRAN,...
Transcript of 情報知識ネットワーク研究室arim/pub/proriron/program2.pdfn1940s-1950s : n1960s: FORTRAN,...
2
�BF@C<J2015��(� � ��)DGAFE�%9!#,*:�6,7J� �;�&;>9:J�"�H��I-����17,=2K�BF@C:$?�-+53�:<J��;�'<�"�:+?=2;8/��.40,K
2016��(�J����
",A<1=U����V
n ��B��A",K8D9-
n #�$�?��B��AF;:%+>F;:G2@� 4�+7JD9-
n 2019��U��V– ��BNRMP?W�B��QSTO3H>D9X– .D?EQSTO/U",�B7160:I)���VBB� 3H'L>UD:C�(VW 5?�1>9X
– D?EQSTOB� C��NRMPA0ID9X
�*NRMPPDFU��NRMP��A!&Vhttp://www-ikn.ist.hokudai.ac.jp/~arim/pub/proriron/
!)��)��H��I
l BE4DCF4��)��' �J���JD?G871J@09F5600�
l ��)=:&"KH/�-( ($#-���&*%*,�I
l 5F>2D)�����[ALSU’09]A.V.Aho, M.S.Lam, R.Sethi, J.D. Ullman, “Compilers,” 2nd, Addison-Wesley, 2009.H�/+.�<D6FA;3�I
���������
n 1940s-1950s ��: ��� �����
n 1960s: FORTRAN, LISP, ALGOL�PASCAL�
n 1970s: C�
n 1980s: C++, Objective C, SmallTalk
n 1990s: Java
n Perl, Python, Ruby, ... , Scala, Haskell
������ �� 6
�����
n ���������– ����
•27)64"����!�― ������27)638)!�� ���� (�), ��+1-&(% (��)
• *8059,!/9.&'%�27)64!��$ #��� "���
n ��� �����
���%�
� �n ������������$'!�+,�n )�������&(����n C#*!-*n ������������ "
– ���
• 6;-:8&#���%�― � !����6;-:7<-%�������� (�), �/51*,) (��)
• .<49=0%3=2*+)"6;-:8%��(�'���$&� ��
��������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, ...
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.,
�� �'�&�$�!* ���������
"(�%#)��������
� ���������
B•• 6 / )• 0 1 2
• M (( 0
6 I0 1I )
From geek.com: Google server firmhttp://www.geek.com/articles/chips/up-next-for-google-enterprise-wars-2009078/
From http://www-06.ibm.com/ibm/jp/lead/ideasfromibm/watson/
��������������� ��������������
2015������� ��� ���11
����GCOE����, 2012 OCT
���������
CPU
����
�����
CPU
n CPU (Central Processing Unit):������– �������������– ��������
•� ���– �����…– �������– �������������
����
n ��� ��– �����
•������������������ ����
n ������– ���������
n ���� ��– CD-ROM,DVD…– �����
�� ����������
15 OS����
int A, B; A = 2; B = 3; C = A + B;
C�� ���
�� ����������
16 OS����
int A, B; A = 2; B = 3; C = A + B;
C��
#address of A is 120#address of B is 121#address of C is 132MOVE 120 '2'MOVE 121 '3'MOVE R1 120MOVE R2 121ADD R3 R1 R2MOVE R3 132
���
����������� �����
17 34�� �'.0#�/���#(
��������l ��l CPUl ��l ���l ����l ����
��������/%+0!���� "$.&-��
��X (=130�2
R1
.��! R1
��ADD R3 R1 R2
R2
R3
)*, 1����2
ZcS�?@BgMn ZcS�?@B �qn�Y������'J�%�� )+�1-3�$�*`o��'r��&��m+� '$�– p"I�n[�1F91int = !���2VW��^��h :9./,N� DRAM�1?@B4C 1;68��
n <E0A> dT�f���eW�l*`o�'�#��?@Bkj*aP
n <E0A> �eW�\L�75�`o�(� '_U=-G5��KfOb*iQ��XR
n eW�\L=,9D2�eW�l�r�H�]VW
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
5�/37;0*+ �/3��#(�����&���&!%n245���/3
– �����On/Off�.1��1�0�6�)�� �����->
– 101 (245) = 5 (1045)
'�#" �/8,�$�#%n:2�5��1045�1645�845�245�9= /8 ��n1645���/3
– 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F– < F0 (1645) = 240 (1045)
��� ,&
n 3*�76�/'���1�– C-5 int �32bit=4byte)��
232!��������3= ����9 �40.) +�)��n �������-5������ 2$
– "0 �2$�3*�-5• C�
– ����� 4%8�#���( �2$• Lisp, Java, ...• Garbage Collection(�������������������������) �
/"2(�:7n /"2(�5H� )( AQ����S�=JK4!+1'�– )(�OP�F���M,"*��NL�B6������
n /"2(�8?– &x : D9x�/"2(– *x : /"2(x�AQ�����)(
n ���– Java�'%0.*;Ipython, ruby��$-&#%*��C++�ERreference���<C3��5>�/"2(��@ �G��
a b c ¥0 3450 34505098
char short int int
1 2 3 4 7 9
25���%����
n ��%��pointer– �"�+.�-����– )60#�"����"�1& ���– �$�! %������ �3�4('�,�/*���
���� ���
n �����������
30
x
1 2 3 4 7 9
int x = 30;
int y = 20;
20
y
5 6
&x � 1�&y�5�*((int*) 1)�30� *((int*) 5)�20
30 = 0000001E (16��)���1,2,3�00, 4�1E���
�������24
./�
�'+-%�, !#%)
(�,$ p
132 � x
5
C�����
² (�,$p������x��x = *p� ��
²�x���(�,$p�p = &x �������
+"#$+&*������
)-"� �8 �'$�!#
n *'(1%'�)�7���� �10%')
n 'x�+�2 !#
x = S�B�2A
n ;6��[;6�][('�][:'�]���� – ;6�(sign) S (1���) : 0=>&�1=>/– ('�(expponent) A� a����;6.0'�: – :'�(fraction) B�b����;6��0'�:
•'�9�5���,4'3�� ���
��
$'����.��" ���n IEEE�(�IEEE754�
– +)���(�C, Java�– � ��#"�����1��&!"(excess binary)����float: a - 127, double: a - 1023�
n �� (C�float): – a = 8���, b=23���– ���1������4���– ����223»23*106
n ������(C�double): – a=11���, b=52���– ���1������8���– ����252»22*1015
��
*-�.��" "�%"10�
x = Sign�Fraction�10Exp
n [0,�][#"�][/"�]– 0,�Sign (1���)– #"�Exp� a���)– /"�Fraction�b���)
LB/04�k^/04
n k^/04�K�OS��CPUlG*!&#�9>�NZA/04����Q�EP�M_– <fe�`O�DT�j����K�/04UF– NZA/04Y���D������Xc�?g
n NZA/04�lG*!&#� #'&&,�+�100hH7[�– -5$3.�*�(NZA/047���;:�-5$3.�lG*!���;:���WBaV6d�[�
– ����lG*!&#��i�8�C�"1)%2���=�*�(�]@�i�;:�� ����<b
– /04�SaRC�JF�\I
���������
n ������ �����– Hello World
C#include<stdio.h>void main() {printf(“Hello World¥n”);}
Ruby#!/usr/bin/rubyprint("Hello World¥n")
Javapublic class Hello {public static void main(String args[]) {System.out.println("Hello World!");}}
�������������� 2!#:������@UNIX��◆ 4;%87>C��?: cat&6</◆ ���8#389: char C = getc(stdin)
– #define BUFSIZE 1024– 1+2! char buf[BUFSIZE] – '(,7&=:����
◆ '(,7&=:: read(stdin, buf, BUFSIZE)◆ -1#(
◆ -=*��: SCSI◆ 0=/-"($&<.;=8=
◆ )$*����
◆ -"($���5+/ �(seek)
C�$*"(%
n C�$*"(%� G=�;A�2,FB�C�$*"(%�HD6�0�$*"(%� ��7:���5@&#'�)�9�- �����>���$*"(%�?846�0�3<��� �
�I+�J!�3<�� �$*"(%� I+� ����$*"(%��./�1����J���KE
�� ����� ��
n �� ������������
void �����(�) {=��(�);if(=||=�){
printf(“��� );return;
}if(�����(�)){
printf(“���");return;
}printf(������");
}
void �����(�) {=��(�);if(=||=�){
printf(“��� );return;
}if(��1�1){
printf(“���");return;
}if(��2�11){
printf(“���");return;
}… … … … … …printf(������");
}
7�#&�%$
n �"� !�#&�%$– �����(.�18 �#&�%$– ,:46��� goto3�2������– 9'+0����;5– -/)* �������� ���0�����
��'-�*(�@H
n KS9– 4:?�I:?�5E��– ).&����– �.%.&�/1�– <M� ��/1�C�for,�'�0�F���
n 60PJ– �,!+"(�AN�=8�– LT�>G� ����R:#�$��32�U:�#�$� ���
n B;79�QOKC9– �����OS�D�����
���%�$����
n ����18l59)*l !$���l0+6@ �(',3l���&���-2<
n ���/=l!�"#$��Modularityl74.:81 Reusabilityl?���� Readabilityl;>���� Portabilityl ...
�������������� ��2016/04/07 36
*,$%�3�#n *,$%� � �'2�40��!
– 1. � ����
– 2. ����!����
– 3. ).�/1��!����-
– 4. �������(+
– 5. "&���
2016/04/07 37
E��"� ��@5�(,
n �"� ��:�)�6=�<24– &+��K��"� ��JC�K�– $�1�����M8��"� ���DO4�G��A904�G�
n ����!.�-7– 3L���N>�F/�� ����/?���A904�'�
n IB*��"� �#��;H�%,– Design Patterm
• 48+759+������ ��%2-:9��� – UML (Unified Modeling Language)
• ,3/()&"�����– XP eXtreme Programing
• 3':01.*%�� �#�48+76%���!��� �#���$��
�"�!��-)&'
n #$-��"�!��1���������.���
n %+��(*&'– ,2�0�– 3�0�– /4���(pseudo code)– �"�� ����� �
•���������� ������
���
n �������������&� ���– ��������%��� � #���
n $�������!����"