SFTRAN3(ID:6882/sft002)

JPL Structured Fortran 


Structured Fortran 3

Structured Fortran dialect developed at JPL/Pasadena




Related languages
SFTRAN II => SFTRAN3   Extension of

References:
  • Lawson "SFTRAN Language Constructs Supported by a Portable Preprocessor" JPL 437 1-25-78 view details
  • SFTRAN3 Programmer's Reference Manual (Jet Propulsion Laboratory Document no. 1846-98, Dec. 1, 1978). view details
  • Brown "Effective Structured Programming Using SFTRAN3" JPL 450 10-25-79 view details
  • Hammer "Timing of SFTRAN3 on the UNIVAC 1108" JPL 448 7-19-79 view details
  • Beebe, Nelson H. F. "SFTRAN3 Installation Guide", Utah Center for Scientific Computing Tech Report 1980 view details
  • Beebe, Nelson H. F.; Lawson, C. L. and J. A. Flynn "SFTRAN3 Programmers Reference Manual", Utah Center for Scientific Computing Tech Report 1980 view details
  • Jackson "Using SFTRAN3 on the Campus IBM 3032" JPL 461 5-05-80 view details
  • Jackson "Using SFTRAN3 on the Sigma 5" JPL 460 5-05-80 view details
  • Lawson "Installation Guidelines for SFTRAN3, (C1) Surface Interpolation, and Out-of-Core Least Squares Programs" JPL 451 1-04-80 view details
  • Lawson "Installation Guidelines for the SFTRAN3 Structured FORTRAN Preprocessor Level 12" JPL 462 6-19-80 view details
  • Lawson "Maintenance and Enhancement of the SFTRAN3 Language and Preprocessor" JPL 2-14-80 view details
  • Lawson "Subprogram and Common Cross-References for the Portable SFTRAN3 Preprocessor, Level 26" JPL 452 1-16-80 view details
  • Lawson "Subprogram and Common Cross-References for THE UNIVAC 1108 Version of the SFTRAN3 Preprocessor" JPL 453 1-16-80 view details
  • Flynn Lawson Snyder Tsitsivas "Description of SFTRAN3 for submission to COSMIC" JPL 477 5-20-81 view details
  • Lawson "Installation Guidelines for the SFTRAN3 Structured FORTRAN Preprocessor Level 13" JPL 475 6-05-81 view details
  • Lawson Krogh Snyder Tsitsivas "Packed Data Structures in SFTRAN3" JPL 481 9-10-81 view details
  • Lawson "First Execution of SFTRAN3 on a Microcomputer" JPL 507 1-31-84 view details
  • Lawson "The SFTRAN3 Preprocessor, Level 16-d" JPL 516 1-16-86 view details
  • Beebe, Nelson H. F. "A Fortran 77 and SFTRAN3 Prettyprinter", Utah Center for Scientific Computing Tech Report 1988 view details
  • Beebe, Nelson H. F. "A New SFTRAN3 Preprocessor", Utah Center for Scientific Computing Tech Report 1988 view details
    Resources
    • NElson Beebe's SFTRAN3 page
      external link
    • Beebe describing SFTRAN3 at Sloan history of programming languages

      During the later 1970s and the 1980s, I was actively involved in
      developing a large software package, PLOT79, based on the 1979
      SIGGRAPH CORE Proposal. This code was largely written in SFTRAN3, a
      very nice structured Fortran dialect developed at JPL/Pasadena, and
      used at that time for part of the flight control software for some of
      the JPL space probes.


      I have a great fondness for SFTRAN3, since it made it possible to
      write a large amount of highly-readable code, with a very low
      incidence of bugs, that could be automatically translated to Fortran.
      The PLOT79 source tree in my system has 178,807 lines of SFTRAN3 code
      (counted as I wrote this letter).


      Today, such a project would be done in C or C++, or perhaps Java, but
      in the late 1970s, of these, only C existed, and it was then available
      only on a very limited set of environments. Pascal was far too
      restrictive and nonportable, and in any event, PLOT79 was intended to
      be a support library for scientific software, which was largely
      written in Fortran. Thus, the SFTRAN3 language is largely of
      historical interest today.


      One of the projects that I did with SFTRAN3 was to substantially
      extend Brenda Baker's struct processor, which turned Fortran 66 code
      into Ratfor, creating strsf3, which did much the same thing, but with
      SFTRAN3 as the target language. SFTRAN3 is a much richer and cleaner
      language than Ratfor.


      Because this translation added structure, turning GOTOs into nice DO
      WHILE, DO UNTIL, ... loops, it could usefully be employed to translate
      a substantial body (> 100K lines) of legacy code to SFTRAN3.
      external link