publications: - title: "Testing Polymorphic Properties" 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: "Koen Claessen" link: "http://www.cse.chalmers.se/~koen/" year: "2010" doi: "http://dx.doi.org/10.1007/978-3-642-11957-6_8" abstract: "This paper is concerned with testing properties of polymorphic functions. The problem is that testing can only be performed on specific monomorphic instances, whereas parametrically polymorphic functions are expected to work for any type. We present a schema for constructing a monomorphic instance for a polymorphic property, such that correctness of that single instance implies correctness for all other instances. We also give a formal definition of the class of polymorphic properties the schema can be used for. Compared to the standard method of testing such properties, our schema leads to a significant reduction of necessary test cases." links: doi: "http://dx.doi.org/10.1007/978-3-642-11957-6_8" tags: - "XML" - "XML Schema" - "testing" researchr: "https://researchr.org/publication/BernardyJC10" cites: 0 citedby: 0 pages: "125-144" booktitle: "Programming Languages and Systems, 19th European Symposium on Programming, ESOP 2010, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2010, Paphos, Cyprus, March 20-28, 2010. Proceedings" editor: - name: "Andrew D. Gordon" link: "http://research.microsoft.com/en-us/um/people/adg/" volume: "6012" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-11956-9" kind: "inproceedings" key: "BernardyJC10" - 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: "Journal of Functional Programming" 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: "Proceedings of the ACM SIGPLAN Workshop on Genetic Programming, WGP 2008, Victoria, BC, Canada, September 20, 2008" editor: - name: "Ralf Hinze" link: "https://researchr.org/alias/ralf-hinze" - name: "Don Syme" link: "https://researchr.org/alias/don-syme" publisher: "ACM" isbn: "978-1-60558-060-9" kind: "inproceedings" key: "BernardyJZSP08" - title: "Parametricity and dependent types" 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: "Ross Paterson" link: "http://www.soi.city.ac.uk/~ross/" year: "2010" doi: "http://doi.acm.org/10.1145/1863543.1863592" abstract: "Reynolds' abstraction theorem shows how a typing judgement in System F can be translated into a relational statement (in second order predicate logic) about inhabitants of the type. We expose a similar result, where terms, types, and their relations are expressed in a single typed lambda calculus (a pure type system). Working within a single system dispenses the need for an interpretation layer, allowing for an unusually simple presentation. While the unification puts some constraints on the type system (which we spell out), the result applies to many interesting cases, including dependently-typed ones." links: doi: "http://doi.acm.org/10.1145/1863543.1863592" dblp: "http://dblp.uni-trier.de/rec/bibtex/conf/icfp/BernardyJP10" tags: - "translation" - "constraints" - "type system" - "logic" - "abstraction" researchr: "https://researchr.org/publication/BernardyJP10" cites: 0 citedby: 0 pages: "345-356" booktitle: "Proceeding of the 15th ACM SIGPLAN international conference on Functional programming, ICFP 2010, Baltimore, Maryland, USA, September 27-29, 2010" editor: - name: "Paul Hudak" link: "https://researchr.org/alias/paul-hudak" - name: "Stephanie Weirich" link: "https://researchr.org/alias/stephanie-weirich" publisher: "ACM" isbn: "978-1-60558-794-3" kind: "inproceedings" key: "BernardyJP10"