2011
DOI: 10.1016/j.scico.2008.09.009
|View full text |Cite
|
Sign up to set email alerts
|

A language for generic programming in the large

Abstract: a b s t r a c tGeneric programming is an effective methodology for developing reusable software libraries. Many programming languages provide generics and have features for describing interfaces, but none completely support the idioms used in generic programming. To address this need we developed the language G. The central feature of G is the concept, a mechanism for organizing constraints on generics that is inspired by the needs of modern C++ libraries. G provides modular type checking and separate compilat… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
42
0

Year Published

2012
2012
2020
2020

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 20 publications
(42 citation statements)
references
References 61 publications
0
42
0
Order By: Relevance
“…Also, an existing comparison between different languages in terms of their support for generic programming in the large (Siek and Lumsdaine 2008) is revised to include Scala and JavaGI. This comparison shows that Scala is very suitable for generic programming in the large.…”
Section: Discussion and Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…Also, an existing comparison between different languages in terms of their support for generic programming in the large (Siek and Lumsdaine 2008) is revised to include Scala and JavaGI. This comparison shows that Scala is very suitable for generic programming in the large.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…Furthermore, prioritized overlapping implicits allow the definition of type-level functions with a default, catch-all case, that can be overridden by other cases in subclasses. This functionality provides a limited form of concept-based overloading (Siek and Lumsdaine 2008). In Haskell such overlapping definitions are forbidden for associated types and type-families (Chakravarty et al 2005b;Schrijvers et al 2008); and have limited applicability with functional dependencies.…”
Section: Type Classes Javagi and Conceptsmentioning
confidence: 99%
See 1 more Smart Citation
“…Concept checking [16,17] verifies syntactic concept conformance of arguments to generic functions, reducing the amount of irrelevant and misleading information in error messages, while postprocessing of compiler error messages [15] eliminates redundant information and improves clarity. Concept archetypes [16,17], on the other hand, are minimal syntactic models of concepts that can be passed to generic functions to verify that the generic functions do not require syntax not captured in a concept. Concept-based overloading has enjoyed more success in C++, both via the widely-used method of tag dispatching [12] and via arbitrary overloading [18].…”
Section: Concept-bounded Polymorphismmentioning
confidence: 99%
“…Presence or absence of a functor with a suitable signature can be detected in languages such as ML or Haskell through the use of signatures. This is possible even in C++, currently through the use of the Boost Concept-Checking Library [16,32] but possibly in the future with concept constraints expressed within the language as proposed by Stroustrup and Dos Reis [33][34][35] to the C++ standards committee. In none of these cases, however, is there provision to check for satisfaction of the axioms.…”
Section: Proving Correctness Of Generic Algorithmsmentioning
confidence: 99%