Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > by-pkgid > 0b7eb7009605a11593fbe388d7fbee61 > files > 259

python-docs-2.2-9.1mdk.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>19. Python compiler package </title>
<META NAME="description" CONTENT="19. Python compiler package ">
<META NAME="keywords" CONTENT="lib">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<meta http-equiv="Content-Type" content="text/html; charset=">
<link rel="STYLESHEET" href="lib.css">
<link rel="first" href="lib.html">
<link rel="contents" href="contents.html" title="Contents">
<link rel="index" href="genindex.html" title="Index">
<LINK REL="next" href="sgi.html">
<LINK REL="previous" href="language.html">
<LINK REL="up" HREF="lib.html">
<LINK REL="next" href="module-compiler.html">
</head>
<body>
<DIV CLASS="navigation">
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A href="module-distutils.html"><img src="../icons/previous.gif"
  border="0" height="32"
  alt="Previous Page" width="32"></A></td>
<td><A HREF="lib.html"><img src="../icons/up.gif"
  border="0" height="32"
  alt="Up One Level" width="32"></A></td>
<td><A href="module-compiler.html"><img src="../icons/next.gif"
  border="0" height="32"
  alt="Next Page" width="32"></A></td>
<td align="center" width="100%">Python Library Reference</td>
<td><A href="contents.html"><img src="../icons/contents.gif"
  border="0" height="32"
  alt="Contents" width="32"></A></td>
<td><a href="modindex.html" title="Module Index"><img src="../icons/modules.gif"
  border="0" height="32"
  alt="Module Index" width="32"></a></td>
<td><A href="genindex.html"><img src="../icons/index.gif"
  border="0" height="32"
  alt="Index" width="32"></A></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" href="module-distutils.html">18.11 distutils  </A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="lib.html">Python Library Reference</A>
<b class="navlabel">Next:</b> <a class="sectref" href="module-compiler.html">19.1 The basic interface</A>
<br><hr>
</DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION0021000000000000000000">&nbsp;</A>
<BR>
19. Python compiler package 
</H1>

<P>

<P>
The Python compiler package is a tool for analyzing Python source code
and generating Python bytecode.  The compiler contains libraries to
generate an abstract syntax tree from Python source code and to
generate Python bytecode from the tree.

<P>
The <tt class="module"><a href="module-compiler.html">compiler</a></tt> package is a Python source to bytecode
translator written in Python.  It uses the built-in parser and
standard <tt class="module"><a href="module-parser.html">parser</a></tt> module to generated a concrete syntax
tree.  This tree is used to generate an abstract syntax tree (AST) and
then Python bytecode.

<P>
The full functionality of the package duplicates the builtin compiler
provided with the Python interpreter.  It is intended to match its
behavior almost exactly.  Why implement another compiler that does the
same thing?  The package is useful for a variety of purposes.  It can
be modified more easily than the builtin compiler.  The AST it
generates is useful for analyzing Python source code.

<P>
This chapter explains how the various components of the
<tt class="module"><a href="module-compiler.html">compiler</a></tt> package work.  It blends reference material with
a tutorial.

<P>
The following modules are part of the <tt class="module"><a href="module-compiler.html">compiler</a></tt> package:

<P>
<table class='synopsistable' valign='baseline'>
  <tr class='oddrow'>
      <td><b><tt class='module'><a href='module-compiler.html'>compiler</a></tt></b></td>
      <td>&nbsp;</td>
      <td class='synopsis'></td></tr>
  <tr><td><b><tt class='module'><a href='module-compiler.ast.html'>compiler.ast</a></tt></b></td>
      <td>&nbsp;</td>
      <td class='synopsis'></td></tr>
  <tr class='oddrow'>
      <td><b><tt class='module'><a href='module-compiler.visitor.html'>compiler.visitor</a></tt></b></td>
      <td>&nbsp;</td>
      <td class='synopsis'></td></tr>
</table>

<BR>
<P>

<DIV CLASS="navigation">
<p><hr>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A href="module-distutils.html"><img src="../icons/previous.gif"
  border="0" height="32"
  alt="Previous Page" width="32"></A></td>
<td><A HREF="lib.html"><img src="../icons/up.gif"
  border="0" height="32"
  alt="Up One Level" width="32"></A></td>
<td><A href="module-compiler.html"><img src="../icons/next.gif"
  border="0" height="32"
  alt="Next Page" width="32"></A></td>
<td align="center" width="100%">Python Library Reference</td>
<td><A href="contents.html"><img src="../icons/contents.gif"
  border="0" height="32"
  alt="Contents" width="32"></A></td>
<td><a href="modindex.html" title="Module Index"><img src="../icons/modules.gif"
  border="0" height="32"
  alt="Module Index" width="32"></a></td>
<td><A href="genindex.html"><img src="../icons/index.gif"
  border="0" height="32"
  alt="Index" width="32"></A></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" href="module-distutils.html">18.11 distutils  </A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="lib.html">Python Library Reference</A>
<b class="navlabel">Next:</b> <a class="sectref" href="module-compiler.html">19.1 The basic interface</A>
<hr>
<span class="release-info">Release 2.2, documentation updated on December 21, 2001.</span>
</DIV>
<!--End of Navigation Panel-->
<ADDRESS>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</ADDRESS>
</BODY>
</HTML>