[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference smurf::unix_objsym

Title:Digital UNIX Object File/Symbol Table Notes Conference
Moderator:SMURF::LOWELL
Created:Mon Nov 25 1996
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:71
Total number of notes:314

56.0. "Local symbols sharing storage with external symbols representation problem" by GEMGRP::MONTELEONE () Fri Dec 20 1996 10:30

T.RTitleUserPersonal
Name
DateLines
56.1Request for a timely resolutionTLE::FORMAT::KIMBALLKeith Kimball 381-0573Mon Jan 06 1997 14:2943
56.2Fortran module dataNETRIX::"[email protected]"David LaFrance-LindenMon Jan 06 1997 17:0348
56.3Analysis is correctTLE::FORMAT::KIMBALLKeith Kimball 381-0573Tue Jan 07 1997 09:4721
56.4F90 module dataNETRIX::"[email protected]"David LaFrance-LindenTue Jan 07 1997 15:1979
56.5AOSG::LOWELLMon Jan 13 1997 12:5328
56.6Don't alias symbols for F90 modulesNETRIX::"[email protected]"David LaFrance-LindenMon Jan 13 1997 17:1017
56.7Module proposal - not sure who the author is...GEMGRP::MONTELEONEMon Jan 13 1997 17:46113
56.8Status UpdateFORMAT::KIMBALLKeith Kimball 381-0573Wed Jan 15 1997 12:4532
56.9More F90 module representation stuffNNTPD::"[email protected]"David LaFrance-LindenWed Jun 04 1997 15:3348
Trying to keep this thread going... there may be overlaps with 
C++ namespace representations.

There are two parts to F90 module support: definition and usage.

Definition is roughly a named block:
	MODULE <modname>
	   ...
	END [MODULE [<modname>]]
Within the module there can be USE'age of other modules, types
definitions, data definitions and procedures definitions.  There is
provision for PUBLIC and PRIVATE.  It looks a little like a
class/struct; it looks a little like a namespace.  Modules don't have
parents, as Java packages do and namespaces might; this might make
modules a special case (the never-a-parent special case).  Modules can
use other modules (see next), but this is more usage than inheritance.

Usage is a reference within a procedure or a module to [another]
module; the F90 'USE' statement.  
 -- In its simplest form, 
	USE <modname>
    causes all the PUBLIC module members to be visible to the user.  A
    little like inheritance, a little like namespaces.  
 -- There are two variants, which are orthogonal: renaming, and ONLY.
 -- Renaming allows the client to use a different name than that
    defined in the module:   
	USE <modname>, A => B
    means that when I say 'A' I mean 'B within the module', and all
    other members of the module are accessible via their module-given
    names.  If namespaces have renaming-import, it's like that.  
 -- ONLY means only to import the specified symbols:
	USE <modname>, ONLY : C, D
    means only use members C and D from the module.  If namespaces
    have restricted-import, it's like that.  
 -- They can be combined: 
	USE <modname>, ONLY : A => B, C, D
    means only use B, C and D, but I'm going to say A when I want to
    reference B.   
 -- At the usage level, just the names are relevent; it doesn't matter
    if they are type, data or procedure names.  I suspect this is like
    namespaces.






[Posted by WWW Notes gateway]