Partial support for integer divisions in access vectors
[suif.git] / html / man_fixfortran.1.html
blob2a39ecc93e5ba8b1412db91052ef284069d84fcd
1 <!-- manual page source format generated by PolyglotMan v3.0.7, -->
2 <!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
4 <HTML>
5 <HEAD>
6 <TITLE>Man page for fixfortran.1</TITLE>
7 </HEAD>
8 <BODY bgcolor=white>
9 <A HREF="#toc">Table of Contents</A><P>
11 <H2><A NAME="sect0" HREF="#toc0">Name</A></H2>
13 <P>
14 fixfortran - final processing for the SUIF Fortran 77
15 front end
17 <H2><A NAME="sect1" HREF="#toc1"><B>Synopsis</B></A></H2>
19 <P>
20 <B>fixfortran</B> <I>infile</I> <I>outfile</I>
22 <H2><A NAME="sect2" HREF="#toc2"><B>Description</B></A></H2>
24 <P>
25 The <I>fixfortran</I> program forms the last of four passes that
26 constitute the SUIF front end for Fortran 77. The first
27 three passes are <I>sf2c,</I> <I>cpp</I> (the standard C pre-processor,
28 not SUIF specific), and <I>snoot.</I> The process is as follows:
29 The <I>sf2c</I> pass converts from Fortran to a special form of C
30 that retains some special Fortran information, including
31 the Fortran array types, encoded in C constructs such as
32 variables with special names. The <I>cpp</I> and <I>snoot</I> passes
33 convert from this C code directly to the corresponding
34 SUIF representation. These two C passes have no knowledge
35 of the Fortran information. Then fixfortran converts from
36 the SUIF representation of C code to a representation of
37 Fortran that reconstructs critical Fortran information
38 that was encoded in the C representation.
39 <P>
40 This scheme allows us to take advantage of an existing Cto-SUIF
41 converter and most of an existing Fortran-to-C
42 converter. By making some modifications to the Fortranto-C
43 converter and adding this pass, we can get back the
44 most important Fortran information while re-using all the
45 existing code.
46 <P>
47 It is essential that <I>fixfortran</I> is run immediately after
48 <I>snoot.</I> Any other pass might change the code in such a way
49 that <I>fixfortran</I> will not find the very specially patterned
50 code sf2c uses to encode the Fortran information. <I>fixfor</I><B>_</B>t<I>ran</I>
51 will also be entirely confused and unable to function
52 if run on code that was originally C not produced by sf2c.
53 In either case, fixfortran will likely fail with an error
54 message and even if it does produce an output file, the
55 resulting code is likely to be incorrect.
57 <H2><A NAME="sect3" HREF="#toc3"><B>See</B> <B>Also</B></A></H2>
59 <P>
60 <A HREF="man_sf2c.1.html">sf2c(1)</A>
61 , <A HREF="man_cpp.1.html">cpp(1)</A>
62 , <A HREF="man_snoot.1.html">snoot(1)</A>
65 <H2><A NAME="sect4" HREF="#toc4"><B>History</B></A></H2>
67 <P>
68 This program was written by Chris Wilson. Before it
69 existed, some of its functionality was implemented in earlier
70 versions of the C front end, <I>snoot</I> and <I>snout.</I>
71 <P>
73 <HR><P>
74 <A NAME="toc"><B>Table of Contents</B></A><P>
75 <UL>
76 <LI><A NAME="toc0" HREF="#sect0">Name</A></LI>
77 <LI><A NAME="toc1" HREF="#sect1">Synopsis</A></LI>
78 <LI><A NAME="toc2" HREF="#sect2">Description</A></LI>
79 <LI><A NAME="toc3" HREF="#sect3">See Also</A></LI>
80 <LI><A NAME="toc4" HREF="#sect4">History</A></LI>
81 </UL>
82 </BODY></HTML>