From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org  Fri Jul  8 03:37:39 2016
Return-Path: <owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org>
X-Original-To: sc22wg5-dom8
Delivered-To: sc22wg5-dom8@www.open-std.org
Received: by www.open-std.org (Postfix, from userid 521)
	id 6032D358700; Fri,  8 Jul 2016 03:37:39 +0200 (CEST)
Delivered-To: sc22wg5@open-std.org
Received: from nag-j.co.jp (bvdeuz19.secure.ne.jp [180.222.80.19])
	by www.open-std.org (Postfix) with SMTP id 3E95C356E44
	for <sc22wg5@open-std.org>; Fri,  8 Jul 2016 03:37:28 +0200 (CEST)
Received: (qmail 83941 invoked from network); 8 Jul 2016 10:37:25 +0900
Received: from unknown (HELO Maru10) (218.42.159.105)
  by 0 with SMTP; 8 Jul 2016 10:37:25 +0900
Message-ID: <9C727EB839E048D2B179B72FBDC1DA04@Maru10>
From: "Cohen Malcolm" <malcolm@nag-j.co.jp>
To: "WG5" <sc22wg5@open-std.org>
References: <20160619135920.D0F3F358287@www.open-std.org><20160629112043.BF09F3587AF@www.open-std.org><20160629123517.185A635828D@www.open-std.org><20160629190123.72A8035859B@www.open-std.org><20160702105054.18596358745@www.open-std.org><20160702202059.B9618358745@www.open-std.org><20160703085848.B63663584A2@www.open-std.org><20160705153207.E49A9358343@www.open-std.org><20160705173722.4977735852E@www.open-std.org><20160706152553.105A89DB160@www.open-std.org><20160706164712.D056F9DB160@www.open-std.org><1467851790.3820.152.camel@vanlap.vsnyder> <20160707184955.C1409358287@www.open-std.org>
In-Reply-To: <20160707184955.C1409358287@www.open-std.org>
Subject: Re: [ukfortran] (SC22WG5.5758) RE: (j3.2006) RE:   Units of measure
Date: Fri, 8 Jul 2016 10:37:27 +0900
MIME-Version: 1.0
Content-Type: text/plain;
	format=flowed;
	charset="ISO-8859-1";
	reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Mailer: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

This kind of annotation is very domain-specific.  Moreover, it strikes me as 
exactly the kind of thing that is suited to directives (if there is no code 
generation why should it be in the language).  And such directives are 
exactly the thing for software tools to handle via checking (for the compile 
time requirements) and source-to-source transformation if there does need to 
be runtime execution involved.

Doing it via software tools has the significant advantages of
(a) no impact on vendor implementations,
(b) works even for compilers whose vendors have not provided it,
(c) only takes a year or two to obtain, instead of more than 10 years via 
the standard (or even more than that, seeing as how here we are in 2016 but 
few compilers yet implement all of the standard we started working on in 
1998 and published in 2004!).

There are software companies which provide software tools for Fortran.  NAG 
is such a company.  As I mentioned before, I am sure that NAG would be 
prepared to design the directives and implement tools for units handling, 
and almost certainly for less than 1% of $300M.  So far, neither I nor 
anyone else at NAG has received even a hint of interest in such a thing.

<<<
If your organization had lost $300 million due to a trivial software mistake 
that the programming language and its runtime could have caught or corrected 
automatically, would you roll over and play dead?
>>>

No, I would build, or contract to be built, a tool for checking code that is 
annotated with units information, for the reasons given above.

Cheers,
-- 
........................Malcolm Cohen, Nihon NAG, Tokyo. 

