[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1411318.1411327acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Bialgebra views: a way for polytypic programming to cohabit with data abstraction

Published: 20 September 2008 Publication History

Abstract

Polytypic programming and data abstraction are important concepts in designing functional programs, but they do not fit well together. Polytypic programming currently depends on making public a free data type representation, while data abstraction depends on hiding the representation. This paper proposes the bialgebra views mechanism as a means of reconciling this conflict. Bialgebra views enable the specification of type structure according to interfaces, not representations, thus combining the genericity of polytypic programming with the information hiding of data abstraction, and narrowing the gap between generic programming in the functional and object-oriented paradigms.

References

[1]
Artem Alimarine and Marinus Plasmeijer. A generic programming extension for Clean. In Implementation of Functional Languages, 2001.
[2]
Michael Barr and Charles Wells. Category Theory for Computing Science. Prentice-Hall, 1990.
[3]
Maarten M. Fokkinga. Law and Order in Algorithmics. PhD thesis, Universiteit Twente, The Netherlands, 1992.
[4]
Jeremy Gibbons. Patterns in datatype-generic programming. In Declarative Programming in the Context of Object-Oriented Languages, 2003.
[5]
Jeremy Gibbons and Bruno C. d. S. Oliveira. The essence of the Iterator pattern. In Mathematically-Structured Functional Programming, 2006.
[6]
Ralf Hinze. Polytypic values possess polykinded types. Science of Computer Programming, 43(2-3), 2002.
[7]
Ralf Hinze and Johan Jeuring. Generic Haskell: Practice and Theory. In Generic Programming - Advanced Lectures, volume 2793 of LNCS. Springer, 2003.
[8]
Stefan Holdermans, Johan Jeuring, Andres Löh, and Alexey Rodriguez. Generic views on data types. In Mathematics of Program Construction, 2006.
[9]
Patrik Jansson. Functional Polytypic Programming. PhD thesis, Chalmers University of Technology, 2000.
[10]
C. B. Jay, G. Bellè, and E. Moggi. Functorial ML. Journal of Functional Programming, 8(6), 1998.
[11]
Johan Jeuring and Patrik Jansson. Polytypic programming. In Advanced Functional Programming, volume 1129 of LNCS. Springer, 1996.
[12]
Wolfram Kahl and Jan Scheffczyk. Named instances for Haskell type classes. In Haskell Workshop, 2001.
[13]
Ralf Lämmel and Simon Peyton Jones. Scrap your boilerplate: A practical design pattern for generic programming. In Workshop on Types in Language Design and Implementation, 2003.
[14]
Ralf Lämmel and Simon Peyton Jones. Scrap your boilerplate with class: extensible generic functions. In International Conference on Functional Programming, 2005.
[15]
Ralf Lämmel, Eelco Visser, and Joost Visser. The essence of strategic programming. Tutorial, 2002.
[16]
Barbara Liskov and John Guttag. Abstraction and Specification in Program Development. MIT Press, 1986.
[17]
Andres Löh. Exploring Generic Haskell. PhD thesis, Utrecht University, 2004.
[18]
Erik Meijer, Maarten Fokkinga, and Ross Paterson. Functional programming with bananas, lenses, envelopes and barbed wire. In Functional Programming Languages and Computer Architecture, 1991.
[19]
John C. Mitchell. Foundations for Programming Languages. MIT Press, 1996.
[20]
A. Moors, F. Piessens, and W. Joosen. An object-oriented approach to datatype-generic programming. In Workshop on Generic Programming, 2006.
[21]
G. Munkby, A. Priesnitz, S. Schupp, and M. Zalewski. Scrap++: Scrap your boilerplate in C++. In Workshop on Generic Programming, 2006.
[22]
David Musser and Atul Saini. STL Tutorial and Reference Guide. Addison-Wesley, 1996.
[23]
Pablo Nogueira. Context-parametric polykinded types. In Workshop on Generic Programming, 2006.
[24]
Pablo Nogueira. When is an abstract data type a functor? In Trends in Functional Programming, volume 7. Intellect, 2006.
[25]
Chris Okasaki. Purely Functional Data Structures. Cambridge University Press, 1998.
[26]
Chris Okasaki. An overview of Edison. In Haskell Workshop, 2000.
[27]
Pedro Palao Gostanza, Ricardo Peña and Manuel Núñez. A new look at pattern matching in abstract data types. In International Conference on Functional Programming, 1996.
[28]
Philip Wadler. Views: A way for pattern matching to cohabit with data abstraction. In Principles of Programming Languages, 1987.
[29]
F. Warren Burton and Robert Cameron. Pattern matching with abstract data types. Journal of Functional Programming, 3(2), 1993.

Cited By

View all
  • (2010)Gradual refinementProceedings of the 10th international conference on Mathematics of program construction10.5555/1886619.1886643(397-425)Online publication date: 21-Jun-2010
  • (2010)Gradual RefinementMathematics of Program Construction10.1007/978-3-642-13321-3_22(397-425)Online publication date: 2010

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
WGP '08: Proceedings of the ACM SIGPLAN workshop on Generic programming
September 2008
80 pages
ISBN:9781605580609
DOI:10.1145/1411318
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 September 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract types
  2. bialgebras
  3. polytypic programming
  4. program generation

Qualifiers

  • Research-article

Conference

ICFP08
Sponsor:

Acceptance Rates

WGP '08 Paper Acceptance Rate 6 of 10 submissions, 60%;
Overall Acceptance Rate 30 of 43 submissions, 70%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2010)Gradual refinementProceedings of the 10th international conference on Mathematics of program construction10.5555/1886619.1886643(397-425)Online publication date: 21-Jun-2010
  • (2010)Gradual RefinementMathematics of Program Construction10.1007/978-3-642-13321-3_22(397-425)Online publication date: 2010

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media