\documentstyle[twoside,11pt,myformat]{report}

\title{\bf Python Reference Manual}

\author{
	Guido van Rossum \\
	Dept. CST, CWI, Kruislaan 413 \\
	1098 SJ Amsterdam, The Netherlands \\
	E-mail: {\tt guido@cwi.nl}
}

% Tell \index to actually write the .idx file
\makeindex

\begin{document}

\pagenumbering{roman}

\maketitle

\begin{abstract}

\noindent
Python is a simple, yet powerful, interpreted programming language
that bridges the gap between C and shell programming, and is thus
ideally suited for ``throw-away programming'' and rapid prototyping.
Its syntax is put together from constructs borrowed from a variety of
other languages; most prominent are influences from ABC, C, Modula-3
and Icon.

The Python interpreter is easily extended with new functions and data
types implemented in C.  Python is also suitable as an extension
language for highly customizable C applications such as editors or
window managers.

Python is available for various operating systems, amongst which
several flavors of {\UNIX}, Amoeba, the Apple Macintosh O.S.,
and MS-DOS.

This reference manual describes the syntax and ``core semantics'' of
the language.  It is terse, but attempts to be exact and complete.
The semantics of non-essential built-in object types and of the
built-in functions and modules are described in the {\em Python
Library Reference}.  For an informal introduction to the language, see
the {\em Python Tutorial}.

\end{abstract}

\pagebreak

{
\parskip = 0mm
\tableofcontents
}

\pagebreak

\pagenumbering{arabic}

\include{ref1}		% Introduction
\include{ref2}		% Lexical analysis
\include{ref3}		% Data model
\include{ref4}		% Execution model
\include{ref5}		% Expressions and conditions
\include{ref6}		% Simple statements
\include{ref7}		% Compound statements
\include{ref8}		% Top-level components

\input{ref.ind}

\end{document}
