Ghent University Academic Bibliography

Advanced

The implicit calculus: a new foundation for generic programming

Bruno CdS Oliveira, Tom Schrijvers UGent, Wontae Choi, Wonchan Lee and Kwangkeun Yi (2012) ACM SIGPLAN NOTICES. 47(6). p.35-44
abstract
Generic programming (GP) is an increasingly important trend in programming languages. Well-known GP mechanisms, such as type classes and the C++0x concepts proposal, usually combine two features: 1) a special type of interfaces; and 2) implicit instantiation of implementations of those interfaces. Scala implicits are a GP language mechanism, inspired by type classes, that break with the tradition of coupling implicit instantiation with a special type of interface. Instead, implicits provide only implicit instantiation, which is generalized to work for any types. This turns out to be quite powerful and useful to address many limitations that show up in other GP mechanisms. This paper synthesizes the key ideas of implicits formally in a minimal and general core calculus called the implicit calculus (lambda(double right arrow)), and it shows how to build source languages supporting implicit instantiation on top of it. A novelty of the calculus is its support for partial resolution and higher-order rules (a feature that has been proposed before, but was never formalized or implemented). Ultimately, the implicit calculus provides a formal model of implicits, which can be used by language designers to study and inform implementations of similar mechanisms in their own languages.
Please use this url to cite or link to this publication:
author
organization
year
type
journalArticle (original)
publication status
published
subject
keyword
generic programming, C++ concepts, implicit parameters, type classes, Haskell, Scala
journal title
ACM SIGPLAN NOTICES
ACM Sigplan Not.
volume
47
issue
6
pages
35 - 44
Web of Science type
Article
Web of Science id
000307582100004
JCR category
COMPUTER SCIENCE, SOFTWARE ENGINEERING
JCR impact factor
0.705 (2012)
JCR rank
71/104 (2012)
JCR quartile
3 (2012)
ISSN
0362-1340
DOI
10.1145/2345156.2254070
language
English
UGent publication?
yes
classification
A1
copyright statement
I have transferred the copyright for this publication to the publisher
id
2999876
handle
http://hdl.handle.net/1854/LU-2999876
date created
2012-09-27 08:07:30
date last changed
2012-09-27 11:28:27
@article{2999876,
  abstract     = {Generic programming (GP) is an increasingly important trend in programming languages. Well-known GP mechanisms, such as type classes and the C++0x concepts proposal, usually combine two features: 1) a special type of interfaces; and 2) implicit instantiation of implementations of those interfaces. 
Scala implicits are a GP language mechanism, inspired by type classes, that break with the tradition of coupling implicit instantiation with a special type of interface. Instead, implicits provide only implicit instantiation, which is generalized to work for any types. This turns out to be quite powerful and useful to address many limitations that show up in other GP mechanisms. 
This paper synthesizes the key ideas of implicits formally in a minimal and general core calculus called the implicit calculus (lambda(double right arrow)), and it shows how to build source languages supporting implicit instantiation on top of it. A novelty of the calculus is its support for partial resolution and higher-order rules (a feature that has been proposed before, but was never formalized or implemented). Ultimately, the implicit calculus provides a formal model of implicits, which can be used by language designers to study and inform implementations of similar mechanisms in their own languages.},
  author       = {Oliveira, Bruno CdS and Schrijvers, Tom and Choi, Wontae and Lee, Wonchan and Yi, Kwangkeun},
  issn         = {0362-1340},
  journal      = {ACM SIGPLAN NOTICES},
  keyword      = {generic programming,C++ concepts,implicit parameters,type classes,Haskell,Scala},
  language     = {eng},
  number       = {6},
  pages        = {35--44},
  title        = {The implicit calculus: a new foundation for generic programming},
  url          = {http://dx.doi.org/10.1145/2345156.2254070},
  volume       = {47},
  year         = {2012},
}

Chicago
Oliveira, Bruno CdS, Tom Schrijvers, Wontae Choi, Wonchan Lee, and Kwangkeun Yi. 2012. “The Implicit Calculus: a New Foundation for Generic Programming.” Acm Sigplan Notices 47 (6): 35–44.
APA
Oliveira, B. C., Schrijvers, T., Choi, W., Lee, W., & Yi, K. (2012). The implicit calculus: a new foundation for generic programming. ACM SIGPLAN NOTICES, 47(6), 35–44.
Vancouver
1.
Oliveira BC, Schrijvers T, Choi W, Lee W, Yi K. The implicit calculus: a new foundation for generic programming. ACM SIGPLAN NOTICES. 2012;47(6):35–44.
MLA
Oliveira, Bruno CdS, Tom Schrijvers, Wontae Choi, et al. “The Implicit Calculus: a New Foundation for Generic Programming.” ACM SIGPLAN NOTICES 47.6 (2012): 35–44. Print.