[J3] What is an entity?

Kurt W Hirchert kurthirchert at gmail.com
Sat Aug 13 19:03:36 UTC 2022

On 8/13/2022 2:55 AM, Thomas König via J3 wrote:
> "Entity" is used in several definitions in "Terms and Definitions"
> and also in other places, but I didn't find in the standard.
> I would assume that "entities" refers to variables, constants and
> anything else that can hold data, but maybe it is something that
> could be more clearly defined.

That assumption is incomplete.  The word "entity" was introduced into 
the draft of Fortran 90 as a more respectable replacement for what we 
had been calling "thingo" in committee discussions.  (For those informal 
discussions, the committee could just as easily have used 
"whatchamacallit", or "thingamabob", or , if correctly understood what I 
heard on "Says You" the morning, "oojah".)  The point was to allow 
discussion of supporting patterns of behavior or usage without limiting 
that discussion to things encompassed by a particular technical term.  
It was intentionally not given a technical definition, but left as an 
English language placeholder.

The classic example of this usage of "entity" is in the description of 
modules.  The intent was that modules should be a universal mechanism 
for sharing anything that needs to be shared among multiple program 
units.  Currently, that includes variables, name constants, defined 
types, specific names for procedures, and generic identifiers for groups 
of related procedures, but if the committee were to add a new class of 
things worth sharing, such as named exceptions or named macros, all that 
would be needed to allow this sharing would be to provide whatever 
syntactic hooks are needed to put them in a module.  After that, the 
descriptions of module and the effects of the USE statement 
automatically extend to those things because a module is used to share 
_entities_.  (If you prefer a historical example, when the committee 
added procedure pointers to the language, it was more or less automatic 
that they were sharable via modules without requiring an separate action 
by the committee in that regard.)

I suppose one could add an entry for "entity" in the Terms and 
Definitions to point out that it is not a defined technical term, but is 
used in its usual English language sense, but I don't know whether that 
would be an improvement.


More information about the J3 mailing list