Changes between Version 1 and Version 2 of FortranTransformations
- Timestamp:
- 01/31/19 03:33:14 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FortranTransformations
v1 v2 1 = Supported Subset of Fortran Language = 2 3 == Program Units == 4 * `PROGRAM` ''program-name'' 5 '''and''' `END`[`PROGRAM` [''program-name'']] 6 (R1101 -- 1103) 7 * `MODULE` ''module-name'' 8 '''and''' `END`[`MODULE` [''module-name'']] 9 (R1104 -- 1106) 10 * `BLOCK DATA` [''block-data-name''] 11 '''and''' `END` [`BLOCK DATA` [''block-data-name'']] 12 * `SUBROUTINE` 13 * `FUNCTION` 14 * Labels 15 16 == Types == 17 * `REAL` `DOUBLE PRECISION` 18 * `INTEGER` 19 * `CHARACTER` 20 * `LOGICAL` 21 * `IMPLICIT` `NONE` (TODO: Implement the check, when it is used.) 22 23 == Expressions == 24 * `` 25 26 (array sections) 27 28 == Statements == 29 * `USE` ''module-name'' [, ''rename-list''] 30 '''or''' `USE` ''module-name'' , `ONLY` : [ ''only-list'' ] 31 (R1107 -- 1109) 32 33 * `CALL` 34 35 36 * `DO` (struct) `END DO` 37 * `DO WHILE` 38 * `EXIT` 39 * `CONTINUE` 40 * `IF` (struct) `THEN` `ELSE` 41 * `GOTO` & computed `GOTO` 42 43 44 45 46 47 48 1 49 = Fortran Transformations = 2 50 … … 19 67 A CALL-statement is transformed as a normal function call without a return-value. 20 68 Argument variables with scalar types are transformed as an address-of expression. 69 70 (Same procedures should be applied on any other non-array type arguments, like structs.) 71 72 (If non-array argument variables are declared as passed-by-value, there should be no change.) 73 74 (An array argument variable will be handled by 'array-lambda', an array-type argument declared as value) 75 76 (['''ONLT TRUE FOR NON MULTI-THREAD PROGRAMS'''] Analysis to determine whether parameters could be modified in the coerce of the call; If a parameter is proved to be never modified then it can be transformed as it self.) 21 77 22 78 === 1.3 Functions & Function Returned Values===
