% Introduction
\vspace{-0.5in}

Photran is an IDE for Fortran 77, 90, 95, and 2003 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++.
Previous versions of Photran were 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, CVS 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} 

This document explains the design of Photran so that interested contributors
could fix a bug or add a refactoring. Contributors should know how to use
Photran and how CDT works. There is a short
\href{http://www.eclipse.org/photran/documentation.php}{\emph{Getting Started
Guide}} on the Photran website.

Contributors also need to understand Eclipse and how to build Eclipse plug-ins
before they read this document. We recommend reading
\href{http://www.amazon.com/Eclipse-Building-Commercial-Quality-Plug-Ins/dp/0321228472}{\emph{Building
Commercial-Quality Plug-ins}} and
\href{http://www.amazon.com/Java-Developers-Guide-Eclipse-2nd/dp/0321305027/}{\emph{The
Java Developer's Guide to Eclipse}} for Eclipse newcomers.

This is a \emph{duplex} guide. The main chapters provide general descriptions of
the various components and how they interact. The appendix describes concrete
examples from Photran so that contributors can familiarize themselves with
actual code and implementation details. This guide complements the source code
in the repository; it is \underline{not a substitute} for reading the actual
source code.