publications: - title: "Polytypic Compact Printing and Parsing" author: - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" year: "1999" doi: "http://link.springer.de/link/service/series/0558/bibs/1576/15760273.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1576/15760273.htm" tags: - "polytypic" - "parsing" researchr: "https://researchr.org/publication/JanssonJ99" cites: 0 citedby: 0 pages: "273-287" booktitle: "Programming Languages and Systems, 8th European Symposium on Programming, ESOP 99, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 99, Amsterdam, The Netherlands, 22-28 March, 1999, Proceedings" editor: - name: "S. Doaitse Swierstra" link: "http://www.cs.uu.nl/staff/doaitse.html" volume: "1576" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-65699-5" kind: "inproceedings" key: "JanssonJ99" - title: "Polytypic Programming" author: - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "1996" tags: - "polytypic programming" - "Haskell" - " QML" - "programming" - "polytypic" researchr: "https://researchr.org/publication/JeuringJ96" cites: 0 citedby: 0 pages: "68-114" booktitle: "Advanced Functional Programming, Second International School, Olympia, WA, USA, August 26-30, 1996, Tutorial Text" editor: - name: "John Launchbury" link: "https://researchr.org/alias/john-launchbury" - name: "Erik Meijer" link: "https://researchr.org/alias/erik-meijer" - name: "Tim Sheard" link: "http://web.cecs.pdx.edu/~sheard/" volume: "1129" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-61628-4" kind: "inproceedings" key: "JeuringJ96" - title: "Algebra of programming in Agda: Dependent types for relational program derivation" author: - name: "Shin-Cheng Mu" link: "http://www.iis.sinica.edu.tw/~scm/" - name: "Hsiang-Shang Ko" link: "http://joshkos.blogspot.se/" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "2009" doi: "http://dx.doi.org/10.1017/S0956796809007345" abstract: "Relational program derivation is the technique of stepwise refining a relational specification to a program by algebraic rules. The program thus obtained is correct by construction. Meanwhile, dependent type theory is rich enough to express various correctness properties to be verified by the type checker. We have developed a library, AoPA (Algebra of Programming in Agda), to encode relational derivations in the dependently typed programming language Agda. A program is coupled with an algebraic derivation whose correctness is guaranteed by the type system. Two non-trivial examples are presented: an optimisation problem and a derivation of quicksort in which well-founded recursion is used to model terminating hylomorphisms in a language with inductive types." links: doi: "http://dx.doi.org/10.1017/S0956796809007345" tags: - "programming languages" - "rule-based" - "meta programming" - "program verification" - "meta-model" - "modeling language" - "language modeling" - "relational algebra" - "type system" - "rules" - "algebraic specification" - " algebra" - "programming" - "type theory" - "Meta-Environment" researchr: "https://researchr.org/publication/MuKJ09" cites: 0 citedby: 0 journal: "Journal of Functional Programming" volume: "19" number: "5" pages: "545-579" kind: "article" key: "MuKJ09" - title: "Embedded Parser Generators" author: - name: "Jonas Duregård" link: "http://http://www.chalmers.se/cse/EN/contact/people/almstrom-duregard-jonas" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "2011" doi: "10.1145/2034675.2034689" abstract: "We present a novel method of embedding context-free grammars in Haskell, and to automatically generate parsers and pretty-printers from them. We have implemented this method in a library called BNFC-meta (from the BNF Converter, which it is built on). The library builds compiler front ends using metaprogramming instead of conventional code generation. Parsers are built from labelled BNF grammars that are defined directly in Haskell modules. Our solution combines features of parser generators (static grammar checks, a highly specialised grammar DSL) and adds several features that are otherwise exclusive to combinatory libraries such as the ability to reuse, parameterise and generate grammars inside Haskell. To allow writing grammars in concrete syntax, BNFC-meta provides a quasi-quoter that can parse grammars (embedded in Haskell files) at compile time and use metaprogramming to replace them with their abstract syntax. We also generate quasi-quoters so that the languages we define with BNFC-meta can be embedded in the same way. With a minimal change to the grammar, we support adding anti-quotation to the generated quasi-quoters, which allows users of the defined language to mix concrete and abstract syntax almost seamlessly. Unlike previous methods of achieving anti-quotation, the method used by BNFC-meta is simple, efficient and avoids polluting the abstract syntax types. " links: "url": "http://doi.acm.org/10.1145/2034675.2034689" tags: - "model checking" - "meta-model" - "abstract syntax" - "Haskell" - "reuse" - "writing" - "code generation" - "type checking" - "compiler" - "DSL" - "context-aware" - "Meta-Environment" - "parsing" - "concrete syntax" - "meta-objects" - "grammar" researchr: "https://researchr.org/publication/BNFC-meta-Haskell2011" cites: 0 citedby: 0 pages: "107-117" booktitle: "Proceedings of the 4th ACM Symposium on Haskell" series: "Haskell '11" address: "New York, NY, USA" publisher: "ACM" isbn: "978-1-4503-0860-1" kind: "inproceedings" key: "BNFC-meta-Haskell2011" - title: "Polytypic Programming in Haskell" author: - name: "Ulf Norell" link: "http://www.cse.chalmers.se/~ulfn/" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3145&spage=168" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3145&spage=168" tags: - "polytypic programming" - "Haskell" - "programming" - "polytypic" researchr: "https://researchr.org/publication/NorellJ03" cites: 0 citedby: 0 pages: "168-184" booktitle: "Implementation of Functional Languages, 15th International Workshop, IFL 2003, Edinburgh, UK, September 8-11, 2003, Revised Papers" editor: - name: "Philip W. Trinder" link: "https://researchr.org/alias/philip-w.-trinder" - name: "Greg Michaelson" link: "https://researchr.org/alias/greg-michaelson" - name: "Ricardo Pena" link: "https://researchr.org/alias/ricardo-pena" volume: "3145" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-23727-5" kind: "inproceedings" key: "NorellJ03" - title: "Prototyping Generic Programming in Template Haskell" author: - name: "Ulf Norell" link: "http://www.cse.chalmers.se/~ulfn/" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3125&spage=314" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3125&spage=314" tags: - "generic programming" - "Haskell" - "programming" researchr: "https://researchr.org/publication/NorellJ04" cites: 0 citedby: 0 pages: "314-333" booktitle: "Mathematics of Program Construction, 7th International Conference, MPC 2004, Stirling, Scotland, UK, July 12-14, 2004, Proceedings" editor: - name: "Dexter Kozen" link: "https://researchr.org/alias/dexter-kozen" - name: "Carron Shankland" link: "https://researchr.org/alias/carron-shankland" volume: "3125" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22380-0" kind: "inproceedings" key: "NorellJ04" - title: "Universes for Generic Programs and Proofs in Dependent Type Theory" author: - name: "Marcin Benke" link: "https://researchr.org/alias/marcin-benke" - name: "Peter Dybjer" link: "https://researchr.org/alias/peter-dybjer" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "2003" tags: - "generic programming" - "type theory" researchr: "https://researchr.org/publication/BenkeDJ03" cites: 0 citedby: 0 journal: "Nord. J. Comput." volume: "10" number: "4" pages: "265-289" kind: "article" key: "BenkeDJ03" - title: "Testing Properties of Generic Functions" author: - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" - name: "Laurence Cabenda" link: "https://researchr.org/alias/laurence-cabenda" - name: "Gerbo Engels" link: "https://researchr.org/alias/gerbo-engels" - name: "Jacob Kleerekoper" link: "https://researchr.org/alias/jacob-kleerekoper" - name: "Sander Mak" link: "https://researchr.org/alias/sander-mak" - name: "Michiel Overeem" link: "https://researchr.org/alias/michiel-overeem" - name: "Kees Visser" link: "https://researchr.org/alias/kees-visser" year: "2006" doi: "http://dx.doi.org/10.1007/978-3-540-74130-5_13" abstract: "A datatype-generic function is a family of functions indexed by (the structure of) a type. Examples include equality tests, maps and pretty printers. Property based testing tools like QuickCheck and Gast support the definition of properties and test-data generators, and they check if a monomorphic property is satisfied by the test cases. Generic functions satisfy generic properties and this paper discusses specifying and testing such properties. It shows how generic properties and generators can be expressed, and explains three bugs we found and corrected in the Generic Haskell library. " links: doi: "http://dx.doi.org/10.1007/978-3-540-74130-5_13" tags: - "rule-based" - "testing" - "Haskell" - "data-flow" - "type checking" - "QuickCheck" researchr: "https://researchr.org/publication/JanssonJCEKMOV06" cites: 0 citedby: 0 pages: "217-234" booktitle: "Implementation and Application of Functional Languages, 18th International Symp osium, IFL 2006, Budapest, Hungary, September 4-6, 2006, Revised Selected Papers" editor: - name: "Zoltán Horváth" link: "https://researchr.org/alias/zolt%C3%A1n-horv%C3%A1th" - name: "Viktória Zsók" link: "https://researchr.org/alias/vikt%C3%B3ria-zs%C3%B3k" - name: "Andrew Butterfield" link: "https://researchr.org/alias/andrew-butterfield" volume: "4449" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-74129-9" kind: "inproceedings" key: "JanssonJCEKMOV06" - title: "Algebra of Programming Using Dependent Types" author: - name: "Shin-Cheng Mu" link: "http://www.iis.sinica.edu.tw/~scm/" - name: "Hsiang-Shang Ko" link: "http://joshkos.blogspot.se/" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "2008" doi: "http://dx.doi.org/10.1007/978-3-540-70594-9_15" abstract: "Dependent type theory is rich enough to express that a program satisfies an input/output relational specification, but it could be hard to construct the proof term. On the other hand, squiggolists know very well how to show that one relation is included in another by algebraic reasoning. We demonstrate how to encode functional and relational derivations in a dependently typed programming language. A program is coupled with an algebraic derivation from a specification, whose correctness is guaranteed by the type system." links: doi: "http://dx.doi.org/10.1007/978-3-540-70594-9_15" tags: - "programming languages" - "functional programming" - "relational algebra" - "type system" - "algebraic specification" - " algebra" - "programming" - "type theory" researchr: "https://researchr.org/publication/MuKJ08" cites: 0 citedby: 0 pages: "268-283" booktitle: "Mathematics of Program Construction, 9th International Conference, MPC 2008, Marseille, France, July 15-18, 2008. Proceedings" editor: - name: "Philippe Audebaud" link: "https://researchr.org/alias/philippe-audebaud" - name: "Christine Paulin-Mohring" link: "https://researchr.org/alias/christine-paulin-mohring" volume: "5133" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-70593-2" kind: "inproceedings" key: "MuKJ08" - title: "Chasing Bottoms: A Case Study in Program Verification in the Presence of Partial and Infinite Values" author: - name: "Nils Anders Danielsson" link: "http://www.cse.chalmers.se/~nad/" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3125&spage=85" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3125&spage=85" tags: - "case study" - "program verification" researchr: "https://researchr.org/publication/DanielssonJ04" cites: 0 citedby: 0 pages: "85-109" booktitle: "Mathematics of Program Construction, 7th International Conference, MPC 2004, Stirling, Scotland, UK, July 12-14, 2004, Proceedings" editor: - name: "Dexter Kozen" link: "https://researchr.org/alias/dexter-kozen" - name: "Carron Shankland" link: "https://researchr.org/alias/carron-shankland" volume: "3125" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-22380-0" kind: "inproceedings" key: "DanielssonJ04" - title: "Polytypic Unification" author: - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" year: "1998" tags: - "polytypic" researchr: "https://researchr.org/publication/JanssonJ98" cites: 0 citedby: 0 journal: "Journal of Functional Programming" volume: "8" number: "5" pages: "527-536" kind: "article" key: "JanssonJ98" - 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: "Polyp - A Polytypic Programming Language" author: - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" year: "1997" doi: "http://doi.acm.org/10.1145/263699.263763" links: doi: "http://doi.acm.org/10.1145/263699.263763" tags: - "programming languages" - "polytypic programming" - "programming" - "polytypic" researchr: "https://researchr.org/publication/JanssonJ97" cites: 0 citedby: 0 pages: "470-482" booktitle: "Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages" kind: "inproceedings" key: "JanssonJ97" - title: "Comparing libraries for generic programming in haskell" author: - name: "Alexey Rodriguez" link: "http://arodriguezyakushev.wordpress.com/" - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Alex Gerdes" link: "http://www.haksell.org/" - name: "Oleg Kiselyov" link: "http://okmij.org/ftp/" - name: "Bruno C. d. S. Oliveira" link: "http://ropas.snu.ac.kr/~bruno/" year: "2008" doi: "http://doi.acm.org/10.1145/1411286.1411301" abstract: "Datatype-generic programming is defining functions that depend on the structure, or \"shape\", of datatypes. It has been around for more than 10 years, and a lot of progress has been made, in particular in the lazy functional programming language Haskell. There are morethan 10 proposals for generic programming libraries orlanguage extensions for Haskell. To compare and characterise the many generic programming libraries in atyped functional language, we introduce a set of criteria and develop a generic programming benchmark: a set of characteristic examples testing various facets of datatype-generic programming. We have implemented the benchmark for nine existing Haskell generic programming libraries and present the evaluation of the libraries. The comparison is useful for reaching a common standard for generic programming, but also for a programmer who has to choose a particular approach for datatype-generic programming." links: doi: "http://doi.acm.org/10.1145/1411286.1411301" tags: - "laziness" - "programming languages" - "generic programming" - "functional programming" - "testing" - "Haskell" - "C++" - "programming" - "systematic-approach" researchr: "https://researchr.org/publication/RodriguezJJGKO08" cites: 0 citedby: 0 pages: "111-122" booktitle: "Proceedings of the 1st ACM SIGPLAN Symposium on Haskell, Haskell 2008, Victoria, BC, Canada, 25 September 2008" editor: - name: "Andy Gill" link: "http://www.ittc.ku.edu/~andygill/" publisher: "ACM" isbn: "978-1-60558-064-7" kind: "inproceedings" key: "RodriguezJJGKO08" - 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" - 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: "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: "Domain-Specific Languages, IFIP TC 2 Working Conference, DSL 2009, Oxford, UK, July 15-17, 2009, Proceedings" editor: - name: "Walid Mohamed Taha" link: "https://researchr.org/alias/walid-mohamed-taha" volume: "5658" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-642-03033-8" kind: "inproceedings" key: "LinckeJZI09" - 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: "Fast and loose reasoning is morally correct" author: - name: "Nils Anders Danielsson" link: "http://www.cse.chalmers.se/~nad/" - name: "John Hughes" link: "http://www.cse.chalmers.se/~rjmh" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Jeremy Gibbons" link: "http://www.comlab.ox.ac.uk/jeremy.gibbons/" year: "2006" doi: "http://doi.acm.org/10.1145/1111037.1111056" abstract: "Functional programmers often reason about programs as if they were written in a total language, expecting the results to carry over to non-total (partial) languages. We justify such reasoning.Two languages are defined, one total and one partial, with identical syntax. The semantics of the partial language includes partial and infinite values, and all types are lifted, including the function spaces. A partial equivalence relation (PER) is then defined, the domain of which is the total subset of the partial language. For types not containing function spaces the PER relates equal values, and functions are related if they map related values to related values.It is proved that if two closed terms have the same semantics in the total language, then they have related semantics in the partial language. It is also shown that the PER gives rise to a bicartesian closed category which can be used to reason about values in the domain of the relation." links: doi: "http://doi.acm.org/10.1145/1111037.1111056" tags: - "programming languages" - "semantics" - "functional programming" - "domain-specific language" researchr: "https://researchr.org/publication/DanielssonHJG06" cites: 0 citedby: 0 pages: "206-217" booktitle: "Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006, Charleston, South Carolina, USA, January 11-13, 2006" editor: - name: "J. Gregory Morrisett" link: "https://researchr.org/alias/j.-gregory-morrisett" - name: "Simon L. Peyton Jones" link: "http://research.microsoft.com/en-us/people/simonpj/" publisher: "ACM" isbn: "1-59593-027-2" kind: "inproceedings" key: "DanielssonHJG06" - title: "Generic Programming: An Introduction" author: - name: "Roland Carl Backhouse" link: "https://researchr.org/alias/roland-carl-backhouse" - name: "Patrik Jansson" link: "http://www.chalmers.se/cse/EN/people/jansson-patrik" - name: "Johan Jeuring" link: "http://people.cs.uu.nl/johanj/" - name: "Lambert G. L. T. Meertens" link: "https://researchr.org/alias/lambert-g.-l.-t.-meertens" year: "1998" tags: - "generic programming" - "programming" researchr: "https://researchr.org/publication/BackhouseJJM98" cites: 0 citedby: 0 pages: "28-115" booktitle: "Advanced Functional Programming" kind: "inproceedings" key: "BackhouseJJM98"