=====================================
ZPT (Zope Page-Template) Architecture
=====================================

There are a number of major components that make up the page-template
architecture: 

- The TAL *compiler* and *interpreter*.  This is responsible for
  compiling source files and for executing compiled templates.  See
  the `zope.tal` package for more information.

- An *expression engine* is responsible for compiling expressions and
  for creating expression execution contexts.  It is common for
  applications to override expression engines to provide custom
  expression support or to change the way expressions are implemented.
  The `zope.app.pagetemplate` package uses this to implement trusted
  and untrusted evaluation; a different engine is used for each, with
  different implementations of the same type of expressions.

  Expression contexts support execution of expressions and provide
  APIs for setting up variable scopes and setting variables.  The
  expression contexts are passed to the TAL interpreter at execution
  time.
  
  The most commonly used expression implementation is that found in
  `zope.tales`.

- Page templates tie everything together. They assemble an expression
  engine with the TAL interpreter and orchestrate management of source
  and compiled template data.  See `zope.pagetemplate.interfaces`.

  
