Changes between Version 1 and Version 2 of FortranTransformations


Ignore:
Timestamp:
01/31/19 03:33:14 (7 years ago)
Author:
wuwenhao
Comment:

--

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
    149= Fortran Transformations =
    250
     
    1967    A CALL-statement is transformed as a normal function call without a return-value.
    2068    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.)
    2177
    2278=== 1.3 Functions & Function Returned Values===