% Introduction
\vspace{-0.5in}

{\scriptsize Revision: \footnotesize \$Id: cha-intro.ltx-inc,v 1.1 2010/05/21 20:12:20 joverbey Exp $ $ - based on 2008/08/08 nchen}

Photran is an IDE for Fortran 77--2008 that is built on top of
Eclipse. It is structured as an Eclipse feature, in other words, as a set of
plug-ins that are designed to be used together. Starting with version 3.0, it is
an extension of C/C++ Development Tools (CDT), the Eclipse IDE for C/C++.
The first version of Photran was created by hacking a copy of CDT to support
Fortran instead of C/C++, but now we have developed a mechanism for adding new
languages into CDT, allowing the Fortran support code to be in its own set of
plug-ins.

Our purpose in writing Photran was to create a refactoring tool for Fortran.
Thus, Photran has a complete parser and program representation. Photran also
adds a Fortran editor and several preference pages to the CDT user interface,
as well as Fortran-specific project wizards and support for several Fortran
compilers.

Photran is part of the Parallel Tools Platform (PTP) project at the
Eclipse Foundation, which provides the Web site, Git repository, and
Bugzilla repository.  The Web site is 
\href{http://www.eclipse.org/photran}{http://www.eclipse.org/photran},
and bugs can be submitted at
\href{https://bugs.eclipse.org}{https://bugs.eclipse.org}
under Tools $>$ PTP by selecting one of the ``Photran'' components.


\vspace{-0.2in}

\section*{How To Read This Guide}

The \textit{Photran Developer's Guide} is intended to complement the
source code in the repository; it is not a substitute for reading
the actual source code.  Rather, it contains high-level information that
\textit{can't} easily be derived simply by reading the source code.

The \textit{Photran Developer's Guide} has been divided into two documents.
This document is Part~I: It contains general information that every developer
should know.  Part~II gives more detail about specific components of Photran;
it should be used as a reference, depending on what specific parts of Photran
you want to work on.


\vspace{-0.2in}

\section*{Getting Started} 

If you have not already, work through the items on the ``Checklist for New
Developers'' at the beginning of this manual.
In particular, \textit{please} join the ptp-dev mailing list, and use it to
ask for help!  Although Photran is better documented than many projects,
you will probably encounter problems that you cannot resolve simply by reading
the documentation or reverse engineering the code.

When your contribution is finished, follow the procedure in
Appendix~\ref{app:contributing} to contribute your code to the ``official''
version of Photran.