To: J3 02-107r1 From: Subroup C Subject: Comments on interface bodies and external procedures Date: 28 February 2002 Section 1 Introduction It is explicitly stated in the second paragraph of C.9.3 that the standard allows that a name declared by an interface body need not imply that an external procedure of the same name is part of the program. Many processors behave in the way therein described. The second normative paragraph of 12.3.2.1 (after the syntax rules) appears directly to contradict this intent. I like Richard Maine's idea, articulated in pre-meeting e-mail message j3.2002-53, that an interface body is a local entity. If there is an external procedure, \st{proc-target}, or actual argument of the same name, the interface body specifies its interface. This has the attraction that all interface bodies become local names, as opposed to some being global and some being local. Section 2 Edits Edits refer to 02-007 ----------------- 76:31 [Editor: ``as ... (12.3.2.1)'' becomes ``both as an interface body name (\ref{D12:Interface block}) and as an actual argument, the \si{procedure-name} in a \si{pointer-assignment-stmt}, or the \si{procedure-name} in a \si{function-reference} or a \si{call-stmt}. ----------------- 245:16-17 [Editor: Delete ``for an existing external procedure or a dummy procedure'' -- the ``existing external procedure'' part appears to contradict the second paragraph of C.9.3.] ----------------- 245:17-18 [Editor: ``If ... such'' becomes ``The name of an interface body {index\{name!interface body} is the \si{function-name} in the \si{function-stmt} or the \si{subroutine-name} in the \si{subroutine-stmt} that introduces the interface body. If the name of''.] ----------------- 245:20-21 [Editor: ``; otherwise ... interface'' becomes ``. If an interface body name is accessible in a scoping unit and is the same as a name used as an actual argument, the \si{procedure-name} in a \si{pointer-assignment-stmt}, or the \si{procedure-name} in a \si{function-reference} or a \si{call-stmt}, the referenced name has the explicit specific interface specified by the named interface body''.] ----------------- 382:6 [Editor: ``abstract interfaces'' becomes ``interface bodies''.] ----------------- 382:12 [Editor: Insert ``or interface body name'' before ``(12.3.2.1)''.] ----------------- 387:32 Replace item (12) with "(12) The name of an interface body;" Section 3 Proposal to go a little farther Subgroup rejects this section.