аЯрЁБс;ўџ ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ§џџџ ўџџџ ўџџџўџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџRџџџџџџџџ РF€œуŒ>Л€CompObjџџџџџџџџџџџџ\WordDocumentџџџџџџџџ хObjectPoolџџџџKŒ>ЛKŒ>Лўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ:;<=>?@Aўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџџџ РFMicrosoft Word 6.0 DocumentўџџџNB6WWord.Document.6;џў џџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџNCSA ConsultingX3J3 disk:TapeListKurt W. HirchertX3J3 disk:TapeListKurt W. HirchertX3J3 disk:TapeListKurt W. HirchertX3Jџџ ЬЬff 33џџ 33™™ff гггггг ffffff ffџџ ™™33ЬЬ ™™ЬЬff ЬЬ33 ЬЬ™™ЬЬ џџff џџ™™ ггггггŠ`ы р ю Уџ@PB`pR€b АrРа‚р@PB`pR€b АrРа‚Ђ`pВ€Т АтРађ’’ЂЂЂВВВТТТтттђђЂЂВВВТТТтттђђ!!###333CCCSS###333CCCSS11### 110 In-line procedures <KEYWORDS> PROCEDURE, IN-LINE <STATUS> Registered <TARGET> <SUBGROUP> <VERSION> 1 <REQUIREMENT> Provide a means for a programmer to specify that the desired implementation of that procedure is by in-line expansion of the code at the point of reference to the procedure rather than branch to and return from a single code image. <JUSTIFICATION> In almost any programming method involving significant data abstraction (including, but not limited to, object-oriented programming), there tend to be a number of procedures which bridge levels of abstraction, but which do little "real" work. In-line expansion of such procedures significantly reduces their cost. In addition, there tends to increased opportunities for optimization in the calling scoping unit. [The value of in-line expansion of statement functions is well known and an example of what this requirement would provide in a somewhat broader context.] <SUGGESTED IMPLEMENTATION> Allow a keyword such as INLINE on the procedure header. Since we cannot reasonably directly require in-line expansion, the semantics of this keyword are to prohibit obstacles to in-line expansion: o The INLINE keywords would be permitted on module procedures and internal procedures, but not external procedures or interface bodies. o A procedure could not be both INLINE and RECURSIVE. o An INLINE procedure could not be associated with a dummy procedure (nor with a pointer to a procedure, if we add those). We would have to leave it to market pressure to actually ensure that INLINE procedures are expanded in-line. <ESTIMATED IMPACT> The impact on the document should be well localized. Impact on existing processors will vary: A processor wishing to meet the literal requirements (without actually doing in-line expansion) could do so with a small amount of syntax checking. Typically, existing processors already do at least some in-line expansion (for statement functions) and some do in-line expansion of arbitrary procedures, but it seems likely that it will vary from processor whether the existing in-line expansion infrastructure is sufficient for doing the kind of expansion expected in this requirement. <SUBMITTED BY> Kurt W. Hirchert, hirchert@ncsa.uiuc.edu <HISTORY> <EVENT> 29 April 96: submitted </HISTORY> </FORTREQ> Н From: Kurt W. Hirchert X3J3/96-076 (Page � of  NUMPAGES \* MERGEFORMAT 1) Subject: JoR Item 110 а In-line Procedures Meeting 137 X3J3/96-076 (Page � of  NUMPAGES \* MERGEFORMAT 1) �Ё�™ š�Єd2Ѕ(AІ№ЇаЈаЉаЊА|������H�H�����Eџпџр!eG(ќ����H�H�����E����_�������'��������������`��������������������������������аЯрЁБс�����������������;�џў� �����������������ўџ�� ��������������������ђŸ…рOљhЋ‘�+'Гй0���ѓ��������˜������ё������D�����]�����v�� ���|�� ���ˆ�� ���”����� �����Ј�� ���А�����М�����й�� ���с�����ы�� ��������������џџџџџџџџ���Q���А:Applications:Commercial:Microsoft Office:Microsoft Word 6:Templates:X3J3 paper����K���The first paragraph is in style First, to avoid leaving extra white space.�������Kurt W. Hirchert�������Kurt W. Hirchert����'@����ј#‰Œ>Л@����€vг�S�u�m�m�a�r�y�I�n�f�o�r�m�a�t�i�o�n���������������������������(��џџџџџџџџџџџџ������������������������������������9���#��������������������������������������������������������������������������џџџџџџџџџџџџ��������������������������������������������������������������������������������������������������������������������џџџџџџџџџџџџ��������������������������������������������������������������������������������������������������������������������џџџџџџџџџџџџ������������������������������������������������ђЬч@����ј#‰Œ>Л��������������@�����������������Microsoft Word 6.0.1�������������2���������џў� �����������������������џџџў��������џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџмЅh�OР ����e�����������ё ��х������������������. ������Т������������������������������������������������������������������:������:������:������:������:�����J�� ���T�����:������b��]���d������d��(���Œ������Œ������Œ������Œ������Œ������Œ������:�����<������<������<������<������<������<��&���П��X�����Ю���b����������������������������Œ������������Œ������Œ����������������������Œ������Œ������b������Œ������������������Œ����������������������d������Œ������Œ������Œ������Œ������������Œ������������Œ������:����������������������$�����,�����������������������������Œ������:������Œ��Ў���Œ��������������������������������������������������������������������������������������������<FORTREQ> <NUMBER> 110 <TITLE> In-line procedures <KEYWORDS> PROCEDURE, IN-LINE <STATUS> Registered <TARGET> <SUBGROUP> <VERSION> 1 <REQUIREMENT> Provide a means for a programmer to specify that the desired implementation of that procedure is by in-line expansion of the code at the point of reference to the procedure rather than branch to and return from a single code image. <JUSTIFICATION> In almost any programming method involving significant data abstraction (including, but not limited to, object-oriented programming), there tend to be a number of procedures which bridge levels of abstraction, but which do little "real" work. In-line expansion of such procedures significantly reduces their cost. In addition, there tends to increased opportunities for optimization in the calling scoping unit. [The value of in-line expansion of statement functions is well known and an example of what this requirement would provide in a somewhat broader context.] <SUGGESTED IMPLEMENTATION> Allow a keyword such as INLINE on the procedure header. Since we cannot reasonably directly require in-line expansion, the semantics of this keyword are to prohibit obstacles to in-line expansion: o The INLINE keywords would be permitted on module procedures and internal procedures, but not external procedures or interface bodies. o A procedure could not be both INLINE and RECURSIVE. o An INLINE procedure could not be associated with a dummy procedure (nor with a pointer to a procedure, if we add those). We would have to leave it to market pressure to actually ensure that INLINE procedures are expanded in-line. <ESTIMATED IMPACT> The impact on the document should be well localized. Impact on existing processors will vary: A processor wishing to meet the literal requirements (without actually doing in-line expansion) could do so with a small amount of syntax checking. Typically, existing processors already do at least some in-line expansion (for statement functions) and some do in-line expansion of arbitrary procedures, but it seems likely that it will vary from processor whether the existing in-line expansion infrastructure is sufficient for doing the kind of expansion expected in this requirement. <SUBMITTED BY> Kurt W. Hirchert, hirchert@ncsa.uiuc.edu <HISTORY> <EVENT> 29 April 96: submitted </HISTORY> </FORTREQ> Н From: Kurt W. Hirchert X3J3/96-076 (Page � of  NUMPAGES \* MERGEFORMAT 1) Subject: JoR Item 110 а In-line Procedures Meeting 137 X3J3/96-076 (Page � of  NUMPAGES \* MERGEFORMAT 1) �Ё�™ š�Єd2Ѕ(AІ№ЇаЈаЉаЊА|������H�H�����Eџпџр!eG(ќ����H�H�����E����_�������'��������������`����������������������������������������������������������������������������������������������������������������������������������������������c�����. ��N ��Q ��X ��Y ��] ��^ ��x ��y ��z ��{ ��Щ ��Ъ ��Ю ��Я ��щ ��ъ ��ы ��ь ��№ ��ё ��Œ ����§�ј�ј�ј�ј�ј�ј�ј�ј��і������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������u�uD�����c$����� ����2��P��d��m��y��…��†��”��|��}����Ч��Ш��у������Љ��Њ��3��4��k��l��ш��щ��5 ��V ��W ��j ��Ÿ ��  ��^ ��_ ��В ��Г ��ы ��ь ��і �� �� ��! ��, ��. ��ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ў�є)м�ћ�є)������������������,. ��} ��Е ��Ж ��ю ��я ��№ ��ё ��§������ѕ������ђ������ы������ђ������щ������ц�є)��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������h��3�& ����3���№�3�(�* ����3�����K�����&��@ёџ�&�Normal����№�� �]�a c��������������������"�A@ђџЁ�"�Default Paragraph Font������������(@Ђ�ё�� Line Number���Vc �� � @� �Footer� ���А`'�� �@� �Header� �����`'��"�ўO��"�Heading����р��U^�ўO���First����������ўO�B�Item���а0§��"�ўO��"� After Example����x����(�ўO�R(�Example�� ���аx��]�c��ўOAr�2Item���� ��� �ўO�‚ �Text��������]�c�,�ўO�’,�names�����АPь���р��c���ўOЂ�indented��� `њ������ё ���ё ��� ���!������ё ������������ˆ���С���Ф������Œ ������. ��ё ��� �/���J���L��� ���Л���Н���Ф���џ•€џ•€Ў�Kurt W. Hirchert$А:Temporary Items:Word Work File A 1Kurt W. Hirchert5А:Downloads:X3J3 togo:meeting 137:96-076 JoR Item 110Kurt W. HirchertX3J3 disk:96-076 JoR Item 110џ@€�, ��, �� ���, ������, ����5]���M�Times New Roman� ���Symbol� ��M�Arial���M�New York�M�Palatino� M�Courier�"��� €а��������TІTІ����������������������ƒ���������������������������!€+�Ю��PА:Applications:Commercial:Microsoft Office:Microsoft Word 6:Templates:X3J3 paperJThe first paragraph is in style First, to avoid leaving extra white space.���Kurt W. HirchertKurt W. Hirchert����������аЯрЁБс�����������������;�џў� ������������������������������џџџў��������џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