An Open and Shut Typecase (Extended Version)

dc.contributor.authorVytiniotis, Dimitrios
dc.contributor.authorWashburn, Geoffrey
dc.contributor.authorWeirich, Stephanie
dc.date2023-05-16T22:25:51.000
dc.date.accessioned2023-05-22T12:54:19Z
dc.date.available2023-05-22T12:54:19Z
dc.date.issued2004-11-04
dc.date.submitted2005-04-04T10:09:06-07:00
dc.description.abstractAd-hoc polymorphism is a compelling addition to typed programming languages. There are two different forms of ad-hoc polymorphism. With the nominal form, the execution of an operation is determined solely by the name of the type argument, whereas with the structural form, operations are defined by case analysis on the structure of types. The two forms differ in the way that they treat user-defined types. Operations defined by the nominal approach are considered "open"—the programmer can add cases for new types without modifying existing code. The operations must be extended however with specialized code for the new types, and it may be tedious and even difficult to add extensions that apply to a potentially large universe of user-defined types. Structurally defined operations apply to new types by treating them as equal to their underlying definitions, so no new cases for new types are necessary. However this form is considered "closed" to extension, as the behaviour of the operations cannot be differentiated for the new types. This form destroys the distinctions that user-defined types are designed to express. Both approaches have their benefits, so it is important to provide both capabilities in a single language that is expressive enough to decouple the "openness" issue from the way that user-defined types are treated. We present such a language that supports both forms of ad-hoc polymorphism.
dc.description.commentsUniversity of Pennsylvania Department of Computer and Information Science Technical Report No. MS-CIS-04-26.
dc.description.commentsUniversity of Pennsylvania Department of Computer and Information Science Technical Report No. MS-CIS-04-26.
dc.identifier.urihttps://repository.upenn.edu/handle/20.500.14332/7181
dc.legacy.articleid1016
dc.legacy.fulltexturlhttps://repository.upenn.edu/cgi/viewcontent.cgi?article=1016&context=cis_reports&unstamped=1
dc.source.issue27
dc.source.journalTechnical Reports (CIS)
dc.source.statuspublished
dc.titleAn Open and Shut Typecase (Extended Version)
dc.typeReport
digcom.identifiercis_reports/27
digcom.identifier.contextkey54625
digcom.identifier.submissionpathcis_reports/27
digcom.typereport
dspace.entity.typePublication
relation.isAuthorOfPublicationb66c11a3-4446-4985-a8af-67bf0f02b419
relation.isAuthorOfPublicationb66c11a3-4446-4985-a8af-67bf0f02b419
relation.isAuthorOfPublication.latestForDiscoveryb66c11a3-4446-4985-a8af-67bf0f02b419
upenn.schoolDepartmentCenterTechnical Reports (CIS)
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
tech_report1.pdf
Size:
400.86 KB
Format:
Adobe Portable Document Format
Collection