ACM Home Page
Please provide us with feedback. Feedback
A comparison of c++ concepts and haskell type classes
Full text PdfPdf (286 KB)
Source
International Conference on Functional Programming archive
Proceedings of the ACM SIGPLAN workshop on Generic programming table of contents
Victoria, BC, Canada
SESSION: Session 2 table of contents
Pages 37-48  
Year of Publication: 2008
ISBN:978-1-60558-060-9
Authors
Jean-Philippe Bernardy  Chalmers University of Technology, Gothenburg, Sweden
Patrik Jansson  Chalmers University of Technology, Gothenburg, Sweden
Marcin Zalewski  Chalmers University of Technology, Gothenburg, Sweden
Sibylle Schupp  Chalmers University of Technology, Gothenburg, Sweden
Andreas Priesnitz  Chalmers University of Technology, Gothenburg, Sweden
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 125,   Citation Count: 1
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/1411318.1411324
What is a DOI?

ABSTRACT

Earlier studies have introduced a list of high-level evaluation criteria to assess how well a language supports generic programming. Since each language that meets all criteria is considered generic, those criteria are not fine-grained enough to differentiate between languages for generic programming. We refine these criteria into a taxonomy that captures differences between type classes in Haskell and concepts in C++, and discuss which differences are incidental and which ones are due to other language features. The taxonomy allows for an improved understanding of language support for generic programming, and the comparison is useful for the ongoing discussions among language designers and users of both languages.


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
 
2
W. Brown, C. Jefferson, A. Meredith, and J. Widman. Named requirements for C++ concepts. Technical Report N2581=08-0091, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++, Mar. 2008.
3
4
5
6
 
7
 
8
J. Gibbons. Datatype-generic programming. In Spring School on Datatype-Generic Programming, volume 4719 of LNCS, pages 1--71. Springer, 2007.
 
9
P. Gottschling. Fundamental algebraic concepts in concept-enabled C++. Technical Report 638, Indiana University, 2006.
 
10
P. Gottschling. Concept implication and requirement propagation. Technical Report N2646=08-0156, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++, May 2008.
 
11
D. Gregor. ConceptGCC - a prototype compiler for C++ concepts. http://www.generic-programming.org/software/ConceptGCC/, Jan. 2008.
 
12
D. Gregor. Type-soundness and optimization in the concepts proposal. Technical Report N2576=08-0086, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++, Mar. 2008.
 
13
D. Gregor and J. Siek. Implementing concepts. Technical Report N1848=05-0108, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++, Aug. 2005.
14
 
15
D. Gregor, B. Stroustrup, J. Widman, and J. Siek. Proposed wording for concepts (revision 5). Technical Report N2617=08-0127, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++, May 2008.
 
16
R. Hinze and S. Peyton Jones. Derivable type classes. In G. Hutton, editor, Proc. 2000 ACM SIGPLAN Haskell Workshop, volume 41.1 of Electronic Notes in Theoretical Computer Science. Elsevier Science, 2001.
17
 
18
M. Jazayeri, R. Loos, and D. Musser, editors. Generic Programming: International Seminar, Dagstuhl Castle, Germany, 1998, Selected Papers, volume 1766 of LNCS, 2000. Springer.
19
 
20
 
21
 
22
W. Kahl and J. Scheffczyk. Named instances for Haskell type classes. In R. Hinze, editor, Proc. 2001 ACM SIGPLAN Haskell Workshop, pages 77--99. Elsevier Science, 2001.
 
23
O. Kiselyov and S. Peyton Jones. Choosing a type-class instance based on the context, Apr. 2008. URL http://haskell.org/haskellwiki/GHC/AdvancedOverlap.
 
24
O. Kiselyov and C.-C. Shan. Lightweight static resources, for safe embedded and systems programming. In Draft Proceedings of Trends in Functional Programming. Seton Hall University, 2007.
 
25
J. Meacham. Class alias proposal for Haskell, 2006. URL http://repetae.net/recent/out/classalias.html.
 
26
N. Mitchell. Deriving generic functions by example. Technical report, Dept. of Computer Science, University of York, UK, 2007. Tech. Report YCS-2007-421.
27
 
28
S. Peyton Jones. Haskell 98 Language and Libraries: the Revised Report. Cambridge University Press, 2003.
 
29
S. Peyton Jones, M. Jones, and E. Meijer. Type classes: an exploration of the design space. In Haskell Workshop, 1997.
 
30
R. Rivera, B. Dawes, and D. Abrahams. The boost C++ libraries. http://www.boost.org/, 2008.
31
32
 
33
T. Sheard. Generic programming in Ωmega. In Datatype-Generic Programming, volume 4719 of LNCS, pages 258--284. Springer, 2007.
34
35
 
36
A. A. Stepanov and M. Lee. The standard template library. Technical Report HPL-95-11(R.1), Hewlett Packard Laboratories, Palo Alto, CA, USA, Nov. 1995.
37
38
 
39
 
40
41
 
42
J. Willcock, J. Järvi, A. Lumsdaine, and D. Musser. A formalization of concepts for generic programming. In Concepts: a Linguistic Foundation of Generic Programming at Adobe Tech Summit. Adobe Systems, Apr. 2004.
 
43
M. Zalewski, A. P. Priesnitz, C. Ionescu, N. Botta, and S. Schupp. Multi-language library development: From Haskell type classes to C++ concepts. In MPOOL 2007, 2007.


Collaborative Colleagues:
Jean-Philippe Bernardy: colleagues
Patrik Jansson: colleagues
Marcin Zalewski: colleagues
Sibylle Schupp: colleagues
Andreas Priesnitz: colleagues