[/
 / Copyright (c) 2008 Eric Niebler
 /
 / Distributed under the Boost Software License, Version 1.0. (See accompanying
 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 /]

[/=========================================]
[section:resources Background and Resources]
[/=========================================]

Proto was initially developed as part of _xpressive_ to simplify the job of 
transforming an expression template into an executable finite state machine capable 
of matching a regular expression. Since then, Proto has found application in the 
redesigned and improved Spirit-2 and the related Karma library. As a result of 
these efforts, Proto evolved into a generic and abstract grammar and tree 
transformation framework applicable in a wide variety of DSEL scenarios.

The grammar and tree transformation framework is modeled on Spirit's grammar and 
semantic action framework. The expression tree data structure is similar to Fusion 
data structures in many respects, and is interoperable with Fusion's iterators and 
algorithms.

The syntax for the grammar-matching features of `proto::matches<>` is inspired by 
MPL's lambda expressions.

The idea for using function types for Proto's composite transforms is inspired by Aleksey Gurtovoy's
[@http://lists.boost.org/Archives/boost/2002/11/39718.php "round" lambda] notation.

[/=================]
[heading References]
[/=================]

[:[#boost_proto.users_guide.resources.SYB]Ren, D. and Erwig, M. 2006. A generic recursion toolbox for Haskell or: scrap your boilerplate systematically. In ['Proceedings of the 2006 ACM SIGPLAN Workshop on Haskell] (Portland, Oregon, USA, September 17 - 17, 2006). Haskell '06. ACM, New York, NY, 13-24. DOI=[@http://doi.acm.org/10.1145/1159842.1159845]]

[/======================]
[heading Further Reading]
[/======================]

A technical paper about an earlier version of Proto was accepted into the
[@http://lcsd.cs.tamu.edu/2007/ ACM SIGPLAN Symposium on Library-Centric Software 
Design LCSD'07], and can be found at [@http://lcsd.cs.tamu.edu/2007/final/1/1_Paper.pdf].
The tree transforms described in that paper differ from what exists today.

[endsect]
