British Computer Society Fortran Specialist Group


    Minutes of a Meeting Held on 1 September 1975

   at the City University, St. John's Street, London, E.C.1


Present:  Mr. D. T. Muxworthy     University of Edinburgh

(Chairman)

Mr. E. O. Badger        I.B.M. W.T. Systems Aid Centre

(Vice-chairman)

Mr. P. D. Burden        Howard Humphreys and Sons

Mr. M. J. King          B.B.C.

Mr. P. J. Hamson        Honeywell

Mr. G. Harding          Imperial College Computer

                        Centre

Mr. D. Hill             Micro Computer Systems Ltd.

Mr. C. K. Mackinnon     U.K.A.E.A., Risley

Mr. E. J. Marchant      N.E. Surrey College of

                        Technology

Mr. J. A. Morice        Mullard Research Labs.

Mr. B. D. Pyne          Atkins Research and Development

Mr. B. H. Shearing      Alcock Shearing and Partners

Mr. P. A. Clarke        Rothamsted Experimental Station

(Secretary)


Apologies for Absence:


Dr. J. C. Baldwin       University College Cardiff

Dr. A. C. Day           University College London

Mr. T. D. Palmer        Computer Power Ltd.

Mr. J. L. van Raalte    Ministry of Defence A.W.R.E.



1. Approval of Minutes


The minutes of the meeting of 5 May were approved.


2. Matters Arising From Minutes


(a)  Mr. Muxworthy had received confirmation that the room for the

Group's meeting at Datafair 75 would be from 6.30-9.00 p.m.

on Thursday 2nd October.


3.  Future Activities


3.1 Member Survey


Those present thought that the venues chosen were as expected,

with a large majority in favour of London.


The topics of interest were more varied than expected and

there was discussion as to whether it would be appropriate to

set up working parties to study and report on topics or alter-

natively to ask speakers with known experience to talk on the

topics - this latter case was left for action by the steering

committee.


3.2 Datafair 75


Approaches had been made to several computer manufacturers

and favourable initial responses have been obtained. Formal

letters have been sent to two of these and it is hoped that at

least one will be able to provide a speaker for Datafair 75.

Failing this, a speaker on a structured Fortran preprocessor, or

a Fortran database scheme will be obtained.


The meeting will be as usual, with the addition of the speaker.


4.  Fortran Group and Committee Activities


4.1 ANSI X3J3 activities


The details of decisions taken at the March 75 and June 75

meetings of X3J3 were discussed and some comments (see Appendix A)

were sent to X3J3. The group were very surprised to see such a

major change as the removal of Hollerith constants at such a late

stage in the proceedings.


The result of the X3J3 straw letter ballot for approval of

FDRTREV/65 (75-04-01) as a draft proposed standard was: 8 YES,

9 Conditional Yes, 3 NO, 3 Abstain, which indicates that further

alterations are likely.


4.2 CODASYL Fortran DBMLC Activities


Minutes of the 5th, 6th and 7th meetings of the CODASYL

committee had been received.


The second draft of the DML syntax had been received from

Mr. McLean and copies of this are available on request.


A brief report of some of the decisions taken by the committee

was given by Mr. Clarke (see Appendix C).


4.3 Fortran Development Committee Activities


     The fourth FORWORD newsletter has been received. The purposes

of the committee include: "To form a bridge between active imple-

mentations of Fortran extensions, and the ANSI X3J3 Fortran stan-

dards effort. To provide a forum for interchange of ideas and

proposals, for groups interested in extending the Fortran language

in various ways. To obtain and distribute information concerning

developments in, and extensions to, the Fortran language as

defined by existing standards. To take stands and make recommenda-

tions (after adequate consultation with all interested parties)

concerning the desirability or undesirability of implementing cer-

tain features in certain ways. in the hope of reducing the prolifera-

tion of dialects by reacting in a timely way to new language deve-

lopments".


4.4 Other Groups


No other reports were received.


5. Progress Reports


5.1 PFORT verifier


Mr. Morice gave a report on his implementation of PFORT. He

described the options available and explained a sample of output

(see Appendix D).


5.2 Other Reports


In the absence of Mr A. Walter (Atlas Lab.), a provisional

report on the Schneck-Angel optimising compiler was given by

Mr. Clarke (see Appendix E). Some sample outputs were available

for inspection.


6. Other Business


Mr Morice asked if any member knew of a standard conforming

Fortran program for 'relabel1ing' Fortran programs. Mr. Muxworthy

