کد مقاله | کد نشریه | سال انتشار | مقاله انگلیسی | نسخه تمام متن |
---|---|---|---|---|
434120 | 1441727 | 2011 | 17 صفحه PDF | دانلود رایگان |
Type systems built directly into the compiler or interpreter of a programming language cannot be easily extended to keep track of run-time invariants of new abstractions. Yet, programming with domain-specific abstractions could benefit from additional static checking. This paper presents library techniques for extending the type system of C++ to support domain-specific abstractions. The main contribution is a programmable “subtype” relation. As a demonstration of the techniques, we implement a type system for defining type qualifiers in C++, as well as a type system for the XML processing language, capable of, e.g., statically guaranteeing that a program only produces valid XML documents according to a given XML schema.
Research highlights
► Metaprogramming capabilities of C++ enable domain-specific type system extensions.
► A template library for building new type system extensions.
► Type system extensions for type qualifiers.
► Type system extensions for regular expression types for typing XML.
Journal: Science of Computer Programming - Volume 76, Issue 4, 1 April 2011, Pages 290–306