From rybin@POSSUM.SRCC.MSU.SU Sun Jul 26 02:15:39 1998 Return-Path: Received: from cs.ida.org by cronus.csed.ida.org (SMI-8.6/SMI-SVR4) id CAA08592; Sun, 26 Jul 1998 02:15:39 -0400 Received: from mail.acm.org (mail.acm.org [199.222.69.4]) by cs.ida.org (8.8.7/8.8.7) with ESMTP id CAA12579 for ; Sun, 26 Jul 1998 02:15:38 -0400 (EDT) Received: from mail (mail.acm.org [199.222.69.4]) by mail.acm.org (8.8.5/8.7.5) with ESMTP id CAA09124; Sun, 26 Jul 1998 02:06:54 -0400 Received: from ACM.ORG by ACM.ORG (LISTSERV-TCP/IP release 1.8c) with spool id 1069512 for SIGADA-ASIS-TECH@ACM.ORG; Sun, 26 Jul 1998 02:06:54 -0400 Received: from logger.gamma.ru (logger.gamma.ru [194.186.254.23]) by mail.acm.org (8.8.5/8.7.5) with ESMTP id BAA43082 for ; Sun, 26 Jul 1998 01:56:49 -0400 Received: from srcc.UUCP (uucp@localhost) by logger.gamma.ru (8.8.8/8.8.8) with UUCP id KAA05735 for SIGADA-ASIS-TECH@ACM.ORG; Sun, 26 Jul 1998 10:04:34 +0400 (MSD) (envelope-from possum!possum.srcc.msu.su!rybin@gamma.srcc.msu.su) Received: by gamma.srcc.msu.su; Sun, 26 Jul 1998 10:04:23 +0400 Received: by possum.srcc.msu.su (UUPC/@ v5.09gamma, 14Mar93); Sat, 25 Jul 1998 22:31:00 +0400 References: <199807162026.QAA26369@cronus.csed.ida.org> X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Lines: 31 Message-ID: Date: Sat, 25 Jul 1998 22:31:00 +0400 Reply-To: "Sergey I. Rybin" Sender: ACM SIGADA ASIS Technical Discussion Group From: "Sergey I. Rybin" Organization: Information Systems, SRCC, MSU Subject: Corresponding_Name_Definition and components of derived record types To: SIGADA-ASIS-TECH@ACM.ORG Content-Length: 1248 Status: OR I'm afraid I've found one more thing in the current ASIS definition which needs clarification. Consider 17.6, "function Corresponding_Name_Definition". It says: -- - Record component references, return the defining name of the -- record discriminant or component_declaration. For derived types, the -- result is an Is_Part_Of_Implicit structural (syntactic) -- component from the declaration of the parent type definition. Suppose we have X as a reference to a component of a derived record type. According to this paragraph, the result of applying Corresponding_Name_Definition to it should be an implicit component "from the declaration of the parent type definition". Let Y := Corresponding_Name_Definition (X); The question is: what is Enclosing_Element (Y)? It looks like it should be a component definition "of the parent type definition". Well, let Z := Emclosing_Element (Y); Is Z implicit or explicit? And the next question - what is Enclosing_Element (Z)? Is it "the parent type definition"? And what kind of Element should we get on this stage of applying Enclosing_Element - Implicit or explicit? Sorry, at the moment I do not have any proposal how to resolve this problem (if it really is a problem). Sergey From rybin@POSSUM.SRCC.MSU.SU Sun Jul 26 04:09:39 1998 Return-Path: Received: from cs.ida.org by cronus.csed.ida.org (SMI-8.6/SMI-SVR4) id EAA08671; Sun, 26 Jul 1998 04:09:38 -0400 Received: from mail.acm.org (mail.acm.org [199.222.69.4]) by cs.ida.org (8.8.7/8.8.7) with ESMTP id EAA12963 for ; Sun, 26 Jul 1998 04:09:37 -0400 (EDT) Received: from mail (mail.acm.org [199.222.69.4]) by mail.acm.org (8.8.5/8.7.5) with ESMTP id EAA25222; Sun, 26 Jul 1998 04:01:11 -0400 Received: from ACM.ORG by ACM.ORG (LISTSERV-TCP/IP release 1.8c) with spool id 1069791 for SIGADA-ASIS-TECH@ACM.ORG; Sun, 26 Jul 1998 04:01:10 -0400 Received: from logger.gamma.ru (logger.gamma.ru [194.186.254.23]) by mail.acm.org (8.8.5/8.7.5) with ESMTP id DAA24298 for ; Sun, 26 Jul 1998 03:51:08 -0400 Received: from srcc.UUCP (uucp@localhost) by logger.gamma.ru (8.8.8/8.8.8) with UUCP id LAA06666 for SIGADA-ASIS-TECH@ACM.ORG; Sun, 26 Jul 1998 11:58:53 +0400 (MSD) (envelope-from possum!possum.srcc.msu.su!rybin@gamma.srcc.msu.su) Received: by gamma.srcc.msu.su; Sun, 26 Jul 1998 11:57:01 +0400 Received: by possum.srcc.msu.su (UUPC/@ v5.09gamma, 14Mar93); Sun, 26 Jul 1998 11:54:08 +0400 References: X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Lines: 57 Message-ID: Date: Sun, 26 Jul 1998 11:54:08 +0400 Reply-To: "Sergey I. Rybin" Sender: ACM SIGADA ASIS Technical Discussion Group From: "Sergey I. Rybin" Organization: Information Systems, SRCC, MSU Subject: Re: Corresponding_Name_Definition and components of derived record types To: SIGADA-ASIS-TECH@ACM.ORG Content-Length: 2402 Status: OR This is the addition to my previous message concerning Corresponding_Name_Definition and components a derived record type: ASIS 17.6 says, that in case of a reference to a component of a derived record type the result of Corresponding_Name_Definition should be a component defining name from the declaration of the _PARENT_ type definition. But from the other side, RM 95 says in 3.4(14), that all the components of a derived record type are implicitly declared "within the declarative region of the [_derived_] type". Probably, more logical approach for the references of the components of derived record types would be: - Corresponding_Name_Definition returns Is_Part_Of_Implicit defining name of a component; - Enclosing_Element, when applied to cush a defining name, returns Is_Part_Of_Implicit A-Component_Declaration/A_Discriminant_Specification; - When applied again to this implicit component/discriminant declaration, Enclosing_Element returns an _explicit_ declaration of this _derived_ type (but not of the _parent_ type) Sergey > I'm afraid I've found one more thing in the current ASIS definition which > needs clarification. > > Consider 17.6, "function Corresponding_Name_Definition". It says: > > -- - Record component references, return the defining name of the > -- record discriminant or component_declaration. For derived types, the > -- result is an Is_Part_Of_Implicit structural (syntactic) > -- component from the declaration of the parent type definition. > > Suppose we have X as a reference to a component of a derived record type. > According to this paragraph, the result of applying > Corresponding_Name_Definition to it should be an implicit component "from the > declaration of the parent type definition". Let > > Y := Corresponding_Name_Definition (X); > > The question is: what is Enclosing_Element (Y)? It looks like it should be a > component definition "of the parent type definition". Well, let > > Z := Emclosing_Element (Y); > > Is Z implicit or explicit? And the next question - what is > Enclosing_Element (Z)? Is it "the parent type definition"? And what kind of > Element should we get on this stage of applying Enclosing_Element - Implicit > or explicit? > > Sorry, at the moment I do not have any proposal how to resolve this problem > (if it really is a problem). > > Sergey > From rybin@possum.srcc.msu.su Thu Jul 30 05:51:01 1998 Return-Path: Received: from cs.ida.org by cronus.csed.ida.org (SMI-8.6/SMI-SVR4) id FAA17376; Thu, 30 Jul 1998 05:51:00 -0400 Received: from logger.gamma.ru (logger.gamma.ru [194.186.254.23]) by cs.ida.org (8.8.7/8.8.7) with ESMTP id FAA17491 for ; Thu, 30 Jul 1998 05:50:59 -0400 (EDT) Received: from srcc.UUCP (uucp@localhost) by logger.gamma.ru (8.8.8/8.8.8) with UUCP id NAA17437; Thu, 30 Jul 1998 13:50:47 +0400 (MSD) (envelope-from possum!possum.srcc.msu.su!rybin@gamma.srcc.msu.su) Received: by gamma.srcc.msu.su; Thu, 30 Jul 1998 13:49:47 +0400 Received: by possum.srcc.msu.su (UUPC/@ v5.09gamma, 14Mar93); Thu, 30 Jul 1998 13:43:25 +0400 To: BThomas@MITRE.Org, roby@ida.org, Rybin@GNAT.Com, SBlake@Aonix.Com Cc: Colket@ACM.Org References: <199807291915.PAA16432@cronus.csed.ida.org> Message-Id: Organization: Information Systems, SRCC, MSU From: "Sergey I. Rybin" Date: Thu, 30 Jul 98 13:43:25 +0400 X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Subject: Re: new Issue #097 and proposed resolution Lines: 54 Content-Length: 2133 Status: OR > Sergey, Steve, Bill, > > Here's the new Issue #097, Names for components of derived > records, recently brought to light by Sergey. Please review the > proposed resolution and changes and send comments back to us. Thank > you very much. Almost fine with me, but probably we have to be more careful in case of components defined in record extension parts and in case of the discriminants, which are not inherited by a derived type, but which are explicitly defined for it. I would correct the proposed changes like this (my changes are underlined by "^^^^^^^^^^^^" Sergey !resolution Open !date 98-07-29 Change Clause 17.6, function Corresponding_Name_Definition, from: -- - Record component references, return the defining name of the -- record discriminant or component_declaration. For derived types, the -- result is an Is_Part_Of_Implicit structural (syntactic) -- component from the declaration of the parent type definition. To -- - Record component references, return the defining name of the -- record discriminant or component_declaration. For record ^^^^^^ -- components (including discriminnats) inherited by derived types, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Corresponding_Name_Definition returns Is_Part_Of_Implicit defining -- name of a component. Add to Clause 17.36, function Enclosing_Element, before the "Returns a Nil_Element" comment, the following: -- When applied to an implicitly declared inherited component of a -- derived [drop "record", it may also be a discriminant inherited ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- by a type derived from a private type ???] type, and if ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Is_Part_Of_Implicit is true, returns A_Component_Declaration or -- A_Discriminant_Specification, as appropriate. When applied again to -- this implicit component or discriminant declaration, Enclosing_Element -- returns An_Explicit_Declaration of this derived type (but not of the -- parent type). ------- From colket@colket.org Thu Jul 30 15:42:26 1998 Return-Path: Received: from cs.ida.org by cronus.csed.ida.org (SMI-8.6/SMI-SVR4) id PAA19631; Thu, 30 Jul 1998 15:42:25 -0400 Received: from smtp1.erols.com (smtp1.erols.com [207.172.3.234]) by cs.ida.org (8.8.7/8.8.7) with ESMTP id PAA04567 for ; Thu, 30 Jul 1998 15:42:22 -0400 (EDT) Received: from colket.org (207-172-44-52.s52.tnt3.brd.erols.com [207.172.44.52]) by smtp1.erols.com (8.8.8/8.8.5) with ESMTP id PAA10812; Thu, 30 Jul 1998 15:41:16 -0400 (EDT) Message-ID: <35C0CBFE.58B30EB9@colket.org> Date: Thu, 30 Jul 1998 15:39:43 -0400 From: Currie Colket Reply-To: colket@colket.org X-Mailer: Mozilla 4.04 [en] (Win95; I) MIME-Version: 1.0 To: "Sergey I. Rybin" CC: BThomas@MITRE.Org, roby@ida.org, Rybin@GNAT.Com, SBlake@Aonix.Com, Colket@ACM.Org Subject: Re: new Issue #097 and proposed resolution References: <199807291915.PAA16432@cronus.csed.ida.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Length: 3455 Status: OR Sergey: > > Sergey, Steve, Bill, > > > > Here's the new Issue #097, Names for components of derived > > records, recently brought to light by Sergey. Please review the > > proposed resolution and changes and send comments back to us. Thank > > you very much. > > Almost fine with me, but probably we have to be more careful in case > of components defined in record extension parts and in case > of the discriminants, which are not inherited by a derived type, > but which are explicitly defined for it. > > I would correct the proposed changes like this (my changes are underlined > by "^^^^^^^^^^^^" > > Sergey > > !resolution Open > !date 98-07-29 > > Change Clause 17.6, function Corresponding_Name_Definition, from: > > -- - Record component references, return the defining name of the > -- record discriminant or component_declaration. For derived types, the > -- result is an Is_Part_Of_Implicit structural (syntactic) > -- component from the declaration of the parent type definition. > > To > > -- - Record component references, return the defining name of the > -- record discriminant or component_declaration. For record > ^^^^^^ > -- components (including discriminnats) inherited by derived types, > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > -- Corresponding_Name_Definition returns Is_Part_Of_Implicit defining > -- name of a component. Clyde and I tried to correct what we sent to you by discussing it with Bill Thomas and Steve Blake. Steve suggested the rewording of the 17.6 section which I believe your proposed wording suggests. Hopefully the following wording for 17.6 is satisfactory. -- - Record component references return the defining name of the -- record discriminant or component_declaration. For references -- to inherited declarations of derived types, the -- Corresponding_Name_Definition returns the defining name of the -- implicit inherited declaration. > Add to Clause 17.36, function Enclosing_Element, before the "Returns a > Nil_Element" comment, the following: > > -- When applied to an implicitly declared inherited component of a > -- derived [drop "record", it may also be a discriminant inherited > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > -- by a type derived from a private type ???] type, and if > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > -- Is_Part_Of_Implicit is true, returns A_Component_Declaration or > -- A_Discriminant_Specification, as appropriate. When applied again to > -- this implicit component or discriminant declaration, Enclosing_Element > -- returns An_Explicit_Declaration of this derived type (but not of the > -- parent type). We decided not to make any changes to Enclosing Element as this function's purpose is to provide the syntactic enclosing element and not a semantic enclosing element. Perhaps we need a function to deal with the implicit and explicit semantic references, but enclosing element should not be that function. We are past the hour when we can do things like this. Approaches to dealing with new issues are one of the things we will need to address at the ASIS Workshop (Working Group Meeting) in November. v/r Currie P.S. Your name is listed as Sergei on the tutorial at SIGAda'98. Would you like me to have it changed to Sergey???? or would you rather have a dual personality :-) From roby Wed Jul 29 15:15:33 1998 Return-Path: Received: by cronus.csed.ida.org (SMI-8.6/SMI-SVR4) id PAA16432; Wed, 29 Jul 1998 15:15:32 -0400 From: roby (Clyde Roby) Message-Id: <199807291915.PAA16432@cronus.csed.ida.org> Subject: new Issue #097 and proposed resolution To: Rybin@GNAT.Com (Sergey Rybin), SBlake@Aonix.Com (Steve Blake), BThomas@MITRE.Org (Bill Thomas) Date: Wed, 29 Jul 1998 15:15:32 -0400 (EDT) Cc: roby (Clyde Roby), Colket@ACM.Org (Currie Colket at ACM) X-Mailer: ELM [version 2.5 PL0b2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Length: 3620 Status: OR Sergey, Steve, Bill, Here's the new Issue #097, Names for components of derived records, recently brought to light by Sergey. Please review the proposed resolution and changes and send comments back to us. Thank you very much. Clyde and Currie ------- !ASIS Issue #097 !topic Names for components of derived records !reference ASIS 95-17.6,17.36 !from Sergey Rybin 98-07-25 !keywords derived records types components !discussion I'm afraid I've found one more thing in the current ASIS definition which needs clarification. Consider 17.6, "function Corresponding_Name_Definition". It says: -- - Record component references, return the defining name of the -- record discriminant or component_declaration. For derived types, the -- result is an Is_Part_Of_Implicit structural (syntactic) -- component from the declaration of the parent type definition. Suppose we have X as a reference to a component of a derived record type. According to this paragraph, the result of applying Corresponding_Name_Definition to it should be an implicit component "from the declaration of the parent type definition". Let Y := Corresponding_Name_Definition (X); The question is: what is Enclosing_Element (Y)? It looks like it should be a component definition "of the parent type definition". Well, let Z := Enclosing_Element (Y); Is Z implicit or explicit? And the next question - what is Enclosing_Element (Z)? Is it "the parent type definition"? And what kind of Element should we get on this stage of applying Enclosing_Element - Implicit or explicit? ASIS 17.6 says, that in case of a reference to a component of a derived record type the result of Corresponding_Name_Definition should be a component defining name from the declaration of the _PARENT_ type definition. But from the other side, RM 95 says in 3.4(14), that all the components of a derived record type are implicitly declared "within the declarative region of the [_derived_] type". Probably, more logical approach for the references of the components of derived record types would be: - Corresponding_Name_Definition returns Is_Part_Of_Implicit defining name of a component; - Enclosing_Element, when applied to such a defining name, returns Is_Part_Of_Implicit A_Component_Declaration/A_Discriminant_Specification; - When applied again to this implicit component/discriminant declaration, Enclosing_Element returns an _explicit_ declaration of this _derived_ type (but not of the _parent_ type) Sergey !resolution Open !date 98-07-29 Change Clause 17.6, function Corresponding_Name_Definition, from: -- - Record component references, return the defining name of the -- record discriminant or component_declaration. For derived types, the -- result is an Is_Part_Of_Implicit structural (syntactic) -- component from the declaration of the parent type definition. To -- - Record component references, return the defining name of the -- record discriminant or component_declaration. For derived types, -- Corresponding_Name_Definition returns Is_Part_Of_Implicit defining -- name of a component. Add to Clause 17.36, function Enclosing_Element, before the "Returns a Nil_Element" comment, the following: -- When applied to a component of a derived record type, and if -- Is_Part_Of_Implicit is true, returns A_Component_Declaration or -- A_Discriminant_Specification, as appropriate. When applied again to -- this implicit component or discriminant declaration, Enclosing_Element -- returns An_Explicit_Declaration of this derived type (but not of the -- parent type). ------- From rybin@possum.srcc.msu.su Fri Jul 31 03:44:30 1998 Return-Path: Received: from cs.ida.org by cronus.csed.ida.org (SMI-8.6/SMI-SVR4) id DAA20522; Fri, 31 Jul 1998 03:44:29 -0400 Received: from logger.gamma.ru (logger.gamma.ru [194.186.254.23]) by cs.ida.org (8.8.7/8.8.7) with ESMTP id DAA16479 for ; Fri, 31 Jul 1998 03:44:28 -0400 (EDT) Received: from srcc.UUCP (uucp@localhost) by logger.gamma.ru (8.8.8/8.8.8) with UUCP id LAA04249; Fri, 31 Jul 1998 11:44:08 +0400 (MSD) (envelope-from possum!possum.srcc.msu.su!rybin@gamma.srcc.msu.su) Received: by gamma.srcc.msu.su; Fri, 31 Jul 1998 11:42:02 +0400 Received: by possum.srcc.msu.su (UUPC/@ v5.09gamma, 14Mar93); Fri, 31 Jul 1998 11:32:12 +0400 To: colket@colket.org Cc: BThomas@MITRE.Org, roby@ida.org, Rybin@GNAT.Com, SBlake@Aonix.Com References: <35C0CBFE.58B30EB9@colket.org> Message-Id: Organization: Information Systems, SRCC, MSU From: "Sergey I. Rybin" Date: Fri, 31 Jul 98 11:32:12 +0400 X-Mailer: BML [MS/DOS Beauty Mail v.1.36] Subject: Re: new Issue #097 and proposed resolution Lines: 91 Content-Length: 4442 Status: OR > Clyde and I tried to correct what we sent to you by discussing it with Bill > Thomas and Steve Blake. Steve suggested the rewording of the 17.6 section which > I believe your proposed wording suggests. Hopefully the following wording for > 17.6 is satisfactory. > > -- - Record component references return the defining name of the > -- record discriminant or component_declaration. For references > -- to inherited declarations of derived types, the > -- Corresponding_Name_Definition returns the defining name of the > -- implicit inherited declaration. The only question - should we say "Is_Part_Of_Inherited defining name of the implicit inherited declaration"? (Or, perhaps, "Is_Part_Of_Implicit name ...."?) From one side, "Is_Part_Of_Implicit name ... of implicit declaration" does not sound nice, but from another side, the more precise and the more "explicit" we are when speaking about implicict elements in ASIS, the less chances has an ASIS "user" to get confused. (But, may be, my comment originates from my personal English problems and everything is clear enough without any addition. If so - just drop it :( ) > > Add to Clause 17.36, function Enclosing_Element, before the "Returns a > > Nil_Element" comment, the following: > > > > -- When applied to an implicitly declared inherited component of a > > -- derived [drop "record", it may also be a discriminant inherited > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > -- by a type derived from a private type ???] type, and if > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > -- Is_Part_Of_Implicit is true, returns A_Component_Declaration or > > -- A_Discriminant_Specification, as appropriate. When applied again to > > -- this implicit component or discriminant declaration, Enclosing_Element > > -- returns An_Explicit_Declaration of this derived type (but not of the > > -- parent type). > > We decided not to make any changes to Enclosing Element as this function's > purpose is to provide the syntactic enclosing element and not a semantic > enclosing element. Perhaps we need a function to deal with the implicit and > explicit semantic references, but enclosing element should not be that > function. Yes, Enclosing_Element is a structural, but not semantic query, but the problem is that it has to be able to process (in some reasonable way!) implicit elements, which represent semantic, but not syntax of an Ada program :( I agree, that on this stage the less changes in the ASIS draft - the better. What I'm worrying about is: if we have a reference to an inherited component of a derived type, is it clear enough, where will we go, if we apply (twice) Enclosing_Element to it? I think, now we all agree, that it should be the explicit type declaration of the dereived type (is it really so?). If so, the problem is that in case of explicit and implicit components we have different bottom-up traversings when applying Enclosing_Element several times. The first steps are the same: A_Defining_Name -> A_Component_Declaration but then in case of explicit component, we know how to go up (we will have either A_Record_Definition or A_Variant_Part), but what we will have in case of an inherited component of a derived type. I'm started to feel lost in this stuff again :(( In many cases ASIS explicitly clarifies what is Enclosing_Element for this or that implicit construct. I still think, that implicit defining names of inherited components of derived types also need such a clarification. > We are past the hour when we can do things like this. Approaches to > dealing with new issues are one of the things we will need to address at the > ASIS Workshop (Working Group Meeting) in November. Oh, yes, I'm afraid, new issues will appear again and again :(( > > v/r > Currie > > P.S. Your name is listed as Sergei on the tutorial at SIGAda'98. Would you like > me to have it changed to Sergey???? or would you rather have a dual personality > :-) Once started, this kind of confusion with my name will never end :(( It would be nice if you change my name to Sergey (I'm trying to use this form, but people from ACT-Europe often use French forms of my name (there is more then one French form for it!)) And dualing personally from my current location will be somewhat a problem, so I would appresiate your help :) Sergey