Abstract
|
<p>Templates are a powerful but poor … <p>Templates are a powerful but poorly understood feature ofthe C++ language. Their syntax resembles the parameterized classes ofother languages (e.g., of Java). But because C++ supports template specialization, their semantics is quite different from that of parameterizedclasses. Template specialization provides a Turing-complete sub-languagewithin C++ that executes at compile-time. Programmers put this powerto many uses. For example, templates are a popular tool for writingprogram generators.The C++ Standard defines the semantics of templates using natural language, so it is prone to misinterpretation. The meta-theoretic propertiesof C++ templates have not been studied, so the semantics of templateshas not been systematically checked for errors. In this paper we presentthe first formal account of C++ templates including some of the morecomplex aspects, such as template partial specialization. We validate oursemantics by proving type safety and verify the proof with the Isabelleproof assistant. Our formalization reveals two interesting issues in theC++ Standard: the first is a problem with member instantiation and thesecond concerns the generation of unnecessary template specializations.</p>essary template specializations.</p>
|
Author
|
Jeremy Siek +
, Walid Taha +
|
Conference
|
20th European Conference on Object-Oriented Programming (ECOOP 2006), Nantes, FRANCE, APR 03-JUL 07, 2006
|
DOI
|
http://dx.doi.org/10.1007/11785477_19 +
|
Diva
|
http://hh.diva-portal.org/smash/record.jsf?searchId=1&pid=diva2:588267
|
EndPage
|
327 +
|
HostPublication
|
ECOOP 2006 - Object-Oriented Programming : 20th European Conference, Nantes, France, July 3-7, 2006, Proceedings +
|
PublicationType
|
Conference Paper +
|
Publisher
|
Springer +
|
Series
|
Lecture Notes in Computer Science ; 4067 +
|
StartPage
|
304 +
|
Title
|
A Semantic Analysis of C++ Templates +
|
Year
|
2006 +
|
Has queryThis property is a special property in this wiki.
|
Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
, Publications:A Semantic Analysis of C++ Templates +
|
Categories |
Publication +
|
Modification dateThis property is a special property in this wiki.
|
26 June 2014 03:45:01 +
|