mirror of
https://github.com/pineappleEA/pineapple-src.git
synced 2025-02-12 17:34:04 -05:00
46 lines
2.1 KiB
Plaintext
Executable File
46 lines
2.1 KiB
Plaintext
Executable File
[/
|
|
/ 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 EDSL 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]
|