publications: - title: "Generic programming with C++ concepts and Haskell type classes - a comparison" author: - name: "Jean-Philippe Bernardy" link: "http://www.chalmers.se/cse/EN/people/bernardy-jean-philippe" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Marcin Zalewski" link: "http://www.google.com" - name: "Sibylle Schupp" link: "http://www.sts.tu-harburg.de/~schupp/" year: "2010" doi: "http://dx.doi.org/10.1017/S095679681000016X" abstract: "Earlier studies have introduced a list of high-level evaluation criteria to assess how well a language supports generic programming. Languages that meet all criteria include Haskell because of its type classes and C++ with the concept feature. We refine these criteria into a taxonomy that captures commonalities and 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." links: doi: "http://dx.doi.org/10.1017/S095679681000016X" dblp: "http://dblp.uni-trier.de/rec/bibtex/journals/jfp/BernardyJZS10" tags: - "programming languages" - "object-oriented programming" - "generic programming" - "Haskell" - "C++" - "programming" - "subject-oriented programming" - "taxonomy" - "feature-oriented programming" researchr: "https://researchr.org/publication/BernardyJZS10" cites: 0 citedby: 0 journal: "JFP" volume: "20" number: "3-4" pages: "271-302" kind: "article" key: "BernardyJZS10" - title: "A comparison of c++ concepts and haskell type classes" author: - name: "Jean-Philippe Bernardy" link: "http://www.chalmers.se/cse/EN/people/bernardy-jean-philippe" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Marcin Zalewski" link: "http://www.google.com" - name: "Sibylle Schupp" link: "http://www.sts.tu-harburg.de/~schupp/" - name: "Andreas P. Priesnitz" link: "https://researchr.org/alias/andreas-p.-priesnitz" year: "2008" doi: "http://doi.acm.org/10.1145/1411318.1411324" 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." links: doi: "http://doi.acm.org/10.1145/1411318.1411324" tags: - "programming languages" - "generic programming" - "Haskell" - "C++" - "programming" - "taxonomy" researchr: "https://researchr.org/publication/BernardyJZSP08" cites: 0 citedby: 0 pages: "37-48" booktitle: "ICFP" kind: "inproceedings" key: "BernardyJZSP08" - title: "Generic Libraries in C++ with Concepts from High-Level Domain Descriptions in Haskell" author: - name: "Daniel Lincke" link: "http://www.pik-potsdam.de/members/lincke" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Marcin Zalewski" link: "http://www.google.com" - name: "Cezar Ionescu" link: "http://www.pik-potsdam.de/members/ionescu" year: "2009" doi: "http://dx.doi.org/10.1007/978-3-642-03034-5_12" abstract: "A class of closely related problems, a problem domain, can often be described by a domain-specific language, which consists of algorithms and combinators useful for solving that particular class of problems. Such a language can be of two kinds: it can form a new language or it can be embedded as a sublanguage in an existing one. We describe an embedded DSL in the form of a library which extends a general purpose language. Our domain is that of vulnerability assessment in the context of climate change, formally described at the Potsdam Institute for Climate Impact Research. The domain is described using Haskell, yielding a domain specific sublanguage of Haskell that can be used for prototyping of implementations. In this paper we present a generic C++ library that implements a domain-specific language for vulnerability assessment, based on the formal Haskell description. The library rests upon and implements only a few notions, most importantly, that of a monadic system, a crucial part in the vulnerability assessment formalisation. We describe the Haskell description of monadic systems and we show our mapping of the description to generic C++ components. Our library heavily relies on concepts, a C++ feature supporting generic programming: a conceptual framework forms the domain-specific type system of our library and parametrised types and functions, ``typed'' by the concepts in our conceptual framework, represent the combinators and algorithms of the domain. Furthermore, we discuss what makes our library a domain specific language and how our domain-specific library scheme can be used for other domains (concerning language design, software design, and implementation techniques). " links: doi: "http://dx.doi.org/10.1007/978-3-642-03034-5_12" tags: - "programming languages" - "object-oriented programming" - "rule-based" - "generic programming" - "software components" - "embedded software" - "design research" - "software component" - "language design" - "Haskell" - "type system" - "C++" - "DSL" - "programming" - "context-aware" - "design" - "feature-oriented programming" - "domain-specific language" researchr: "https://researchr.org/publication/LinckeJZI09" cites: 0 citedby: 0 pages: "236-261" booktitle: "DSL" kind: "inproceedings" key: "LinckeJZI09" - title: "Scoping Rules on a Platter: A Framework for Understanding and Specifying Name Binding" author: - name: "Larisse Voufo" link: "https://researchr.org/alias/larisse-voufo" - name: "Marcin Zalewski" link: "http://www.google.com" - name: "Andrew Lumsdaine" link: "http://osl.iu.edu/~lums/" year: "2014" doi: "10.1145/2633628.2633633" links: "url": "http://doi.acm.org/10.1145/2633628.2633633" researchr: "https://researchr.org/publication/Voufo%3A2014%3ASRP%3A2633628.2633633" cites: 0 citedby: 0 pages: "59-70" booktitle: "Proceedings of the 10th ACM SIGPLAN Workshop on Generic Programming" kind: "inproceedings" key: "Voufo:2014:SRP:2633628.2633633" - title: "Proceedings of the ACM SIGPLAN Workshop on Generic Programming, WGP 2010, Baltimore, MD, USA, September 27-29, 2010" year: "2010" links: dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icfp/2010wgp" tags: - "generic programming" - "programming" researchr: "https://researchr.org/publication/icfp-2010wgp" cites: 0 citedby: 0 booktitle: "Proceedings of the ACM SIGPLAN Workshop on Generic Programming, WGP 2010, Baltimore, MD, USA, September 27-29, 2010" conference: "ICFP" editor: - name: "Bruno C. d. S. Oliveira" link: "http://ropas.snu.ac.kr/~bruno/" - name: "Marcin Zalewski" link: "http://www.google.com" publisher: "ACM" isbn: "978-1-4503-0251-7" kind: "proceedings" key: "icfp-2010wgp"