�I�u�W�F�N�g�w���𒴂����FThe Rational Edge�i1/3 �y�[�W�j

The Rational Edge���F���\�t�g�E�F�A�J���҂�Gary Pollice�����́A�I�u�W�F�N�g�w���̊T�O���ŏ�����w�ԃR���s���[�^�T�C�G���X�̊w���́A�\�����v���O���~���O�e�N�j�b�N�����ݍ��񂾃v���O���}�[���A�������\�t�g�E�F�A�J���v���W�F�N�g�ɉ��p����Ƃ��ɋ�J���Ȃ��Ǝw�E����B�{�e�ł͍\�����ƃI�u�W�F�N�g�w���̍l�����l�@���A�I�u�W�F�N�g�E�t�@�[�X�g�̋����@�̃����b�g��������āA�A�X�y�N�g�w���̃v���O���~���O��@�����y���钆�ł̃A�X�y�N�g�E�t�@�[�X�g�E�A�v���[�`�ւ̈ڍs�̉”\�����l���Ă݂����B

» 2005�N11��12�� 12��00�� ���J
[Gary Pollice�i���[�`�F�X�^�[�H�|�������Ɩ��w�����j�C��IT]

�@�M�҂́A��w���̂��돉�߂Čg������n�C�e�N�n�̎d����1�‚Ɋ֘A���AALGOL�̃T�u�Z�b�g���w�K����N���X��1���Q������������4K�o�C�g�̃������𓋍ڂ����R���s���[�^���v���O�����ł����B�M�҂́A�C�یv�Z��������������̂ɏ\���ȕ��@���w�񂾂̂��B���܎v���o���ƁA�}�V���𐧌䂵�Ď����̖��߂ɏ]�킹��Ƃ������Ƃ͋���Ȗ��͂������B���Ȃ��M�҂́A�蓖���莟��̋��{��O��I�ɒ��ׁA�ق��̌�����w�K���n�߂��B�������M�҂́A�D�ꂽ�R�[�h�������ɂ̓R�}���h�V�[�P���X���܂Ƃ߂邾���ł͑���Ȃ����Ƃɂ����ɋC�t�����B�l�ނ͍ŋ߂ɂȂ��č\�����v���O���~���O�𔭌����A�M�҂��A���̎�@�����łȂ��w�i�ɂ��闝�_�ɂ��������ꂽ�B�ꐶ�������ĔM���ł���Ώۂ����‚����̂��B

�� �\�����v���O���~���O�̏Љ�

�@�M�҂́A�\�������ꂽ�v���O�����͐���\����A�����ĉ��p���邱�Ƃɂ��쐬�ł���A�ƍl����Bohm-Jacopini���_�𑁂������Ɋw�񂾁B���̕�����₷�����_�̓v���O���}�[�ɕ��L���e����^�����m��1�n�B��������A�����̓v���O�������\�z���邽�߂̑I�����ɂ‚��čl����悤�ɂȂ����B���̍l�����́A�e��v���O���~���O����֎��X�ɉe����^���Ă������B1970�N�㔼�΂ɂȂ�ƁA�D�G�ȊJ���҂����͍\�������ꂽ�v���O���~���O�A���́A�f�U�C�����g���ċƖ��\�����[�V�����̊J���Ɏ��g��ł����B


�m��1�n�@���̗��_�́ACorrado Bohm��Giuseppe Jacopini�̋����ɂ��1966�N5���o�ł́uFlow Diagrams, Turing Machines, and Languages with Only Two Formation Rules�vACM Communications 9�i5�j�ɂ���B�����A����ɂ͏��ԂƑI���̂킸��2��ނ̐���\�������Ȃ������B���̌��Ƃ��i�݁A���֐������̂��߂ɔ����i���[�v�j�\�����lj����ꂽ�B


�@�����̃R���s���[�^�T�C�G���X��MIS�̃J���L�������́A�\������@��͐������B�@�\�����͐�΂ł���A�c�[�������ۉ��̃��x���������グ�A�݌v��̕��G�����Ǘ�����̂ɖ𗧂‚悤�Ɏv�����B�\�������ꂽ�t���[�`���[�g�̎g�������w�сA�W���N�\���\�����v���O���~���O�@�iJSP�j��A�����̕K�v�ȋ@�\�̓���ƕ��ނɏœ_�𓖂āA��A�̃��[���Ɋ�Â��Ă��������W���[���Ɋ��蓖�Ă��@��񋟂���\������͐݌v�Z�@�iSADT�j�̂悤�Ȏ�@�������ꂽ�B

�@�v���O���~���O�̌o������������΁A�\������@���w�Ԃ̂͊ȒP�������B���o�̗L���͕ʂɂ��āA�����͌��������łɎ��������̂��̂ɂ��Ă����̂��B�\�����v���O���~���O�́A�����̐��E�ςƑ������ǂ������̂��B

�@�������A1980�N��O���ɃI�u�W�F�N�g�w���iOO�j���o�ꂷ��ƁA���ꂪ���I�ȕω��𐶂ݏo�����B���̃I�u�W�F�N�g�w������ł���Simula��1960�N��ɂ͓�������Ă������A���̉e���͒����������A�唼�̃v���O���}�[��1980�N��܂ł��̑��݂�m��Ȃ������B�{�i�I��OO�u�[���̈������ɂȂ����̂́A����ł���A�‹��ł�������Smalltalk�������BSmalltalk���J�������A���̗L����Xerox Palo Alto Research Center�iPARC�j�̌����҂�́A�����ׂ��r�W����������ɑ΂��Ďv���`���Ă����B1978�N�ɃA���]�i�B�g�D�[�\���ŊJ�Â��ꂽFifth Symposium on Principles of Programming Languages�ł́ADan Ingalls��Smalltalk�̘_���𔭕\�����B���̘_���̓������������̕`���r�W���������Ȃ薾���ɏq�ׂĂ���B

�@Smalltalk�v���W�F�N�g�̖ړI�́A���̐��E�ł�����N��w�̎q�����x�����邱�Ƃ��B�\���Ȍ��ŋ��͂ȃ��^�t�@�[����肵�Ċ��p���A1�l�̐l�Ԃ�������e�L�X�g�A�����ĉ���摜�܂ŁA���܂��܂ȏ��𗘗p���A�n���I�Ɉ�����悤�ɂ��邱�Ƃ��ۑ肾�B�����̌o���ł́ASimula�̃N���X�ƃC���X�^���X�̊T�O�́A���\���̌��o�������^�t�@�[���B�����悤�ɁA�����̋L�q�ɂ̓��b�Z�[�W���M�̃R���Z�v�g���Ȍ����ˆ�ʓI�ł��邱�Ƃ����������B�����́A���̋@�\�������V�X�e���́u�d�l�v�Ƃ��Ē񋟂���̂ł͂Ȃ��A�����2�‚̃��^�t�@�[��Smalltalk�v���O���~���O����̏o���_�Ƃ��邱�Ƃɂ����B���̌��ʁA�p�[�\�i���R���s���[�^�Ńe�L�X�g�ҏW�A�f�o�b�O�@�\�A�t�@�C�������A�O���t�B�b�N�X�\����Ǝ��Ɏ������铮���̌y���ȃC���^���N�e�B�u�V�X�e�������������m��2�n�B




�@Ingalls�͎��ɁA�uSmalltalk����́A�֐��ł͂Ȃ��I�u�W�F�N�g�����S�ɂȂ��Ă���A�R���s���[�^�T�C�G���X�̌o���̂���l�́A�����ō�������ꍇ�������v�Ƒ����Ă���B�����A����͍T���߂ȕ\���������BCOBOL�AFORTRAN�APascal�Ƃ������葱���^������g���ăv���O���~���O�����Ă����l�X�́A�I�u�W�F�N�g�w���̕��@�_�𗝉�����̂ɂ��Ȃ�ꂵ�񂾁B�������ASmalltalk�ɂ����_�͂������B�ς�����V���^�b�N�X���̗p���Ă���A���ꂪ�ꕔ�̐l�ɂ͌���ꂽ�B�������A���̊‹��Ɨ͂�ڂɂ����\�t�g�E�F�A�̖{���̃v���́ASmalltalk�������ƒm�肽���ƍl����悤�ɂȂ��Ă������B

�@�@�@�@�@�@ 1|2|3 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);
���Ȃ��ɂ������߂̋L��PR