From owner-sc22wg5@dkuug.dk  Wed Jun 25 21:51:16 2003
Received: (from majordom@localhost)
	by dkuug.dk (8.12.8p1/8.9.2) id h5PJpGMJ061408
	for sc22wg5-domo; Wed, 25 Jun 2003 21:51:16 +0200 (CEST)
	(envelope-from owner-sc22wg5@dkuug.dk)
X-Authentication-Warning: ptah.dkuug.dk: majordom set sender to owner-sc22wg5@dkuug.dk using -f
Received: from math.jpl.nasa.gov (math.jpl.nasa.gov [137.79.7.57])
	by dkuug.dk (8.12.8p1/8.9.2) with ESMTP id h5PJpAEc061403
	for <sc22wg5@dkuug.dk>; Wed, 25 Jun 2003 21:51:12 +0200 (CEST)
	(envelope-from vsnyder@math.jpl.nasa.gov)
Received: from math.jpl.nasa.gov (localhost.localdomain [127.0.0.1])
	by math.jpl.nasa.gov (8.12.8/8.12.8) with ESMTP id h5PJp8Je024269;
	Wed, 25 Jun 2003 12:51:08 -0700
Received: from math.jpl.nasa.gov (vsnyder@localhost)
	by math.jpl.nasa.gov (8.12.8/8.12.8/Submit) with ESMTP id h5PJp8JS024265;
	Wed, 25 Jun 2003 12:51:08 -0700
Message-Id: <200306251951.h5PJp8JS024265@math.jpl.nasa.gov>
X-Mailer: exmh version 2.4 06/23/2000 with nmh-1.0.4
To: sc22wg5@dkuug.dk
Cc: "J.L.Schonfelder" <j.l.schonfelder@liverpool.ac.uk>
Reply-to: Van.Snyder@jpl.nasa.gov
Subject: Re: (SC22WG5.2821) Submodule association and host association 
In-Reply-To: Your message of "Wed, 25 Jun 2003 20:38:15 BST."
             <200306251938.h5PJcQei061305@dkuug.dk> 
From: Van.Snyder@jpl.nasa.gov
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Date: Wed, 25 Jun 2003 12:51:08 -0700
Sender: owner-sc22wg5@dkuug.dk
Precedence: bulk


Lawrie wrote:

> Modula as with Pascal, Algol 60, Algol 68 etc. all have host association 
> type rules that apply to all nested blocks. In fact most of these languages 
> do not have the concept of a disjoint scope at all. Every program is 
> logically contained within a logical superblock.

Actually, Modula, Ada, and many Pascal extensions do have disjoint scopes.

In Modula-2, the relation between a definition module and an implementation
module is more like extension than either host association or submodule
association.  The only thing you're allowed to redeclare is a procedure's
interface.  The reason for allowing this -- indeed requiring it -- is that
in the definition module one lists only the types of the dummy arguments,
not their names.  In Modula-2 the dimension information is part of the type,
so there are no attribute statements for dummy arguments.

I don't have my Ada references to hand, but I believe the relation between a
package spec and a package body is the same as in Modula-2: You can't redeclare
anything except a procedure's interface.  Here, however, I think (but I could
be wrong because I can't look in my references) that the dummy argument names
are included in the procedure's declaration in the package spec.

-- 
Van Snyder                    |  What fraction of Americans believe 
Van.Snyder@jpl.nasa.gov       |  Wrestling is real and NASA is fake?
Any alleged opinions are my own and have not been approved or disapproved
by JPL, CalTech, NASA, Sean O'Keefe, George Bush, the Pope, or anybody else.


