{"id":"https://openalex.org/W4241045451","doi":"https://doi.org/10.1145/2103656.2103722","title":"A type system for borrowing permissions","display_name":"A type system for borrowing permissions","publication_year":2012,"publication_date":"2012-01-24","ids":{"openalex":"https://openalex.org/W4241045451","doi":"https://doi.org/10.1145/2103656.2103722"},"language":"en","primary_location":{"id":"doi:10.1145/2103656.2103722","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2103656.2103722","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"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/A5069949087","display_name":"Karl Naden","orcid":null},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Karl Naden","raw_affiliation_strings":["Carnegie Mellon University, Pittsburgh, PA, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, Pittsburgh, PA, USA","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5000879708","display_name":"Robert L. Bocchino","orcid":null},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Robert Bocchino","raw_affiliation_strings":["Carnegie Mellon University, Pittsburgh, PA, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, Pittsburgh, PA, USA","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5091372985","display_name":"Jonathan Aldrich","orcid":"https://orcid.org/0000-0003-0631-5591"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jonathan Aldrich","raw_affiliation_strings":["Carnegie Mellon University, Pittsburgh, PA, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, Pittsburgh, PA, USA","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5055961747","display_name":"Kevin Bierhoff","orcid":null},"institutions":[{"id":"https://openalex.org/I4210139661","display_name":"Two Sigma Investments (United States)","ror":"https://ror.org/04gjcva23","country_code":"US","type":"company","lineage":["https://openalex.org/I4210139661"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Kevin Bierhoff","raw_affiliation_strings":["Two Sigma Investments, New York, NY, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Two Sigma Investments, New York, NY, USA","institution_ids":["https://openalex.org/I4210139661"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":7.0766,"has_fulltext":false,"cited_by_count":44,"citation_normalized_percentile":{"value":0.96993089,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"557","last_page":"570"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T10142","display_name":"Formal Methods in Verification","score":0.9990000128746033,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T11424","display_name":"Security and Verification in Computing","score":0.9972000122070312,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/computer-science","display_name":"Computer science","score":0.8906295299530029},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6409440636634827},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.5357303619384766},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.5009579658508301},{"id":"https://openalex.org/keywords/soundness","display_name":"Soundness","score":0.47646355628967285},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.45002466440200806},{"id":"https://openalex.org/keywords/transactional-memory","display_name":"Transactional memory","score":0.43180716037750244},{"id":"https://openalex.org/keywords/usable","display_name":"USable","score":0.4267953634262085},{"id":"https://openalex.org/keywords/eventual-consistency","display_name":"Eventual consistency","score":0.41354191303253174},{"id":"https://openalex.org/keywords/database-transaction","display_name":"Database transaction","score":0.24562516808509827},{"id":"https://openalex.org/keywords/consistency-model","display_name":"Consistency model","score":0.21874108910560608},{"id":"https://openalex.org/keywords/world-wide-web","display_name":"World Wide Web","score":0.17745518684387207}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8906295299530029},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6409440636634827},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.5357303619384766},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.5009579658508301},{"id":"https://openalex.org/C39920170","wikidata":"https://www.wikidata.org/wiki/Q693083","display_name":"Soundness","level":2,"score":0.47646355628967285},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.45002466440200806},{"id":"https://openalex.org/C134277064","wikidata":"https://www.wikidata.org/wiki/Q878206","display_name":"Transactional memory","level":3,"score":0.43180716037750244},{"id":"https://openalex.org/C2780615836","wikidata":"https://www.wikidata.org/wiki/Q2471869","display_name":"USable","level":2,"score":0.4267953634262085},{"id":"https://openalex.org/C34422012","wikidata":"https://www.wikidata.org/wiki/Q6125872","display_name":"Eventual consistency","level":4,"score":0.41354191303253174},{"id":"https://openalex.org/C75949130","wikidata":"https://www.wikidata.org/wiki/Q848010","display_name":"Database transaction","level":2,"score":0.24562516808509827},{"id":"https://openalex.org/C37279795","wikidata":"https://www.wikidata.org/wiki/Q2492305","display_name":"Consistency model","level":3,"score":0.21874108910560608},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.17745518684387207}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2103656.2103722","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2103656.2103722","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":25,"referenced_works":["https://openalex.org/W150412037","https://openalex.org/W1511982475","https://openalex.org/W1711395388","https://openalex.org/W1861989620","https://openalex.org/W1976247299","https://openalex.org/W1981962444","https://openalex.org/W1998070736","https://openalex.org/W2049984112","https://openalex.org/W2077288840","https://openalex.org/W2083775385","https://openalex.org/W2091712774","https://openalex.org/W2101900462","https://openalex.org/W2101911818","https://openalex.org/W2123683215","https://openalex.org/W2142837069","https://openalex.org/W2146934772","https://openalex.org/W2155397441","https://openalex.org/W2156428492","https://openalex.org/W2295471304","https://openalex.org/W2531351704","https://openalex.org/W2911865844","https://openalex.org/W2912880222","https://openalex.org/W4241045451","https://openalex.org/W4242423436","https://openalex.org/W6661516274"],"related_works":["https://openalex.org/W1511249877","https://openalex.org/W1578828174","https://openalex.org/W2950376466","https://openalex.org/W2000943029","https://openalex.org/W2002878601","https://openalex.org/W2199396573","https://openalex.org/W4302559785","https://openalex.org/W2140496290","https://openalex.org/W2130223300","https://openalex.org/W874095766"],"abstract_inverted_index":{"In":[0],"object-oriented":[1],"programming,":[2],"unique":[3,26,41,191,196],"permissions":[4,27,140,158,167,188,201,220],"to":[5,38,120,150,261],"object":[6],"references":[7],"are":[8,110,113],"useful":[9],"for":[10,32,49,118],"checking":[11],"correctness":[12],"properties":[13],"such":[14,159],"as":[15,160],"consistency":[16],"of":[17,21,44,104,172,182,204,210,218,239,255],"typestate":[18],"and":[19,51,62,70,116,127,133,162,170,193,234,236,244,253],"noninterference":[20],"concurrency.":[22],"To":[23],"be":[24,29,36,148],"usable,":[25],"must":[28,35,82],"borrowed":[30],"---":[31],"example,":[33],"one":[34,56],"able":[37],"read":[39],"a":[40,45,144,190,240],"reference":[42,145,192,197],"out":[43,59,171,203],"field,":[46],"use":[47],"it":[48,53,260],"something,":[50],"put":[52],"back.":[54],"While":[55,107],"can":[57],"null":[58],"the":[60,85,151,195,199,213,224,228,232,251],"field":[61],"later":[63],"reassign":[64],"it,":[65],"this":[66],"paradigm":[67],"is":[68,221],"ungainly":[69],"requires":[71],"unnecessary":[72],"writes,":[73],"potentially":[74],"hurting":[75],"cache":[76],"performance.":[77],"Therefore,":[78],"in":[79,84,169,212],"practice":[80],"borrowing":[81,95,185],"occur":[83],"type":[86,128,225],"system,":[87],"without":[88,206],"requiring":[89],"memory":[90],"updates.":[91],"Previous":[92],"systems":[93],"support":[94,179],"with":[96,130,137],"external":[97],"alias":[98],"analysis":[99],"and/or":[100],"explicit":[101,208],"programmer":[102],"management":[103,209],"fractional":[105,219],"permissions.":[106],"these":[108,177],"approaches":[109],"powerful,":[111],"they":[112],"also":[114,155,249],"awkward":[115],"difficult":[117],"programmers":[119],"understand.":[121],"We":[122,230,248],"present":[123,231],"an":[124],"integrated":[125],"language":[126,243],"system":[129,154,226],"unique,":[131],"immutable,":[132],"shared":[134],"permissions,":[135],"together":[136],"new":[138],"local":[139,187,200],"that":[141,143,164],"say":[142],"may":[146],"not":[147],"stored":[149],"heap.":[152],"Our":[153],"includes":[156],"change":[157],"unique>>unique":[161],"unique>>none":[163],"describe":[165],"how":[166],"flow":[168],"method":[173],"formal":[174,241],"parameters.":[175],"Together,":[176],"features":[178],"common":[180],"patterns":[181],"borrowing,":[183],"including":[184],"multiple":[186],"from":[189],"recovering":[194],"when":[198],"go":[202],"scope,":[205],"any":[207],"fractions":[211],"source":[214],"language.":[215],"All":[216],"accounting":[217],"done":[222],"by":[223,258],"\"under":[227],"hood.\"":[229],"syntax":[233],"static":[235],"dynamic":[237],"semantics":[238],"core":[242],"state":[245],"soundness":[246],"results.":[247],"illustrate":[250],"utility":[252],"practicality":[254],"our":[256],"design":[257],"using":[259],"express":[262],"several":[263],"realistic":[264],"examples.":[265]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":9},{"year":2016,"cited_by_count":4},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":3},{"year":2013,"cited_by_count":7},{"year":2012,"cited_by_count":4}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
