Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggested reading material from Magne #23

Open
tclune opened this issue Nov 5, 2020 · 0 comments
Open

Suggested reading material from Magne #23

tclune opened this issue Nov 5, 2020 · 0 comments

Comments

@tclune
Copy link
Member

tclune commented Nov 5, 2020

The first is a survey paper of approaches to generics, similar to what Ondrej was working on at the previous meeting. The second is a (free) book on generic programming by the inventor of the standard template library (STL) for C++.

Ronald Garcia, Jaakko Järvi, Andrew Lumsdaine, Jeremy G. Siek, Jeremiah Willcock: A comparative study of language support for generic programming. OOPSLA 2003: 115-134.
https://urldefense.proofpoint.com/v2/url?u=https-3A__doi.org_10.1145_949305.949317&d=DwIFaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=EDCdNzkccJ25Co3sjWrr1HlJQ3_CoIFWfekFE1ulcLI&m=DKOB6mHiwbTBKFlqB0B9FsrK-7KtRRyqE9pOwVCNDJg&s=pIzz2My1_fi8MUbqu4jF9b39-Xe_YQocfkjo2eYoQV8&e=
Their idea of generics is heavily inspired by C++. I do not agree with all of their recommendations for a generic feature. For instance they see template specialisation as important, but do not discuss the tradeoff with "proof by testing" (which was first introduced in a 2010 paper by Bernardy & Jansson & Claessen).
There are more papers with Järvi as a coauthor that can be interesting for subcommittee members. Look for papers with titles containing generic or concept ("strong concepts" in our current terminology).
https://urldefense.proofpoint.com/v2/url?u=https-3A__dblp.org_pid_41_2812.html&d=DwIFaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=EDCdNzkccJ25Co3sjWrr1HlJQ3_CoIFWfekFE1ulcLI&m=DKOB6mHiwbTBKFlqB0B9FsrK-7KtRRyqE9pOwVCNDJg&s=gds0EG9QTLETQY53UB3sWfiN7IOHrgSONGlaD8yvXUM&e=

Alex Stepanov, Paul McJones: Elements of Programming, 2009.
https://urldefense.proofpoint.com/v2/url?u=http-3A__elementsofprogramming.com_&d=DwIFaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=EDCdNzkccJ25Co3sjWrr1HlJQ3_CoIFWfekFE1ulcLI&m=DKOB6mHiwbTBKFlqB0B9FsrK-7KtRRyqE9pOwVCNDJg&s=yYu2TL08LkhqV0sojNtl3WoYqgR4gi0VNrluqBiBBk8&e=
This book is all about generic programming and (strong) concepts. It is a nice read and provides the "ideology" behind the C++ STL. When the STL appeared (mid 1990s) it radically changed the perception of C++ programming. Some of the ideas presented are theoretically problematic, like overloading on concepts, especially for concepts which only differ in the semantics of the operations involved.

Musser D.R., Stepanov A.A. (1989) Generic programming. In: Gianni P. (eds) Symbolic and Algebraic Computation. ISSAC 1988. Lecture Notes in Computer Science, vol 358. Springer, Berlin, Heidelberg.
https://urldefense.proofpoint.com/v2/url?u=https-3A__doi.org_10.1007_3-2D540-2D51084-2D2-5F2&d=DwIFaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=EDCdNzkccJ25Co3sjWrr1HlJQ3_CoIFWfekFE1ulcLI&m=DKOB6mHiwbTBKFlqB0B9FsrK-7KtRRyqE9pOwVCNDJg&s=ei8kL7yv57ks4XUtFWtC4QPU79EjRN-fmE-aWKDdnao&e=
This is an early paper promoting ideas of generic programming. It is based on the authors' experience with Ada generics. The paper predates the inclusion of templates into C++.
As a side remark: By then I had been teaching generic programming to bachelor students for several years, using a home grown extension to Pascal. Unfortunately I was inexperienced as a researcher and assumed generic programming was the norm (after all it was supported by important languages like Ada), so I never wrote up and published the experience.

Magne

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant