Public Review Comment # 1

To:	J3

From:	Craig Dedo

Date:	November 11, 2002

Subject:	Public Review Comment # 1 by Todd Plessel

Public Review Comment #1

From: Todd Plessel plessel.todd@epa.gov

Sent: Wednesday, October 9, 2002 9:35 PM

To: Donovan, Deborah

Subject: Comments on draft Fortran 2000 Spec.

ftp://ftp.j3-fortran.org/j3/doc/standing/2002/02-007r3/007.txt.gz

Some suggestions:

> 24 3.3.1 Free source form

> 25 In free source form there are no restrictions on where a statement (or portion of a statement) may

> 26 appear within a line. A line may contain zero characters. If a line consists entirely of characters of

> 27 default kind (4.4.4), it may contain at most 132 characters. If a line

contains any character that is not

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

#1. Maximum line length should be changed to something much larger (4096 or more - like Standard C) to accommodate macro expansion (a form of code-generation).

#2. The Standard should address the Standard Preprocessor and make it 100% compatible with the Standard C Preprocessor, including: token glue operator '##', __FILE__, __LINE__, __FUNCTION__.

(These are needed to implement Design By Contract assertion macros.)

#3. Add direct support (language syntax) for Design By Contract:

o class invariants

o routine preconditions

o routine postconditions

o check assertion

o loop invariants

o loop variants

o debug statement

optionally checkable (depending on compilation flags) at runtime.

#4. Add support for program arguments (like C main( int argc, char* argv[] )) and an integer return value for program (to facilitate interoperability with other programs/processes).

#5. Make the process name, (contained in argv[0] in C), available via a Standard Library function, e.g.,

FUNCTION PROCESS_NAME

CHARACTER(*) PROCESS_NAME

(This will facilitate the construction of useful failure messages within reusable libraries. Perhaps with thread id too...)

#6. Provide Standard Library routines for registering callback subroutines/functions: atstart, atstop to facilitate initialization and finalization of external

References

02-007r3, Fortran 2000 Committee Draft

[End of J3 / 02-317]