�I�u�W�F�N�g�w������ �F The 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
�@�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
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);