]>
Commit | Line | Data |
---|---|---|
1 | [/ | |
2 | / Copyright (c) 2008 Eric Niebler | |
3 | / | |
4 | / Distributed under the Boost Software License, Version 1.0. (See accompanying | |
5 | / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | /] | |
7 | ||
8 | [/=========================================] | |
9 | [section:resources Background and Resources] | |
10 | [/=========================================] | |
11 | ||
12 | Proto was initially developed as part of _xpressive_ to simplify the job of | |
13 | transforming an expression template into an executable finite state machine capable | |
14 | of matching a regular expression. Since then, Proto has found application in the | |
15 | redesigned and improved Spirit-2 and the related Karma library. As a result of | |
16 | these efforts, Proto evolved into a generic and abstract grammar and tree | |
17 | transformation framework applicable in a wide variety of EDSL scenarios. | |
18 | ||
19 | The grammar and tree transformation framework is modeled on Spirit's grammar and | |
20 | semantic action framework. The expression tree data structure is similar to Fusion | |
21 | data structures in many respects, and is interoperable with Fusion's iterators and | |
22 | algorithms. | |
23 | ||
24 | The syntax for the grammar-matching features of `proto::matches<>` is inspired by | |
25 | MPL's lambda expressions. | |
26 | ||
27 | The idea for using function types for Proto's composite transforms is inspired by Aleksey Gurtovoy's | |
28 | [@http://lists.boost.org/Archives/boost/2002/11/39718.php "round" lambda] notation. | |
29 | ||
30 | [/=================] | |
31 | [heading References] | |
32 | [/=================] | |
33 | ||
34 | [:[#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]] | |
35 | ||
36 | [/======================] | |
37 | [heading Further Reading] | |
38 | [/======================] | |
39 | ||
40 | A technical paper about an earlier version of Proto was accepted into the | |
41 | [@http://lcsd.cs.tamu.edu/2007/ ACM SIGPLAN Symposium on Library-Centric Software | |
42 | Design LCSD'07], and can be found at [@http://lcsd.cs.tamu.edu/2007/final/1/1_Paper.pdf]. | |
43 | The tree transforms described in that paper differ from what exists today. | |
44 | ||
45 | [endsect] |