{"id":"https://openalex.org/W1989314504","doi":"https://doi.org/10.1016/j.entcs.2005.09.014","title":"A Design for Type-Directed Programming in Java","display_name":"A Design for Type-Directed Programming in Java","publication_year":2005,"publication_date":"2005-11-01","ids":{"openalex":"https://openalex.org/W1989314504","doi":"https://doi.org/10.1016/j.entcs.2005.09.014","mag":"1989314504"},"language":"en","primary_location":{"id":"doi:10.1016/j.entcs.2005.09.014","doi":"https://doi.org/10.1016/j.entcs.2005.09.014","is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.entcs.2005.09.014","pdf_url":"https://www.sciencedirect.com/science/article/pii/S1571066105051388/pdf","source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"listed_in":["anvur-scientific","cwts-core","jufo-1","norway-1","poland-40","russia-white-list-3"],"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},"volume":null,"type":"article","is_traditional":true,"indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://www.sciencedirect.com/science/article/pii/S1571066105051388/pdf","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5049220962","display_name":"Stephanie Weirich","orcid":"https://orcid.org/0000-0002-6756-9168","observed_orcids":["https://orcid.org/0000-0002-6756-9168"]},"institutions":[{"id":"https://openalex.org/I79576946","display_name":"University of Pennsylvania","ror":"https://ror.org/00b30xv10","country_code":"US","type":"education","lineage":["https://openalex.org/I79576946"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Stephanie Weirich","raw_affiliation_strings":["University of Pennsylvania, Philadelphia, PA, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Pennsylvania, Philadelphia, PA, USA","institution_ids":["https://openalex.org/I79576946"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5006404928","display_name":"Liang Huang","orcid":"https://orcid.org/0000-0001-6444-7045","observed_orcids":["https://orcid.org/0000-0001-6444-7045"]},"institutions":[{"id":"https://openalex.org/I79576946","display_name":"University of Pennsylvania","ror":"https://ror.org/00b30xv10","country_code":"US","type":"education","lineage":["https://openalex.org/I79576946"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Liang Huang","raw_affiliation_strings":["University of Pennsylvania, Philadelphia, PA, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Pennsylvania, Philadelphia, PA, USA","institution_ids":["https://openalex.org/I79576946"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5006404928","https://openalex.org/A5049220962"],"corresponding_institution_ids":["https://openalex.org/I79576946"],"apc_list":null,"apc_paid":null,"fwci":2.3079,"has_fulltext":true,"cited_by_count":7,"citation_normalized_percentile":{"value":0.88506835,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":88,"max":93},"biblio":{"volume":"138","issue":"2","first_page":"117","last_page":"136"},"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/T10260","display_name":"Software Engineering Research","score":0.0,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/java","display_name":"Java","score":0.7310000061988831},{"id":"https://openalex.org/keywords/generics","display_name":"generics","score":0.8970000147819519},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"pattern matching","score":0.8339999914169312},{"id":"https://openalex.org/keywords/type-parameters","display_name":"type parameters","score":0.5899999737739563},{"id":"https://openalex.org/keywords/featherweight-java","display_name":"Featherweight Java","score":0.9470000267028809},{"id":"https://openalex.org/keywords/type-analysis","display_name":"type analysis","score":0.3409999907016754},{"id":"https://openalex.org/keywords/reflection","display_name":"reflection","score":0.3790000081062317}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8548269271850586},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8259754180908203},{"id":"https://openalex.org/C172482141","wikidata":"https://www.wikidata.org/wiki/Q379273","display_name":"Generics in Java","level":5,"score":0.6610836386680603},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.6486185193061829},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.6295468807220459},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.6062878966331482},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.6053500771522522},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.5396677255630493},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.536726713180542},{"id":"https://openalex.org/C52723943","wikidata":"https://www.wikidata.org/wiki/Q1127410","display_name":"Serialization","level":2,"score":0.49698951840400696},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.4814709722995758},{"id":"https://openalex.org/C181907185","wikidata":"https://www.wikidata.org/wiki/Q1100098","display_name":"Java concurrency","level":4,"score":0.4677239656448364},{"id":"https://openalex.org/C174954855","wikidata":"https://www.wikidata.org/wiki/Q7623626","display_name":"strictfp","level":4,"score":0.43286603689193726},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4208143651485443},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.4161655604839325}],"mesh":[],"locations_count":6,"locations":[{"id":"doi:10.1016/j.entcs.2005.09.014","doi":"https://doi.org/10.1016/j.entcs.2005.09.014","is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.entcs.2005.09.014","pdf_url":"https://www.sciencedirect.com/science/article/pii/S1571066105051388/pdf","source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"listed_in":["anvur-scientific","cwts-core","jufo-1","norway-1","poland-40","russia-white-list-3"],"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.3.5400","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.5400","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cis.upenn.edu/~sweirich/papers/tdpj0304.ps","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.64.2896","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.64.2896","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cis.upenn.edu/~lhuang3/pubs/tdj-short.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.851.6882","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.851.6882","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://repository.upenn.edu/cgi/viewcontent.cgi?article%3D1247%26context%3Dcis_papers","raw_type":"text"},{"id":"pmh:oai:repository.upenn.edu:20.500.14332/6272","doi":null,"is_oa":false,"landing_page_url":"https://repository.upenn.edu/handle/20.500.14332/6272","pdf_url":null,"source":{"id":"https://openalex.org/S4306402083","display_name":"ScholarlyCommons (University of Pennsylvania)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I79576946","host_organization_name":"University of Pennsylvania","host_organization_lineage":["https://openalex.org/I79576946"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"published","raw_type":"Article"},{"id":"pmh:oai:repository.upenn.edu:cis_papers-1247","doi":null,"is_oa":false,"landing_page_url":"https://repository.upenn.edu/cis_papers/234","pdf_url":null,"source":{"id":"https://openalex.org/S4306402083","display_name":"ScholarlyCommons (University of Pennsylvania)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I79576946","host_organization_name":"University of Pennsylvania","host_organization_lineage":["https://openalex.org/I79576946"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Departmental Papers (CIS)","raw_type":"text"}],"best_oa_location":{"id":"doi:10.1016/j.entcs.2005.09.014","doi":"https://doi.org/10.1016/j.entcs.2005.09.014","is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.entcs.2005.09.014","pdf_url":"https://www.sciencedirect.com/science/article/pii/S1571066105051388/pdf","source":{"id":"https://openalex.org/S50368787","display_name":"Electronic Notes in Theoretical Computer Science","issn_l":"1571-0661","issn":["1571-0661"],"is_oa":true,"is_in_doaj":false,"is_core":true,"listed_in":["anvur-scientific","cwts-core","jufo-1","norway-1","poland-40","russia-white-list-3"],"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Electronic Notes in Theoretical Computer Science","raw_type":"journal-article"},"sustainable_development_goals":[],"study_designs":[],"awards":[{"id":"https://openalex.org/G6125997669","display_name":"CAREER:     Type-Directed Programming in Object-Oriented Languages","funder_award_id":"0347289","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6671297155","display_name":null,"funder_award_id":"CAREER","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W1989314504.pdf","grobid_xml":"https://content.openalex.org/works/W1989314504.grobid-xml"},"referenced_works_count":47,"referenced_works":["https://openalex.org/W12921728","https://openalex.org/W138078219","https://openalex.org/W183703149","https://openalex.org/W1487768293","https://openalex.org/W1500584978","https://openalex.org/W1535217452","https://openalex.org/W1535296962","https://openalex.org/W1546727036","https://openalex.org/W1556867379","https://openalex.org/W1565021804","https://openalex.org/W1567918249","https://openalex.org/W1582937122","https://openalex.org/W1601205865","https://openalex.org/W1644882639","https://openalex.org/W1649645444","https://openalex.org/W1827112781","https://openalex.org/W1829244603","https://openalex.org/W1854388022","https://openalex.org/W1905449393","https://openalex.org/W1967041135","https://openalex.org/W1974398164","https://openalex.org/W1974946823","https://openalex.org/W1980939032","https://openalex.org/W1984514567","https://openalex.org/W1987203566","https://openalex.org/W2009259962","https://openalex.org/W2017532341","https://openalex.org/W2030916392","https://openalex.org/W2033348393","https://openalex.org/W2035709547","https://openalex.org/W2037021191","https://openalex.org/W2058137890","https://openalex.org/W2059895047","https://openalex.org/W2078944436","https://openalex.org/W2106348655","https://openalex.org/W2111609583","https://openalex.org/W2119717320","https://openalex.org/W2124117537","https://openalex.org/W2137417304","https://openalex.org/W2137435684","https://openalex.org/W2293033370","https://openalex.org/W2484298212","https://openalex.org/W2794030829","https://openalex.org/W2911433283","https://openalex.org/W2915029105","https://openalex.org/W6632153197","https://openalex.org/W6815189016"],"related_works":["https://openalex.org/W7097857416","https://openalex.org/W7095723639","https://openalex.org/W7100520832","https://openalex.org/W7100059233","https://openalex.org/W2035709547","https://openalex.org/W2126571933","https://openalex.org/W3000294674","https://openalex.org/W7057963571","https://openalex.org/W2157155332","https://openalex.org/W2097302885"],"abstract_inverted_index":{"Type-directed":[0],"programming":[1,106,140,175],"is":[2],"an":[3,19,153,273],"important":[4,154],"and":[5,42,111,126,178,201,223,240,264],"widely":[6],"used":[7],"paradigm":[8],"in":[9,176,187],"the":[10,31,56,90,108,112,124,129,135,158,166,199,204,212,268],"design":[11,167],"of":[12,17,33,51,74,84,128,132,157,168,203,207,211,215,257,272],"software.":[13],"With":[14],"this":[15,162],"form":[16],"programming,":[18],"application":[20],"may":[21,44],"analyze":[22],"type":[23,83,104,205,248,271],"information":[24],"to":[25,68,88,121,143,191,280],"determine":[26,267],"its":[27,286],"behavior.":[28],"By":[29],"analyzing":[30],"structure":[32,127,202],"data,":[34,85],"many":[35,94,243],"operations,":[36],"such":[37],"as":[38,55],"serialization,":[39],"cloning,":[40],"adaptors":[41],"iterators":[43],"be":[45,63,78,281],"defined":[46],"once,":[47],"for":[48,81,138,173,259,283],"all":[49],"types":[50],"data.":[52],"That":[53],"way,":[54],"program":[57,92,228],"evolves,":[58],"these":[59,75,181,195,231],"operations":[60,76,244],"need":[61],"not":[62,148],"updated\u2014they":[64],"will":[65],"automatically":[66],"adapt":[67],"new":[69,155,171,196],"data":[70],"forms.":[71],"Otherwise,":[72],"each":[73,82],"must":[77],"individually":[79],"redefined":[80],"forcing":[86],"programmers":[87,253],"revisit":[89],"same":[91],"logic":[93],"times":[95],"during":[96],"a":[97,188],"program's":[98],"lifetime.":[99],"The":[100],"Java":[101,113,119,136,159],"language":[102,189],"supports":[103],"directed":[105],"with":[107,151,221,254],"instanceof":[109,263],"operator":[110],"Reflection":[114],"API.":[115],"These":[116],"mechanisms":[117,137,172,182,197,232,276],"allow":[118,277],"programs":[120],"depend":[122,246],"on":[123,235,247],"name":[125,200],"run-time":[130,213,270],"classes":[131,214],"objects.":[133,216],"However,":[134],"type-directed":[139,174],"are":[141,183,233],"difficult":[142],"use.":[144],"They":[145],"also":[146],"do":[147],"integrate":[149,220],"well":[150],"generics,":[152],"feature":[156],"language.":[160],"In":[161],"paper,":[163],"we":[164],"describe":[165],"several":[169],"expressive":[170],"Java,":[177],"show":[179],"that":[180,245],"sound":[184],"when":[185],"included":[186],"similar":[190],"Featherweight":[192],"Java.":[193],"Basically,":[194],"pattern-match":[198],"parameters":[206],"generic":[208],"code,":[209],"instead":[210],"Therefore,":[217],"they":[218,238,251],"naturally":[219,239],"generics":[222],"provide":[224,252],"strong":[225],"guarantees":[226],"about":[227],"correctness.":[229],"As":[230],"based":[234],"pattern":[236],"matching,":[237],"succinctly":[241],"express":[242],"information.":[249],"Finally,":[250],"some":[255],"degree":[256],"protection":[258],"their":[260],"abstractions.":[261],"Whereas":[262],"reflection":[265],"can":[266],"exact":[269],"object,":[274],"our":[275],"any":[278],"supertype":[279],"supplied":[282],"analysis,":[284],"hiding":[285],"precise":[287],"structure.":[288]},"counts_by_year":[{"year":2020,"cited_by_count":1},{"year":2012,"cited_by_count":1}],"updated_date":"2026-11-10T11:39:43.021295","created_date":"2016-06-24T00:00:00"}
