ACM Home Page
Please provide us with feedback. Feedback
Scrap++: scrap your boilerplate in C++
Full text PdfPdf (196 KB)
Source International Conference on Functional Programming archive
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming table of contents
Portland, Oregon, USA
SESSION: Session III table of contents
Pages: 66 - 75  
Year of Publication: 2006
ISBN:1-59593-492-6
Authors
Gustav Munkby  Chalmers University of Technology
Andreas Priesnitz  Chalmers University of Technology
Sibylle Schupp  Chalmers University of Technology
Marcin Zalewski  Chalmers University of Technology
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 77,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1159861.1159871
What is a DOI?

ABSTRACT

"Scrap Your Boilerplate" (SYB) is a well studied and widely used design pattern for generic traversal in the Haskell language, but almost unknown to generic programmers in C++. This paper shows that SYB can be implemented in C++. It identifies the features and idioms of C++ that correspond to the Haskell constructs that implement SYB, or can be used to emulate them, and provides a prototype C++ implementation.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
A. Alexandrescu. Modern C++ Design.C++ In-Depth Series. Addison-Wesley, 2001.
 
2
 
3
The Boost initiative for free peer-reviewed portable C++ source libraries. http://www.boost.org.
 
4
 
5
J. de Guzman and D. Marsden. Fusion library homepage. http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html.
 
6
P. Dimov. Boost Bind library. http://www.boost.org/libs/bind/bind.html.
 
7
U. W. Eisenecker, F. Blinn, and K. Czarnecki. A solution to the constructor-problem of mixin-based programming in C++.In1st Workshop on C++ Template Programming, Oct. 2000.
 
8
 
9
D. Gregor, J. Järvi, J. G. Siek, A. Lumsdaine, G. D. Reis, and B. Stroustrup. Concepts: First-class language support for generic programming. In Proc. 21st ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Oct. 2006.
 
10
R. Hinze and A. Löh. "Scrap your boilerplate" revolutions. In T. Uustalu, editor, Proc. 8th International Conf. on the Mathematics of Program Construction (MPC), Lecture Notes in Computer Science. Springer-Verlag, 2006.
 
11
R. Hinze, A. Löh, and B. C. d. S. Oliveira. "Scrap your boilerplate" reloaded. In P. Wadler and M. Hagiya, editors, Proc. 8th International Symposium on Functional and Logic Programming (FLOPS), pages 13--29, 2006.
 
12
J. Järvi and G. Powell. Boost Tuple Library (BTL) homepage. http://www.boost.org/libs/tuple/doc/tuple_users_guide.html.
 
13
 
14
 
15
16
17
18
 
19
 
20
N. Myers. A new and useful template technique: "Traits". C++ Report, 7(5):32--35, June 1995.
 
21
E. Niebler. Segmented Fusion - a-ha! http://article.gmane.org/gmane.comp.parsers.spirit.devel/2765.
 
22
P. Nogueira Iglesias. Polytypic Functional Programming and Data Abstraction. PhD thesis, School of Comp. Science and Information Technology, The University of Nottingham, UK, Jan. 2006.
 
23
 
24
S. Peyton Jones and J. Hughes. Haskell 98: A non-strict, purely functional language. Technical report, Feb. 1999. http://haskell.org/onlinereport.
 
25
A. Priesnitz and S. Schupp. From generic invocations to generic implementations. In 6th Workshop on Parallel/High- performance Object-Oriented Scientific Computing (POOSC), July 2006. to appear.
26
 
27
 
28
A. A. Stepanov and M. Lee. The Standard Template Library. Hewlett Packard Laboratories, Feb. 1995.
 
29
Arie van Deursen , Joost Visser, Source model analysis using the JJTraveler visitor combinator framework, Software—Practice & Experience, v.34 n.14, p.1345-1379, November 2004
30
 
31
E. Winch. Heterogeneous lists of named objects. In Second Workshop on C++ Template Programming, Oct. 2001.


Collaborative Colleagues:
Gustav Munkby: colleagues
Andreas Priesnitz: colleagues
Sibylle Schupp: colleagues
Marcin Zalewski: colleagues