said that he knew of such a program for the IBM 7090.


Mr. P. Draper (of RTZ Computer Services, P.O. Box 19,

1 Redcliff Street, Bristol BS99 7JS) had written to enquire if any

member knew of a "compiler that is more sophisticated than either

IBM Fortran IV G or H and offers facilities that are more in line

with Univac Fortran V" for use on an IBM 360/50.


The members present knew of no such compiler, but suggested

than some of the pre-processors listed in the FORWORD newsletter

may provide some of the features required.


7.  Next Meeting

The next meeting will be held from 6.30-9.0 p.m. on 2nd October

at the Cunard Hotel, London as part of Datafair 75.


8.  The guest speaker,


Mr. B. Shearing, gave a presentation on compiling Fortran on

Small Machines and this was followed by questions and discus

(see Appendix B).

 

9. Details of Steering Committee Meeting Relevant to Members.


9.1 Commitments


Following the successful introduction of a system for

refereeing of algorithms and papers by members of the group for the

BCS publications, it was thought that a system of advisers on

specialist topics could be set up. This was a result of the

officers receiving requests for information relating to Fortran

matters and not knowing where to direct these requests. Any

member with specialist Fortran knowledge in fields such as:

simulation, statistics, numerical analysis, engineering,

computer graphics, compilers etc. who wishes to contribute

should contact a member of the committee.


9.2 Future Activities


In order to make arrangements for speakers, it will be

necessary to plan meetings well in advance, and it was proposed

that meetings will be held on the "first Monday in alternate

months" starting 1 December 1975, 2nd February 1976, 5th April 1976,

7th June 1976 then a break until 4th October 1976.




    APPENDIX A


M E M O R A N D U M



To: ANSI X3J3                                 From: British Computer Society

                                                    Fortran Specialist Group

Date: 8th September, 1975


Subject: Comments on Items under discussion


The following points arose at our meeting of 1st September 1975. The

comments relate to the decisions taken at the June 1975 meeting of X3J3:


1.   The definition of a collating sequence within letters and within digits

requires two further extentions to make the facility generally useful:


     a)    The collating sequence of letters should not overlap with that of

digits.


     b)    The position of the space (blank) character should be defined

(again, not overlapping with letters or digits) because padding

spaces may be introduced by certain of the character operations

provided in the new standard.


2.   We would like to see blank lines allowed between continuation lines in

the same way as comment lines.


3.   The group was very surprised to see the removal of Hollerith type.

Despite the good reasons for this, we think that a change with such large

implications to existing compilers and programs should have been

introduced as an 'intention' to be implemented at the next revision,

rather than being put into immediate effect.


The wide use of Hollerith type for the hash table technique does not seem

to be possible with the new type CHARACTER, and some provision (such as a

standard function, HASH) for converting CHARACTER type to INTEGER type

would be welcomed. Also ENCDDE and DECDDE functions or an assignment

statement could be used for numeric conversion of CHARACTER digits to

INTEGER type.


4.   We believe the latest syntax for character variables to be ambiguous. For

example:


CHARACTER (10) A (20)


may indicate A to be a single character variable of length 20 characters

or a character array of 20 elements each of length 10 characters. This is

a consequence of replacing < and > by ( and ) respectively in the syntax

given in Appendix X of the minutes of the March meeting of X3J3.




Appendix B


Summary of a talk by B. H. Shearing on Compiling Fortran on

Mini Computers.


Brian Shearing described the ideas which form the basis for

his implementation of a Fortran Compiler for a range of mini

computers.


It had been found that the small amount of core storage

available was not as severe a restriction as originally expected,

but the instruction sets provided on machines at extreme ends of the

range varied considerably and represented a problem which is often

not encountered on ranges of large machines.


An important feature of his implementation is the careful

definition of an intermediate language (between Fortran and machine

code), statements of which can be mapped easily onto the machine

codes of the range of machines.


A compiler for BASIC and one for a 'systems language' also

made use of the same intermediate language.


The translation of Fortran to intermediate language was

preformed by fairly conventional symbol table usage and stacking

algorithms. These had been kept as simple as possible and no

attempt had been made at optimisation.


Several Optimisations were possible as separate processes on

the intermediate language.


Some of the audience saw a similarity between the intermediate

language and APL.




Appendix C


Summary of CODASYL Fortran DBMLC Meetings


Meeting 5 12-14 February 1975. Host: Mr. J. Tyler, Luisiana State

University


