{"id":14554,"date":"2022-05-08T22:22:40","date_gmt":"2022-05-09T02:22:40","guid":{"rendered":"https:\/\/carleton.ca\/scs\/?page_id=14554"},"modified":"2026-06-02T14:59:22","modified_gmt":"2026-06-02T18:59:22","slug":"tr-108-designing-families-of-data-types-using-exemplars","status":"publish","type":"page","link":"https:\/\/carleton.ca\/scs\/research\/scs-technical-reports\/technical-reports-1987\/tr-108-designing-families-of-data-types-using-exemplars\/","title":{"rendered":"TR-108: Designing Families of Data Types Using Exemplars"},"content":{"rendered":"\n<section class=\"w-screen px-6 cu-section cu-section--white ml-offset-center md:px-8 lg:px-14\">\n    <div class=\"space-y-6 cu-max-w-child-5xl  md:space-y-10 cu-prose-first-last\">\n\n            <div class=\"cu-textmedia flex flex-col lg:flex-row mx-auto gap-6 md:gap-10 my-6 md:my-12 first:mt-0 max-w-5xl\">\n        <div class=\"justify-start cu-textmedia-content cu-prose-first-last\" style=\"flex: 0 0 100%;\">\n            <header class=\"font-light prose-xl cu-pageheader md:prose-2xl cu-component-updated cu-prose-first-last\">\n                                    <h1 class=\"cu-prose-first-last font-semibold !mt-2 mb-4 md:mb-6 relative after:absolute after:h-px after:bottom-0 after:bg-cu-red after:left-px text-3xl md:text-4xl lg:text-5xl lg:leading-[3.5rem] pb-5 after:w-10 text-cu-black-700 not-prose\">\n                        TR-108: Designing Families of Data Types Using Exemplars\n                    <\/h1>\n                \n                                \n                            <\/header>\n\n                    <\/div>\n\n            <\/div>\n\n    <\/div>\n<\/section>\n\n<p>Carleton University<br>\n<a href=\"https:\/\/carleton.ca\/scs\/research\/scs-technical-reports\/technical-reports-1987\/\">Technical Report<\/a> <strong>TR-108<\/strong><br>\nFebruary 1987<\/p>\n\n\n\n<h2 id=\"designing-families-of-data-types-using-exemplars\" class=\"wp-block-heading tr_t1\">Designing Families of Data Types Using Exemplars<\/h2>\n\n\n\n<div class=\"tr_t3\">\n<div class=\"tr_t3\">Wilf R. LaLonde<\/div>\n<\/div>\n\n\n\n<div>\n<h3>Abstract<\/h3>\n<p>With the increasing availability of object-oriented languages and processors, a small but expanding community of users is gaining experience with the object-oriented paradigm. Since designing classes is often viewed as synonymous with designing abstract data types, there is every expectation that users experienced with abstract data type design will adapt easily to designing classes. Unfortunately, there is a growing awareness that the realty is contrary to the expectation; i.e., data type designing in a system with<br>\ninheritance is far more difficult than traditional books on data structures and data types have suggested. In object-oriented systems, designing is sometimes (but only rarely) concerned with the development of individual data types. It is more often concerned with the development of highly integrated families of data types and more generally communities of totally different but cohesive collections of data types that support specific applications; e.g., a compiler to pick a well-studied example.<\/p>\n<\/div>\n\n\n\n<p><a href=\"https:\/\/carleton.ca\/scs\/wp-content\/uploads\/sites\/260\/TR-108.pdf\">TR-108.pdf<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Carleton University Technical Report TR-108 February 1987 Designing Families of Data Types Using Exemplars Wilf R. LaLonde Abstract With the increasing availability of object-oriented languages and processors, a small but expanding community of users is gaining experience with the object-oriented paradigm. Since designing classes is often viewed as synonymous with designing abstract data types, there [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":11827,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_cu_dining_location_slug":"","footnotes":"","_links_to":"","_links_to_target":""},"cu_page_type":[88],"class_list":["post-14554","page","type-page","status-publish","hentry","cu_page_type-technical-report"],"acf":{"cu_post_thumbnail":false},"_links":{"self":[{"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/pages\/14554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/comments?post=14554"}],"version-history":[{"count":2,"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/pages\/14554\/revisions"}],"predecessor-version":[{"id":14557,"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/pages\/14554\/revisions\/14557"}],"up":[{"embeddable":true,"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/pages\/11827"}],"wp:attachment":[{"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/media?parent=14554"}],"wp:term":[{"taxonomy":"cu_page_type","embeddable":true,"href":"https:\/\/carleton.ca\/scs\/wp-json\/wp\/v2\/cu_page_type?post=14554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}