File Download
There are no files associated with this item.
Links for fulltext
(May Require Subscription)
- Publisher Website: 10.1145/2345156.2254070
- Scopus: eid_2-s2.0-84866362214
- WOS: WOS:000307582100004
- Find via
Supplementary
- Citations:
- Appears in Collections:
Conference Paper: The implicit calculus: A new foundation for generic programming
Title | The implicit calculus: A new foundation for generic programming |
---|---|
Authors | |
Keywords | C++ Concepts Generic Programming Haskell Implicit Parameters Scala Type Classes |
Issue Date | 2012 |
Citation | Acm Sigplan Notices, 2012, v. 47 n. 6, p. 35-44 How to Cite? |
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 instan- tiation of implementations of those interfaces. Scala implicits are a GP language mechanism, inspired by type classes, that break with the tradition of coupling implicit instantia- tion 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 lim- itations 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 (λ→)), and it shows how to build source languages supporting im- plicit instantiation on top of it. A novelty of the calculus is its sup- port 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 implic- its, which can be used by language designers to study and inform implementations of similar mechanisms in their own languages. © 2012 ACM. |
Persistent Identifier | http://hdl.handle.net/10722/188500 |
ISSN | 2020 SCImago Journal Rankings: 0.310 |
ISI Accession Number ID | |
References |
DC Field | Value | Language |
---|---|---|
dc.contributor.author | Oliveira, BCDS | en_US |
dc.contributor.author | Schrijvers, T | en_US |
dc.contributor.author | Choi, W | en_US |
dc.contributor.author | Lee, W | en_US |
dc.contributor.author | Yi, K | en_US |
dc.date.accessioned | 2013-09-03T04:08:45Z | - |
dc.date.available | 2013-09-03T04:08:45Z | - |
dc.date.issued | 2012 | en_US |
dc.identifier.citation | Acm Sigplan Notices, 2012, v. 47 n. 6, p. 35-44 | en_US |
dc.identifier.issn | 1523-2867 | en_US |
dc.identifier.uri | http://hdl.handle.net/10722/188500 | - |
dc.description.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 instan- tiation of implementations of those interfaces. Scala implicits are a GP language mechanism, inspired by type classes, that break with the tradition of coupling implicit instantia- tion 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 lim- itations 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 (λ→)), and it shows how to build source languages supporting im- plicit instantiation on top of it. A novelty of the calculus is its sup- port 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 implic- its, which can be used by language designers to study and inform implementations of similar mechanisms in their own languages. © 2012 ACM. | en_US |
dc.language | eng | en_US |
dc.relation.ispartof | ACM SIGPLAN Notices | en_US |
dc.subject | C++ Concepts | en_US |
dc.subject | Generic Programming | en_US |
dc.subject | Haskell | en_US |
dc.subject | Implicit Parameters | en_US |
dc.subject | Scala | en_US |
dc.subject | Type Classes | en_US |
dc.title | The implicit calculus: A new foundation for generic programming | en_US |
dc.type | Conference_Paper | en_US |
dc.identifier.email | Oliveira, BCDS: oliveira@comp.nus.edu.sg | en_US |
dc.identifier.authority | Oliveira, BCDS=rp01786 | en_US |
dc.description.nature | link_to_subscribed_fulltext | en_US |
dc.identifier.doi | 10.1145/2345156.2254070 | en_US |
dc.identifier.scopus | eid_2-s2.0-84866362214 | en_US |
dc.relation.references | http://www.scopus.com/mlt/select.url?eid=2-s2.0-84866362214&selection=ref&src=s&origin=recordpage | en_US |
dc.identifier.volume | 47 | en_US |
dc.identifier.issue | 6 | en_US |
dc.identifier.spage | 35 | en_US |
dc.identifier.epage | 44 | en_US |
dc.identifier.isi | WOS:000307582100004 | - |
dc.publisher.place | United States | en_US |
dc.identifier.scopusauthorid | Oliveira, BCDS=12239474400 | en_US |
dc.identifier.scopusauthorid | Schrijvers, T=8870481000 | en_US |
dc.identifier.scopusauthorid | Choi, W=16201928300 | en_US |
dc.identifier.scopusauthorid | Lee, W=36443862400 | en_US |
dc.identifier.scopusauthorid | Yi, K=7102677014 | en_US |
dc.identifier.issnl | 1523-2867 | - |