Automatically assigned DDC number: 005117
Manually assigned DDC number: 005117
Number of references: 8
Title: Signatures: A C++ Extension for Type Abstraction and Subtype Polymorphism
Author:
Author:
Subject: Gerald Baumgartner,Vincent F. Russo Signatures: A C++ Extension for Type Abstraction and Subtype Polymorphism
Description: C++ uses inheritance as a substitute for subtype polymorphism. We give examples where this makes the type system too inflexible. We then describe a conservative language extension that allows us to define an abstract type hierarchy independent of any implementation hierarchies, to retroactively abstract over an implementation, and to decouple subtyping from inheritance. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of static typing. With default implementations and views we provide flexible mechanisms for implementing an abstract type by different concrete class types. We first show how our language extension can be implemented in a preprocessor to a C++ compiler, and then detail and analyze the efficiency of an implementation we directly incorporated in the GNU C++ compiler.
Contributor: The Pennsylvania State University CiteSeer Archives
Publisher: unknown
Date: 1995-01-14
Pubyear: 1994
Format: ps
Identifier: http://citeseer.ist.psu.edu/160252.html
Source: http://www.cis.ohio-state.edu/~gb/Papers/TR93-059.ps.gz
Language: en
Relation:
Relation:
Relation:
Relation:
Relation:
Relation:
Relation:
Relation:
Rights: unrestricted
<?xml version="1.0" encoding="UTF-8"?>
<references_metadata>
<rec ID="/301796.html" Type="article" CiteSeer_Book="ACM Transactions on Programming Languages and Systems" CiteSeer_Volume="15" Title="Subtyping Recursive Types,">
<identifier Org="ISBN:0897917707" Paper_ID="/301796.html" Extracted="0897917707" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:1402065841" Paper_ID="/301796.html" Extracted="1402065841" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:158488360X" Paper_ID="/301796.html" Extracted="158488360X" DDC="004" Normalized_DDC="004" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540254358" Paper_ID="/301796.html" Extracted="3540254358" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540255931" Paper_ID="/301796.html" Extracted="3540255931" DDC="511.3" Normalized_DDC="5113" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540419608" Paper_ID="/301796.html" Extracted="3540419608" DDC="511.3" Normalized_DDC="5113" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:354043366X" Paper_ID="/301796.html" Extracted="354043366X" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540543171" Paper_ID="/301796.html" Extracted="3540543171" DDC="511.3" Normalized_DDC="5113" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540552510" Paper_ID="/301796.html" Extracted="3540552510" DDC="511/.5" Normalized_DDC="5115" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540552537" Paper_ID="/301796.html" Extracted="3540552537" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540578870" Paper_ID="/301796.html" Extracted="3540578870" DDC="005.1/01/5113" Normalized_DDC="0051015113" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540601600" Paper_ID="/301796.html" Extracted="3540601600" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540614400" Paper_ID="/301796.html" Extracted="3540614400" DDC="001.64" Normalized_DDC="00164" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540617396" Paper_ID="/301796.html" Extracted="3540617396" DDC="005.13/1" Normalized_DDC="005131" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:354063388X" Paper_ID="/301796.html" Extracted="354063388X" DDC="005.3" Normalized_DDC="0053" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540664122" Paper_ID="/301796.html" Extracted="3540664122" DDC="004" Normalized_DDC="004" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540665366" Paper_ID="/301796.html" Extracted="3540665366" DDC="004/.01/5113" Normalized_DDC="004015113" Normalized_Weight="0.05555555555555555" />
<identifier Org="ISBN:3540679340" Paper_ID="/301796.html" Extracted="3540679340" DDC="346/.092" Normalized_DDC="346092" Normalized_Weight="0.05555555555555555" />
</rec>
<rec ID="/97149.html" Type="article" CiteSeer_Book="ACM Transactions on Programming Languages and Systems" CiteSeer_Volume="19" Title="Implementing Signatures for {C}++," />
<rec ID="/137626.html" Type="techreport" CiteSeer_Book="" CiteSeer_Volume="" Title="{A Proposal to Study Type Systems for Computer Algebra},">
<identifier Org="ISBN:3211828443" Paper_ID="/137626.html" Extracted="3211828443" DDC="004.2/1" Normalized_DDC="00421" Normalized_Weight="0.5" />
<identifier Org="ISBN:3540573224" Paper_ID="/137626.html" Extracted="3540573224" DDC="006.3" Normalized_DDC="0063" Normalized_Weight="0.5" />
<identifier Org="ISBN:3540878262" Paper_ID="/137626.html" Extracted="3540878262" />
</rec>
<rec ID="/6798.html" Type="article" CiteSeer_Book="ACM Computing Surveys" CiteSeer_Volume="17" Title="On Understanding Types, Data Abstraction, and Polymorphism,">
<identifier Org="ISBN:026207155X" Paper_ID="/6798.html" Extracted="026207155X" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:0262720159" Paper_ID="/6798.html" Extracted="0262720159" DDC="004" Normalized_DDC="004" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540171878" Paper_ID="/6798.html" Extracted="3540171878" />
<identifier Org="ISBN:3540410902" Paper_ID="/6798.html" Extracted="3540410902" DDC="005" Normalized_DDC="005" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:354043366X" Paper_ID="/6798.html" Extracted="354043366X" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540506675" Paper_ID="/6798.html" Extracted="3540506675" DDC="006.3" Normalized_DDC="0063" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540509402" Paper_ID="/6798.html" Extracted="3540509402" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540531629" Paper_ID="/6798.html" Extracted="3540531629" />
<identifier Org="ISBN:3540534520" Paper_ID="/6798.html" Extracted="3540534520" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540541411" Paper_ID="/6798.html" Extracted="3540541411" />
<identifier Org="ISBN:3540552510" Paper_ID="/6798.html" Extracted="3540552510" DDC="511/.5" Normalized_DDC="5115" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540565175" Paper_ID="/6798.html" Extracted="3540565175" DDC="511.3" Normalized_DDC="5113" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540569219" Paper_ID="/6798.html" Extracted="3540569219" DDC="005.74" Normalized_DDC="00574" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540575308" Paper_ID="/6798.html" Extracted="3540575308" DDC="005.75" Normalized_DDC="00575" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540631720" Paper_ID="/6798.html" Extracted="3540631720" DDC="004/.01/5113" Normalized_DDC="004015113" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3540651934" Paper_ID="/6798.html" Extracted="3540651934" DDC="004.16" Normalized_DDC="00416" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:354066677X" Paper_ID="/6798.html" Extracted="354066677X" DDC="005.1/14" Normalized_DDC="005114" Normalized_Weight="0.07142857142857142" />
<identifier Org="ISBN:3642005896" Paper_ID="/6798.html" Extracted="3642005896" />
</rec>
<rec ID="/583501.html" Type="inproceedings" CiteSeer_Book="Proceedings of the 1984 ACM Conference on LISP and Functional Programming" CiteSeer_Volume="" Title="Modules for {S}tandard {ML}," />
<rec ID="/577499.html" Type="inproceedings" CiteSeer_Book="Proceedings of the 1988 ACM Conference on LISP and Functional Programming Snowbird UT" CiteSeer_Volume="" Title="An Implementation of Standard {ML} Modules,">
<identifier Org="ISBN:0387582029" Paper_ID="/577499.html" Extracted="0387582029" DDC="005.1/1" Normalized_DDC="00511" Normalized_Weight="0.2" />
<identifier Org="ISBN:089791273X" Paper_ID="/577499.html" Extracted="089791273X" DDC="005.13/3" Normalized_DDC="005133" Normalized_Weight="0.2" />
<identifier Org="ISBN:1595933883" Paper_ID="/577499.html" Extracted="1595933883" DDC="005.13/1" Normalized_DDC="005131" Normalized_Weight="0.2" />
<identifier Org="ISBN:3540291385" Paper_ID="/577499.html" Extracted="3540291385" DDC="005.1/1" Normalized_DDC="00511" Normalized_Weight="0.2" />
<identifier Org="ISBN:3540439153" Paper_ID="/577499.html" Extracted="3540439153" DDC="005.1/5" Normalized_DDC="00515" Normalized_Weight="0.2" />
</rec>
<rec ID="/513482.html" Type="inproceedings" CiteSeer_Book="Proceedings of the Conference on ObjectOriented Programming Systems Languages and Applications OOPSLA" CiteSeer_Volume="" Title="Encapsulation and Inheritance in Object-Oriented Programming Languages,">
<identifier Org="ISBN:0120121433" Paper_ID="/513482.html" Extracted="0120121433" />
<identifier Org="ISBN:0201624443" Paper_ID="/513482.html" Extracted="0201624443" DDC="005.1/1" Normalized_DDC="00511" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:0387582029" Paper_ID="/513482.html" Extracted="0387582029" DDC="005.1/1" Normalized_DDC="00511" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:0818608226" Paper_ID="/513482.html" Extracted="0818608226" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:1558600000" Paper_ID="/513482.html" Extracted="1558600000" />
<identifier Org="ISBN:3211828443" Paper_ID="/513482.html" Extracted="3211828443" DDC="004.2/1" Normalized_DDC="00421" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:354022159X" Paper_ID="/513482.html" Extracted="354022159X" DDC="005.1/1" Normalized_DDC="00511" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:3540405313" Paper_ID="/513482.html" Extracted="3540405313" DDC="005.1/17" Normalized_DDC="005117" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:3540422064" Paper_ID="/513482.html" Extracted="3540422064" DDC="005.1/17" Normalized_DDC="005117" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:354053931X" Paper_ID="/513482.html" Extracted="354053931X" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:3540556133" Paper_ID="/513482.html" Extracted="3540556133" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:354059132X" Paper_ID="/513482.html" Extracted="354059132X" DDC="005.7/3" Normalized_DDC="00573" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:3540625992" Paper_ID="/513482.html" Extracted="3540625992" DDC="005.13" Normalized_DDC="00513" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:3540630899" Paper_ID="/513482.html" Extracted="3540630899" DDC="005.1/17" Normalized_DDC="005117" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:3540634789" Paper_ID="/513482.html" Extracted="3540634789" DDC="005.74" Normalized_DDC="00574" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:3540679588" Paper_ID="/513482.html" Extracted="3540679588" DDC="005.13" Normalized_DDC="00513" Normalized_Weight="0.06666666666666667" />
<identifier Org="ISBN:9810221703" Paper_ID="/513482.html" Extracted="9810221703" DDC="005.1/1" Normalized_DDC="00511" Normalized_Weight="0.06666666666666667" />
</rec>
<rec ID="/329006.html" Type="inproceedings" CiteSeer_Book="Proceedings of the Spring 1987 European Unix Users Group Conference" CiteSeer_Volume="" Title="Multiple Inheritance for {C}++,">
<identifier Org="ISBN:0818621389" Paper_ID="/329006.html" Extracted="0818621389" DDC="005.74" Normalized_DDC="00574" Normalized_Weight="0.5" />
<identifier Org="ISBN:0897913337" Paper_ID="/329006.html" Extracted="0897913337" />
<identifier Org="ISBN:1558600728" Paper_ID="/329006.html" Extracted="1558600728" DDC="005.74" Normalized_DDC="00574" Normalized_Weight="0.5" />
<identifier Org="ISBN:1558601503" Paper_ID="/329006.html" Extracted="1558601503" />
</rec>
<rec ID="SELF" Type="SELF" CiteSeer_Book="SELF" CiteSeer_Volume="SELF" Title="Signatures: A C++ Extension for Type Abstraction and Subtype Polymorphism">
<identifier Org="ISBN:0818675802" Paper_ID="SELF" Extracted="0818675802" />
<identifier Org="ISBN:0818681144" Paper_ID="SELF" Extracted="0818681144" DDC="005.74" Normalized_DDC="00574" Normalized_Weight="0.5" />
<identifier Org="ISBN:3540601600" Paper_ID="SELF" Extracted="3540601600" DDC="005.1" Normalized_DDC="0051" Normalized_Weight="0.5" />
</rec>
</references_metadata>