From j.l.schonfelder@liverpool.ac.uk  Fri May 28 18:38:30 1999
Received: from mailhub1.liv.ac.uk (mailhub1.liv.ac.uk [138.253.100.94])
	by dkuug.dk (8.9.2/8.9.2) with ESMTP id SAA32378
	for <sc22wg5@dkuug.dk>; Fri, 28 May 1999 18:38:29 +0200 (CEST)
	(envelope-from j.l.schonfelder@liverpool.ac.uk)
Received: from pcmail2.liv.ac.uk ([138.253.252.15])
	by mailhub1.liv.ac.uk with esmtp (Exim 1.92 #1)
	for sc22wg5@dkuug.dk
	id 10nPeW-0004a1-00; Fri, 28 May 1999 17:38:36 +0100
Received: from [138.253.102.118] (helo=pc102118.liv.ac.uk)
	by pcmail2.liv.ac.uk with smtp (Exim 1.92 #1)
	for sc22wg5@dkuug.dk
	id 10nPeW-0003Gp-00; Fri, 28 May 1999 17:38:36 +0100
From: Lawrie Schonfelder <j.l.schonfelder@liverpool.ac.uk>
Reply-To: j.l.schonfelder@liverpool.ac.uk
To: "WG5 members (list)" <sc22wg5@dkuug.dk>
Subject: F95, String Module and problems due to Language deficiencies
In-Reply-To: <199905281150.NAA31612@dkuug.dk>
Message-ID: <SIMEON.9905281734.F@pc102118.liverpool.ac.uk>
Date: Fri, 28 May 1999 17:38:34 +0100 (British Summer Time)
Priority: NORMAL
X-Mailer: Simeon for Win32 Version 4.1.5 Build (43)
X-Authentication: IMSP
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII

Just a comment prompted to some extent by the German comments on the string 
module ballot, with which I almost totally agree.
We created a partial data-abstraction facility in F90. F95 has improved it 
but only marginally. We still have too many frequently gratuitous 
restrictions that actually preclude any realsistic data-abstraction becoming 
what I term a "semantic extension". By this I mean the ability for the user 
to define a data type and operations on it so that to all intents and 
purposes the user of the facility can treat the new datatype as if it were 
defined intrinsically. F95 falls fundamentally short of this in numerous ways.
One that I keep falling over is the inability for the user of a datatype 
containing pointer components to declare an object of this datatype that is 
constant (PARAMETER).
In the case of the string type this is not too serious in practice since a 
PARAMETER can be declared as a CHARACTER and the complete set of overloads 
allows this to be combined with strings in most contexts, but it is 
nevertheless a serious irregularity in general.

For a datatype like a variable precision number this becomes a real pain.
Unless I am wrong, given a type like

type NUMBER
 INTEGER :: exp
 INTEGER, POINTER :: sig(:)
ENDTYPE NUMBER

there is no way of declaring something that would be equivalent to

type(NUMBER),PARAMETER :: zero = 0

no matter what circumlocutions one goes through.

--
Lawrie Schonfelder
Director, Computing Services Dept.
The University of Liverpool, UK, L69 7ZF
Phone: 44(151)794 3716, Fax: 44(151)794 3759