A rough draft of the manipulation language syntax had been

prepared and discussions and irregularities and required changes

took place. The keyword ALL was changed to MULTIPLE in some

instances where its use caused conflict. The USE statement to

control global errors in COBOL was studied to see if there was

any equivalent facility required in Fortran. There was a sugges-

tion that the proposed ANSI X3J3 OPEN statement could be modified

by adding ACCESS-DB for Data Base.


Meeting 6 28-30 April 1975. Host Mr. T. Harris, Cricket Inn,

Roseville, Minnesota.


The committee voted 5 to 1 in favour of: "The general form

at all FORTRAN DML statements will be a DML verb followed by paren-

thesis enclosing a list parameters". Formal definitions were

drafted and approved for: Integer Variable, Variable, Character

Variable, Transfer List, DB Key, DB Names, DB Name, RUN UNIT.

The determination of the meanings of the expression RECURD=XYZ

was clarified. The COBOL USE statement could be replaced by

a 'procedural cal1' of the form ERR=SETA(. . .) where SETA

is a procedure name with an optional argument list which provides

global control in the event of an error.


Mr. M. Lavin gave a talk on the ANSI SPARC Committee work on

Data Base Systems.


There was discussion on the INVOKE statement.


Meeting 7 24-27th June, 1975. Host: Mr. M. Black, Ambassador Inn,

Decatur, Illinois.


The committee decided to study the sub-schema to determine

what would be necessary in a subschema language for FORTRAN.

(Up 'till now the committee had only considered the Data manipu-

lation language).


For example, the schema:

01 EMPLOYEE

02 A TYPE FIXED

02 BBBBCCCC TYPE CHARACTER (8)


might have a possible mapping in FORTRAN:


SUBSCHEMA SAM

RECORD/EMPLOY/A, B

INTEGER A

CHARACTER B


A draft list of contents for a document to be called FDBMLC

CODASYL FORTRAN DATA BASE MANIPULATION LANGUAGE was drawn up.

The document will contain sections on Introduction and need,

History and Background, Sub-Schema language specification for

FORTRAN, DML/statements, Exception Handling and Sample Programs with

all details.




Appendix D


    Report on PFORT Verifier


Mr. Morice's implementation was on an ICL 1904S computer and

required 42K of storage. The running speed was approximately 10

to 20 lines per second, which was considerably slower than the

normal Fortran compiler for that machine.


It had been necessary to write an ICL 1900 Fortran version

of routines called PACK and UNPACK but this was a fairly simple

matter and the complete implementation had taken about two man-

weeks.


His practical experience with the use of the program was that

it provided useful confirmation that programs were transportable,

particularly in situations as in his case, where a company uses

many different computers. It could act as an objective support to

internal company standards. His experience was that the number

of times PFORT would be used would be very small despite its use-

fulness. The reason for this was that those existing programs in

his company which were required on several machines, were already

operational on those machines, and for those programs being deve-

loped, its application would be of a 'once-only' nature.


The only suspected bug encountered was when a logical expres-

sion contained a construct of the form: .EQ.-4. This caused an

error message which indicated two consecutive operators.


Mr. Morice was willing to give further information to members

of the group upon request.


It was known that Dr. A. C. Day (UCL) had implemented PFORT

on an IBM 360 computer.




Appendix E


Provisional Report on Schneck-Ange1 Optimising Compiler


In addition to the points made in the minutes of the meeting

of 7 March 1975, a series of tests had been made on the compiler

and it had been found that (1) The compiler performed the sample

test shown in the Computer Journal Vol. 16 No. 4 November 1973

correctly. (2) The compiler failed to correctly optimise some

very simple tests because it appeared to ignore information on

input/output statements, COMMON and other non-executable state-

ments. (3) The compiler produced no significant change on

several existing routines that had been written by experienced

programmers. The IBM H level compiler reduced execution time

for these routines by 60% in one case. (4) In some tests the

code produced by the compiler was not Fortran. The code

generated was intended to act as comment to locate places where

temporary work vectors could be employed, and as such was useful,

but had the disadvantage of introducing a manual element into

the optimisation, i.e. the optimiser is not fully automatic.

(5) In one set of test data which had been generated by a Fortran

Macro-preprocessor, it was found that redundant working variables

generated by the macro expansions were not removed by the opti-

misor. This was disappointing because the text from the structured

pre-processor was amenable to optimisation. (6) The time to

optimise the source was typically about ten times that taken by

the standard compiler (on an ICL System 4).