{"id":"https://openalex.org/W1556460735","doi":null,"title":"Type systems for object-oriented programming languages","display_name":"Type systems for object-oriented programming languages","publication_year":1996,"publication_date":"1996-01-01","ids":{"openalex":"https://openalex.org/W1556460735","mag":"1556460735"},"language":"en","primary_location":{"id":"mag:1556460735","doi":null,"is_oa":false,"landing_page_url":"http://dl.acm.org/citation.cfm?id=924383","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null},"volume":null,"type":"book","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5101897622","display_name":"John C. Mitchell","orcid":"https://orcid.org/0000-0002-0024-860X","observed_orcids":["https://orcid.org/0000-0002-0024-860X"]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"John C. Mitchell","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5056099984","display_name":"Kathleen Shanahan Fisher","orcid":"https://orcid.org/0000-0001-5249-2615","observed_orcids":["https://orcid.org/0000-0001-5249-2615"]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Kathleen Fisher","raw_affiliation_strings":[],"raw_orcid":"https://orcid.org/0000-0001-5249-2615","affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":4.4334,"has_fulltext":false,"cited_by_count":36,"citation_normalized_percentile":{"value":0.96851852,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":88,"max":93},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":1.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":1.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.0,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/type-systems","display_name":"type systems","score":0.781000018119812},{"id":"https://openalex.org/keywords/object-oriented-programming-languages","display_name":"object-oriented programming languages","score":0.9750000238418579},{"id":"https://openalex.org/keywords/subtyping","display_name":"subtyping","score":0.925000011920929},{"id":"https://openalex.org/keywords/inheritance-object-oriented-programming","display_name":"inheritance (object-oriented programming)","score":0.9919999837875366},{"id":"https://openalex.org/keywords/abstract-types","display_name":"abstract types","score":0.8180000185966492},{"id":"https://openalex.org/keywords/encapsulation","display_name":"encapsulation","score":0.9710000157356262},{"id":"https://openalex.org/keywords/type-soundness","display_name":"type soundness","score":0.8199999928474426},{"id":"https://openalex.org/keywords/object-calculus","display_name":"object calculus","score":0.7310000061988831},{"id":"https://openalex.org/keywords/polymorphism","display_name":"polymorphism","score":0.7480000257492065},{"id":"https://openalex.org/keywords/typecasting","display_name":"type casting","score":0.5099999904632568},{"id":"https://openalex.org/keywords/eiffel","display_name":"Eiffel","score":0.5370000004768372}],"concepts":[{"id":"https://openalex.org/C83852419","wikidata":"https://www.wikidata.org/wiki/Q2713292","display_name":"Subtyping","level":2,"score":0.802096962928772},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.786960244178772},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7451483011245728},{"id":"https://openalex.org/C186362262","wikidata":"https://www.wikidata.org/wiki/Q732089","display_name":"Eiffel","level":3,"score":0.6382806301116943},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.6097016334533691},{"id":"https://openalex.org/C200568363","wikidata":"https://www.wikidata.org/wiki/Q1070739","display_name":"Multiple inheritance","level":3,"score":0.6051256060600281},{"id":"https://openalex.org/C2780902518","wikidata":"https://www.wikidata.org/wiki/Q6033780","display_name":"Inheritance (genetic algorithm)","level":3,"score":0.5613704919815063},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.5571795105934143},{"id":"https://openalex.org/C2777293101","wikidata":"https://www.wikidata.org/wiki/Q235086","display_name":"Smalltalk","level":3,"score":0.4938686490058899},{"id":"https://openalex.org/C75608658","wikidata":"https://www.wikidata.org/wiki/Q44395","display_name":"Pascal (unit)","level":2,"score":0.42733556032180786},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.4108516275882721},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3845771551132202},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.29017525911331177},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.10596820712089539},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0},{"id":"https://openalex.org/C15524039","wikidata":"https://www.wikidata.org/wiki/Q865817","display_name":"Java applet","level":3,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:1556460735","doi":null,"is_oa":false,"landing_page_url":"http://dl.acm.org/citation.cfm?id=924383","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W7098767274","https://openalex.org/W2153060956","https://openalex.org/W1582488550","https://openalex.org/W7099385339","https://openalex.org/W2983682466","https://openalex.org/W2543117628","https://openalex.org/W99183917","https://openalex.org/W7095132666","https://openalex.org/W7098530063","https://openalex.org/W2036656026"],"abstract_inverted_index":{"Object-oriented":[0],"programming":[1,56],"languages":[2,203],"(OOPL's)":[3],"provide":[4],"important":[5],"support":[6,215],"for":[7,151],"today's":[8],"large-scale":[9],"software":[10],"projects.":[11],"Unfortunately,":[12],"typed":[13],"OOPL's,":[14,61],"such":[15,62,191],"as":[16,63,93,298,312],"Simula":[17],"and":[18,78,125,166,206,227,236,250,275,316,327],"C++,":[19,225],"have":[20,136],"suffered":[21],"from":[22],"overly":[23],"restrictive":[24,50],"type":[25,51,140,149,261,318,333],"systems.":[26],"Among":[27],"other":[28],"things,":[29],"the":[30,74,117,176,197,221,232,251,308],"rigidity":[31,135],"of":[32,46,70,76,119,129,178,190,196,200,247,258],"these":[33],"systems":[34,52],"force":[35],"programmers":[36],"to":[37,40,59,96,112,132,220,254,291,303,337],"use":[38],"type-casts":[39,201],"achieve":[41],"flexibility,":[42],"a":[43,123,147,152,192,216,245,256,292,317,342],"notorious":[44],"source":[45,69],"hard-to-find":[47],"bugs.":[48],"These":[49],"also":[53,169,270],"mean":[54],"that":[55,156,175,240,272,281,294],"idioms":[57],"common":[58],"untyped":[60],"Smalltalk,":[64],"are":[65,91,244,277],"not":[66],"typeable.":[67],"One":[68],"this":[71,134,158,212],"inflexibility":[72],"is":[73,82,194,262,310],"conflation":[75],"subtyping":[77,111,165],"inheritance.":[79,167,187],"Briefly,":[80],"inheritance":[81,235],"an":[83,259,284,305,313,338],"implementation":[84,242],"technique":[85],"in":[86,122,138,183,202,211,224],"which":[87,173],"new":[88],"object":[89,105,238,273,289,314],"definitions":[90],"given":[92],"incremental":[94],"modifications":[95],"existing":[97,114],"ones.":[98],"Subtyping":[99],"concerns":[100],"substitutivity:":[101],"when":[102],"can":[103],"one":[104,195,222],"safely":[106],"replace":[107],"another?":[108],"By":[109],"tying":[110],"inheritance,":[113],"OOPL's":[115],"reduce":[116],"number":[118],"legal":[120],"substitutions":[121],"system":[124,150,319],"hence":[126],"their":[127],"degree":[128],"polymorphism.":[130],"Attempts":[131],"fix":[133],"resulted":[137],"unsound":[139],"systems,":[141],"most":[142],"notably":[143],"Eiffel's.\r\nThis":[144],"thesis":[145,331],"develops":[146],"sound":[148],"formal":[153,213],"object-oriented":[154,285,306],"language":[155,214,279,293,309],"addresses":[157],"lack.":[159],"It":[160,168],"gains":[161],"flexibility":[162],"by":[163,266],"separating":[164],"supports":[170,295],"method":[171],"specialization,":[172],"means":[174],"types":[177,239],"methods":[179],"may":[180],"be":[181,301],"refined":[182],"certain":[184],"ways":[185],"during":[186],"The":[188,268,330],"lack":[189],"mechanism":[193],"key":[198],"sources":[199],"like":[204],"C++":[205],"Object":[207],"Pascal.":[208],"Abstraction":[209],"primitives":[210,274,290],"class":[217],"construct":[218],"similar":[219],"found":[223],"Eiffel,":[226],"Java.":[228],"This":[229],"study":[230,269],"explains":[231],"link":[233],"between":[234],"subtyping:":[237],"include":[241],"information":[243],"form":[246],"abstract":[248,260,328],"type,":[249],"only":[252],"way":[253],"produce":[255,283],"subtype":[257],"via":[263,341],"extension,":[264],"(i.e.,":[265],"inheritance).":[267],"suggests":[271],"encapsulation":[276,296],"orthogonal":[278],"features":[280],"together":[282],"language.":[286],"Hence,":[287],"adding":[288],"(such":[297],"ML)":[299],"should":[300],"sufficient":[302],"create":[304],"language.\r\nFormally,":[307],"presented":[311],"calculus":[315],"with":[320,335],"row":[321],"variables,":[322],"variance":[323],"annotations,":[324,326],"method-absence":[325],"types.":[329],"proves":[332],"soundness":[334],"respect":[336],"operational":[339],"semantics":[340],"subject":[343],"reduction":[344],"theorem.":[345]},"counts_by_year":[{"year":2018,"cited_by_count":1},{"year":2016,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2026-11-12T12:28:57.059296","created_date":"2016-06-24T00:00:00"}
